Problema con l'exp che carica ogni tot di caratteri inviati postato il 12/01/2023 21:54:17 nel forum programmazione, gdrcd e open source
ciao a tutti! Spiego subito qual è il problema:
Ogni volta che un utente manda un messaggio in chat, anche con una sola lettera, si prendono i punti exp, invece di arrivare a 1000 caratteri [che è il tot di caratteri impostato da raggiungere per ottenere exp].
Di regola si modifica dal file config ma non si riesce a capire come mai anche quando si lascia un dado da l'exp, sapreste aiutarci?
Pagine → 1
12/01/2023 23:05:46
Non uso quel sistema, quindi prendi il tutto con le dovute distanze, però a naso dovresti fare una cosa che escluda il dado, dunque in ref_header una cosa tipo
if($PARAMETERS['mode']['exp_by_chat']=='ON' && $m_type !='C')
« Dalla glaciazione di cristallo, noi rinasceremo »
http://crystaltokyo.altervista.org
13/01/2023 19:45:23
crystaltokyo ha scritto: Non uso quel sistema, quindi prendi il tutto con le dovute distanze, però a naso dovresti fare una cosa che escluda il dado, dunque in ref_header una cosa tipo
if($PARAMETERS['mode']['exp_by_chat']=='ON' && $m_type !='C')
14/01/2023 00:47:29
Penso di capire che usi il GDRCD. Giusto?
Che versione è? Così possiamo darti una mano più precisamente
25/01/2023 18:53:50 e modificato da jacktrust il 25/01/2023 18:55:04
playergdr ha scritto: Penso di capire che usi il GDRCD. Giusto?
Che versione è? Così possiamo darti una mano più precisamente
26/01/2023 23:39:45
Il motivo per il quale ti si presenta questa anomalia è legato al fatto che hai aggiunto un valore diverso da 0 al parametro $PARAMETERS['settings']['exp_by_chat']['value'] in config.inc.php , oltre ad aver chiaramente abilitato l'incremento dell'esperienza tramite caratteri scritti sempre nello stesso file.
Aggiungendo un qualsiasi valore diverso da 0, quando in ref_header.inc.php si scatena il processo di assegnazione dell'esperienza non viene minimamente presa in considerazione la quantità minima di caratteri necessaria, ma si procede direttamente con l'incremento.
Qui puoi vedere il dettaglio:
if($PARAMETERS['mode']['exp_by_chat'] == 'ON') {
$msg_length = strlen($chat_message);
$char_needed = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['number']);
$exp_bonus = ($PARAMETERS['settings']['exp_by_chat']['value'] == '0') ? $msg_length / $char_needed : gdrcd_filter_num($PARAMETERS['settings']['exp_by_chat']['value']);
}
// Se è stata settata l'esperienza per azione, allora avvio la procedura per il calcolo dell'esperienza
if($PARAMETERS['mode']['exp_by_chat'] == 'ON') {
// Ottengo la lunghezza del messaggio inviato
$msg_length = strlen($chat_message);
// Determino il numero di caratteri necessari per ottenere un bonus
$char_needed = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['number']);
// Determino il bonus da assegnare
$exp_assign = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['value']);
// Se il numero di caratteri necessari è maggiore di 0, allora il bonus viene dato se il messaggio è lungo almeno quanto il numero di caratteri necessari
if ($char_needed > 0) {
$exp_bonus = ($exp_assign <= 0) ? $msg_length / $char_needed : ( $msg_length >= $char_needed ? $exp_assign : 0);
}
// Altrimenti il bonus viene assegnato sempre
else {
$exp_bonus = $exp_assign;
}
}
GitHub: https://github.com/GDRCD/GDRCD
Discord: https://discord.com/invite/K2eWXpvu4M
GdR-O: https://www.gdr-online.com/readforum.asp?id=250579
02/02/2023 09:36:04
kasa ha scritto: Il motivo per il quale ti si presenta questa anomalia è legato al fatto che hai aggiunto un valore diverso da 0 al parametro $PARAMETERS['settings']['exp_by_chat']['value'] in config.inc.php , oltre ad aver chiaramente abilitato l'incremento dell'esperienza tramite caratteri scritti sempre nello stesso file.
Aggiungendo un qualsiasi valore diverso da 0, quando in ref_header.inc.php si scatena il processo di assegnazione dell'esperienza non viene minimamente presa in considerazione la quantità minima di caratteri necessaria, ma si procede direttamente con l'incremento.
Qui puoi vedere il dettaglio:
if($PARAMETERS['mode']['exp_by_chat'] == 'ON') {
$msg_length = strlen($chat_message);
$char_needed = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['number']);
$exp_bonus = ($PARAMETERS['settings']['exp_by_chat']['value'] == '0') ? $msg_length / $char_needed : gdrcd_filter_num($PARAMETERS['settings']['exp_by_chat']['value']);
}
// Se è stata settata l'esperienza per azione, allora avvio la procedura per il calcolo dell'esperienza
if($PARAMETERS['mode']['exp_by_chat'] == 'ON') {
// Ottengo la lunghezza del messaggio inviato
$msg_length = strlen($chat_message);
// Determino il numero di caratteri necessari per ottenere un bonus
$char_needed = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['number']);
// Determino il bonus da assegnare
$exp_assign = gdrcd_filter('num', $PARAMETERS['settings']['exp_by_chat']['value']);
// Se il numero di caratteri necessari è maggiore di 0, allora il bonus viene dato se il messaggio è lungo almeno quanto il numero di caratteri necessari
if ($char_needed > 0) {
$exp_bonus = ($exp_assign <= 0) ? $msg_length / $char_needed : ( $msg_length >= $char_needed ? $exp_assign : 0);
}
// Altrimenti il bonus viene assegnato sempre
else {
$exp_bonus = $exp_assign;
}
}
03/02/2023 17:56:29 e modificato da crystaltokyo il 03/02/2023 23:13:19
kasa ha scritto:
...
« Dalla glaciazione di cristallo, noi rinasceremo »
http://crystaltokyo.altervista.org
04/02/2023 13:09:48
crystaltokyo ha scritto: ...
GitHub: https://github.com/GDRCD/GDRCD
Discord: https://discord.com/invite/K2eWXpvu4M
GdR-O: https://www.gdr-online.com/readforum.asp?id=250579
Discussione seguita da
Pagine → 1
Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
sallys ha risposto alla discussione: [GDRCD 5.6.0.2] - Creare un secondo Tag
✋😟
Abbiamo rilevato che stai usando un software per bloccare la pubblicità!
L'utilizzo di GDR-online.com è gratuito da oltre 18 anni ma è necessario coprire i costi per mantenerlo online... ti chiediamo di aiutarci disabilitando il blocco dei banner pubblicitari.
Togliere il blocco significa fare in modo che GDR-online.com possa continuare a far conoscere piccoli giochi amatoriali gratuitamente e offrire un servizio sempre migliore e adatto alle esigenze dei suoi giocatori!
Se questo avviso continua ad apparire nonostante tu abbia autorizzato il portale:
- Verifica nelle opzioni che venga disattivato AdBlock in tutto il dominio gdr-online.com e non solo in una pagina
- Controlla di non avere fra le estensioni installate altre analoghe ad AdBlock, come AdBlock Plusbr, ublock origin, ecc.
- Probabilmente sul tuo PC è installato un Antivirus che ha anche funzioni di blocco pubblicità
- Se usi Firefox impostare il "Blocco Contenuti" su "Normale" e non su "Restrittivo". Per farlo clicca sull'icona dello scudo vicino all'URL e clicca su "Disattiva Blocco per questo sito"
- Prova a premere CTRL + F5, riloggarti e vedi se il problema persiste