[RISOLTO] Tira dadi multiplo
[RISOLTO] Tira dadi multiplo postato il 13/07/2016 00:07:45 nel forum programmazione, open source e hosting e modificato da wind84 il 24/07/2016 18:35:33
Salve!
Sto cercando un sistema per creare un tira multiplo di d10, che stampi un X numero di dadi da 10.
E' una cosa concettualmente semplice, ma sono un autodidatta e non so bene come fare a crearlo/implementarlo.
Sto usando GDRCD 5.4, l'ultima versione.
Grazie mille!
EDIT
Ho scoperto adesso del comando già incluso per tirare un X numero di dadi:
#MdN
Dove a M corrisponde il numero di dadi, ed a N il numero di facce del dado. Perfetto!!
Qualcuno però eventualmente sa dirmi in quale file si trova il riferimento a questo comando?
Quello che vorrei è modificare solo la forma testuale della stampa: ad ogni singolo tiro, ripete la faccia:
A Super esce 1 su 10, 9 su 10, 2 su 10, 6 su 10, 3 su 10, 8 su 10, 9 su 10, 4 su 10
Come posso fare in modo che non ripeta la faccia del dado ad ogni risultato?
Pagine → 1
13/07/2016 02:02:52
Ciao, vedo che hai già trovato da solo la funzione.
Per quanto riguarda il dove, invece, è nel ref_header:
https://github.com/GDRCD/GDRCD/blob/master/ref_header.inc.php#L166
La riga che ti ho evidenziato è quella in cui parte il controllo del cancelletto come primo carattere, tutto quello che c'è in quel piccolo blocco di circa 25 righe serve a tirare i dadi e scriverli nella variabile $chat_message.
Di conseguenza se personalizzi il contenuto di quella variabile lì non dovresti avere difficoltà a fargli scrivere e mostrare i lanci eseguiti nel modo che ti piace di più ;-)
26/07/2018 17:14:41
scusate se riesumo questa discussione
ma dato questo codice
else if (preg_match("/^#([1-9][0-9]*)d+([1-9][0-9]*)$/si", $chat_message,$matches))
{
$numero = (int)$matches[1];
$dado = (int)$matches[2];
$x = 0;
$chat_message = "A ".gdrcd_filter('in', $_SESSION['login'])." esce ";
for($x = 0; $x < $numero; $x++)
{
$die = mt_rand(1,$dado);
$totale =
$chat_message .= $die." su ".$dado.", ";
}
$chat_message = substr($chat_message, 0, -2);
}
}
come posso fare in modo che, scritto il messaggio "è uscito N di DADO" il numero di volte che gli ho detto di lanciare il DADO, mi faccia la somma dei risultati usciti?
26/07/2018 18:01:21
Io farei così, schifosamente a naso:
else if (preg_match("/^#([1-9][0-9]*)d+([1-9][0-9]*)$/si", $chat_message,$matches))
{
$numero = (int)$matches[1];
$dado = (int)$matches[2];
$x = 0;
$totale = 0;
$chat_message = "A ".gdrcd_filter('in', $_SESSION['login'])." esce ";
for($x = 0; $x < $numero; $x++)
{
$die = mt_rand(1,$dado);
$totale = $totale + $die;
$chat_message .= $die." su ".$dado.", ";
}
$chat_message = substr($chat_message, 0, -2);
$chat_message .= " - Totale: ".$totale;
}
}
La variabile $totale la setto a 0 e poi nel "for" dei vari tipi ci sommo ogni volta l'esto e la stampo a fine stampa esiti.
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!
Tiles Survive ↗
World of Warship ↗
The Coven ↗
Enlisted ↗