[gdrcd 5.6] eventi automatici in chat postato il 14/05/2023 17:02:56 nel forum programmazione, gdrcd e open source
buon pomeriggio! cerco di spiegare che cosa intendo per "eventi automatici in chat": la possibilità di avere delle stringhe master pre-scritte che l'utente può inviare in chat manualmente tramite menu a disposizione (un po' come quello delle abilità o dei dadi).
la dinamica è la seguente:
utente 1 e utente 2 stanno giocando in chat x
utente 1 apre il pannello eventi automatici in chat (vedrà gli eventi associati a chat x)
utente 1 invia la prima stringa
si gioca, si invia la seconda e si prosegue fino a termine evento
non essendo i codici il mio pane quotidiano, mi pare di capire che: devo creare una tabella nel database per inserire le stringhe, devo creare il pannello raggiungibile dalla chat e la parte interna che mi permetta di selezionare la stringa da inviare, fare in modo che si stampi in chat cosa ho richiesto.
credo che il ragionamento sia corretto, qualcuno potrebbe gentilmente indirizzarmi o farmi capire se sto sbagliando nel ragionamento che c'è dietro? non essendo del mestiere non so bene se sto ragionando corretto e magari qualche indicazione (in generale, ragionamento o dove mettere le mani) potrebbe aiutarmi. grazie mille!
Pagine → 1
15/05/2023 13:33:35
Ci ho provato anch'io, il ragionamento mi sembra giusto, ma io stessa non so bene come aiutarti perchè mi blocco per un paio di cose:
1. come fare in modo di selezionare dal pannello gestionale le chat in cui debba esserci il master automatico (perchè almeno io non lo voglio in tutte, ma solo in alcune)
2. come far stampare in chat il tutto, perchè ogni volta che tocco ref_header.inc.php esplode la land. So che andrebbe creato un nuovo "case" (se vedi, ci sono case M per il fato, case P per il parlato, eccetera...) o riutilizzare uno non usato (per esempio il case N del png o il case A che è uguale al P), ma non essendo programmatrice qui è il punto in cui mi blocco del tutto, perchè non so come scriverlo.
Quindi provo a seguire il post, sperando in qualche suggerimento!
15/05/2023 14:03:08
L'argomento interessa anche me molto!
15/05/2023 15:22:51
si, siamo sulla stessa barca mi sa. vediamo se qualcuno s'affaccia e può darci qualche direzione!
15/05/2023 19:01:09
Noi abbiamo inserito un sistema di esiti automatici randomizzati, generabili dal pannello chat tramite un bottone ("Richiedi esito") che possa calcolare anche le eventuali CD fallite o superate dai giocatori che richiedono l'esito.
Questo bottone mostra l'esito in un popup, cliccando sul tasto di "accettazione" dell'esito, esso viene stampato in chat.
Di base, comunque abbiamo, in ordine:
Creato una tabella in DB dal titolo "Esiti" con le seguenti colonne:
- id_prompt (INT) (PRIMARY) (auto_increment)
- tipo (INT) (che corrisponde al numero della chat in cui quest'esito dovrà comparire)
- nome (VARCHAR 200) (il titolo dell'esito)
- creatore (VARCHAR 200) (questo perché abbiamo un pannello per crearli, e ogni master può visualizzare solo i suoi, quindi lo utilizziamo come filtro)
- descrizione (TEXT) (il testo da stampare in chat)
- dadi (TEXT) (la stringa di testo separata che richiede le CD)
Modificato il ref_header_inc ed il .css conseguente per avere un tipo di messaggio "dedicato" a questo tipo di esiti (nel ref_header, trovate tutti i "case A", "case P" ecc. ecc.) ((non saprei dirvi sull'unghia tutti i passaggi di modifica apportati, perché abbiamo pasticciato un pochino col ref_header, quindi mi servirebbe un momento di calma per ricpercorrerlo da zero))
Creato un popup per la generazione dell'esito, di cui, tralasciando tutte le query specifiche che utilizziamo noi per le nostre funzionalità, esegue due funzioni fondamentali.
La prima è quella che pesca l'esito ed è la seguente:
$items = gdrcd_query("SELECT * FROM esiti_chat WHERE tipo = '".$_SESSION['luogo']."' ORDER BY RAND() LIMIT 1");
gdrcd_query("INSERT INTO chat ( stanza, imgs, mittente, destinatario, ora, tipo, testo ) VALUES (".$_SESSION['luogo'].", '".$_SESSION['sesso'].";".$_SESSION['img_razza']."', 'Esito Automatico', 'Esito', NOW(), 'L', '".gdrcd_filter('in', $_POST['esito'])."')");
<?php } elseif (gdrcd_filter('out', $info['id'])==121) { ?>
<div class="casella_chat_invio">
<a href="javascript:modalWindow('Esiti', 'Esiti', 'popup.php?page=servizi_esitichat');">
<button class="cure">AUTOESITI
</button>
</a>
</div>
15/05/2023 20:04:52
chykopon ha scritto: ...
15/05/2023 21:58:11
sunai ha scritto:
chykopon ha scritto: ...
} elseif(($type == "3") && ($_SESSION['permessi'] >= USER)) { /*danni*/
$m_type = 'N';
} elseif(($type == "13") && ($_SESSION['permessi'] >= USER)) { /*esiti*/
$m_type = 'L';
$_SESSION['tag'] = $tag_n_beyond;
case 'L':
/** * Fix problema visualizzazione spazi vuoti con i sussurri
* @author eLDiabolo
*/
$add_chat.= '<div class="chat_row_'.$row['tipo'].'">';
$add_chat.= '<div class="nome_master"><span class="chat_name">Master screen di <a href="#" onclick="Javascript: document.getElementById(\'tag\').value=\''.$row['mittente'].'\'; document.getElementById(\'type\')[2].selected = \'1\'; document.getElementById(\'message\').focus();">'.$row['mittente'].'</a>';
if(empty ($row['destinatario']) === FALSE )
{
}
$add_chat.='</span></div> ';
$add_chat.= '<span class="chat_time">'.gdrcd_format_time($row['ora']).'</span>';
$add_chat.= '<span class="chat_master">'.gdrcd_chatme($_SESSION['login'], gdrcd_chatcolor(gdrcd_filter('out',$row['testo']))).'</span>';
$add_chat.= '<span class="chat_msg"> | <a href="javascript:modalWindow(\'conseguenze\', \'Conseguenze\', \'popup.php?page=servizi_esiticonseguenze\');" style="font-weight:bold"><span style="color:#f85757; text-transform:none;">Azionate, lanciate le CD, e poi CLICCATE QUI per giocarvi le conseguenze!</span></a></span>';
/** * Fix problema visualizzazione spazi vuoti con i sussurri
* @author eLDiabolo
*/
$add_chat.= '</div>';
break;
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
nocte ha recensito Moon Shadows
✋😟
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