Bug asterischi a inizio frase
Bug asterischi a inizio frase postato il 10/05/2026 16:43:56 nel forum programmazione, open source e hosting
Ciao a tutti, sto lavorando da un pezzo ad un'espansione del codice GDRCD 5606.
Finora ho creato tre file js uguali:
- incantesimi
- talenti
- stati
Ognuno gestisce delle finestre pop-up che consentono di cliccare sul nome di uno stato/talento/incantesimo pubblicato in chat e leggerne la descrizione.
Ognuno si "attiva" con un codice diverso:
- incantesimi: **Nome**
- talenti: [Talento]
- stato: $Stato$
Il problema si pone solo per gli incantesimi quando vengono inseriti a inizio frase.
Ad esempio:
**Pelle di Pietra** <riceve la protezione dell'amico mago e si getta in mischia.>
La frase non viene stampata in chat.
Al suo posto compare uno spazio vuoto e non riesco a capire da che cosa dipenda.
Grazie.
Pagine → 1
10/05/2026 17:06:41
Salve!
Intanto davvero bell'idea per la feature!
Per il problema credo subentri il controllo nel ref_header che permette ai master (o livelli superiori) di inserire immagini in chat, che si aziona proprio con un asterisco ad inizio frase.
Qui c'è il controllo incriminato:
https://github.com/GDRCD/GDRCD/blob/master/ref_header.inc.php#L212 ↗
10/05/2026 18:07:51 e modificato da moderazione il 11/05/2026 08:01:24
Super grazie Blancks!
Sicuramente la regola che ho creato per gli incantesimi interferisce con l'asterisco riservato al Master. Preferirei cambiare quest'ultimo, secondo te su quale parte di codice conviene intervenire?
O meglio, da questa parte di codice in ref_header:
} elseif((($type == "2") || ($first_char == "§") || ($first_char == "-") || ($first_char == "*")) && ($_SESSION['permessi'] >= GAMEMASTER)) { /*Master*/
$m_type = 'M';
if(($first_char == "§") || ($first_char == "-")) {
$chat_message = substr($chat_message, 1);
} elseif($first_char == "*") {
$chat_message = substr($chat_message, 1);
$m_type = 'I';
}
posso sostituire i simboli con altri simboli o combinazioni di simboli a mio piacimento, o devo agire su più file?
Mi risparmi qualche oretta di ricerca :)
10/05/2026 18:35:26
Dovrebbe essere sufficiente modificare entrambi (sono due) i controlli sull'asterisco presenti nel blocco di codice riportato:
$first_char == "*"
Controllerei solo che il carattere nuovo non sia già usato sempre nel ref_header come comando per altre tipologie di azioni e dovrebbe funzionare tutto
10/05/2026 20:05:56
wodahs ha scritto:
Secondo me puoi fare una fix di questo tipo:
Riga 136
$first_char = substr($chat_message, 0, 1);
$second_char = substr($chat_message, 1, 1);
Riga 212 (dopo la prima modifica 213)
} elseif((($type == "2") || ($first_char == "§") || ($first_char == "-") || ($first_char == "*" && $second_char != "*")) && ($_SESSION['permessi'] >= GAMEMASTER)) { /*Master*/
Riga 216 (dopo la prima modifica 217)
} elseif($first_char == "*" && $second_char != "*") {
può essere una soluzione alternativa.
18/05/2026 22:02:36
Super grazie, ora faccio qualche prova.
Già che ci siamo...
Il trattino (-) è il comando per le stringe del master, l'asterisco (*) il comando per inviare immagini, mentre questo (§) a cosa serve?
19/05/2026 10:55:37
wodahs ha scritto:
Secondo la logica che vedo è un alias per inviare immagini in chat.
if(($first_char == "§") || ($first_char == "-")) {
Se § o - allora il messaggio è un'immagine.
19/05/2026 12:12:22
wodahs ha scritto: Super grazie, ora faccio qualche prova.
Già che ci siamo...
Il trattino (-) è il comando per le stringe del master, l'asterisco (*) il comando per inviare immagini, mentre questo (§) a cosa serve?
Alias per le azioni master, equivalente al trattino
24/05/2026 19:22:56
blancks ha scritto: Dovrebbe essere sufficiente modificare entrambi (sono due) i controlli sull'asterisco presenti nel blocco di codice riportato:
$first_char == "*"
Controllerei solo che il carattere nuovo non sia già usato sempre nel ref_header come comando per altre tipologie di azioni e dovrebbe funzionare tutto
Ho seguito questo consiglio ed ha funzionato correttamente.
Ho notato però che il simbolo "§" non produce una stringa come il simbolo "-".
Eppure non mi sembra di aver toccato nulla riguardo il simbolo "§".
Non mi occorre per il momento, ma segnalo per un controllo sul codice originario.
Grazie!
24/05/2026 20:03:43
wodahs ha scritto:
Ho seguito questo consiglio ed ha funzionato correttamente.
Ottimo 💪
Non mi occorre per il momento, ma segnalo per un controllo sul codice originario.
Grazie!
Grazie della segnalazione!
Abbiamo riscritto completamente le chat per la prossima versione, ma farò sicuramente un controllo per vedere se quel simbolo viene gestito correttamente
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
CRSED: F.O.A.D. ↗
AlterEgo ↗
The Coven ↗
Cafuné ↗
Exclusive Villa GdR ↗
State of Survival ↗
Hero Wars ↗
World of Tanks ↗