[RISOLTO] GDRCD 5.4 log acquisti mercato e bug
Pagine → 1 2
18/09/2021 17:59:11
Ringrazio ancora per l'aiuto ma avrei ancora bisogno un attimo se potete (e qui dimostro tutta la mia incapacità) >.<
Ho provato a rifare il procedimento per creare un sistema di LOG che segna quando un PG abbandona un oggetto, e quando lo vende al mercato.
Ma va sempre in errore quando copio le ultime due "parti" del sistema sopra esposto cercando di modificarle "a logica".
potete farmi vedere come siano da scrivere questi ultimi due passaggi per piacere?
Ve ne sarei davvero grato ^^
18/09/2021 19:03:17
Ti va di postare il codice che hai implementato e dove lo hai inserito?
Lunedì appena ho sotto mano il PC ti dico come farei io ;)
22/09/2021 10:58:23
L'errore che riscontri a cosa è collegato?
All'inserimento in DB del LOG che hai creato o a qualche logica non funzionante?
Come hai gestito i LOG nello specifico?
Kasa.
24/09/2021 22:16:56
Mi frego in questo passaggio, dove semplicemente scambiavo ACQUISTO con VENDITA, ma comprendo che di base, non può essere lo stesso identico codice.
Ricopio la guida che stava nella pagina precedente:
dove c'è
$query = "UPDATE clgpersonaggiooggetto SET numero = numero + 1 WHERE id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])." AND nome = '".$_SESSION['login']."'";
subito sotto aggiungi:
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".$_SESSION['login']."','".$_SESSION['login']."', NOW(), ".ACQUISTO.", 'Ha acquistato ".gdrcd_filter('in', $nome['nome'])."')");
dove c'è
$query = "INSERT INTO clgpersonaggiooggetto (nome, id_oggetto, cariche, numero, posizione) VALUES ('".$_SESSION['login']."',".gdrcd_filter('num', $_POST['id_oggetto']).", ".$costo['cariche'].", 1, 0)";
subito sotto aggiungi:
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".$_SESSION['login']."','".$_SESSION['login']."', NOW(), ".ACQUISTO.", 'Ha acquistato ".gdrcd_filter('in', $nome['nome'])."')");
Questi passaggi, ho provato a modificarli in vari modi, ma chiaro io sia un palese ignorante in materia. Come andrebbero riscritti per registrare LOG/Vendite? Mi mandava errore pagina di sintassi
25/09/2021 16:35:57 e modificato da haruka il 25/09/2021 20:14:34
Ma la parte riguardante gli altri file l'hai fatta?
allora...
in includes/constant_values.inc.php
aggiungi:
define('VENDITA', 19);
metti il numero progressivo seguente all'ultimo che hai indicato da te (da me, ad esempio, è 19 perché nel mentre ho sviluppato altri log.
In /vocabulary/IT-it.vocabulary.php
Dove hai
/********** Eventi **********/
inserisci in coda
$MESSAGE['event'][VENDITA] = 'Vendite';
in servizi_mercato.inc.php ora devi agire nella parte di codice non dell'acquisto, ma della vendita. Dove c'è
/*Vendita*/
Questo
/*Vendita*/
if(gdrcd_filter('get', $_POST['op']) == 'sell') {
/*controllo che il PG abbia l'oggetto*/
$query = "SELECT clgpersonaggiooggetto.numero, oggetto.costo FROM clgpersonaggiooggetto LEFT JOIN oggetto ON clgpersonaggiooggetto.id_oggetto = oggetto.id_oggetto WHERE clgpersonaggiooggetto.id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])." AND clgpersonaggiooggetto.nome = '".$_SESSION['login']."'";
$result = gdrcd_query($query, 'result');
if(gdrcd_query($result, 'num_rows') > 0) {
$row = gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
$costo_vendita = floor(($row['costo'] / 100) * (100 - $PARAMETERS['settings']['resell_price']));
if($row['numero'] > 1) {
$query = "UPDATE clgpersonaggiooggetto SET numero = numero - 1 WHERE id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])." AND nome = '".$_SESSION['login']."' LIMIT 1";
} else {
$query = "DELETE FROM clgpersonaggiooggetto WHERE id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])." AND nome = '".$_SESSION['login']."' LIMIT 1";
}
gdrcd_query($query); ?>
fallo diventare:
/*Vendita*/
if(gdrcd_filter('get', $_POST['op']) == 'sell') {
/*controllo che il PG abbia l'oggetto*/
$query = "SELECT clgpersonaggiooggetto.numero, oggetto.costo FROM clgpersonaggiooggetto LEFT JOIN oggetto ON clgpersonaggiooggetto.id_oggetto = oggetto.id_oggetto WHERE clgpersonaggiooggetto.id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])." AND clgpersonaggiooggetto.nome = '".$_SESSION['login']."'";
$result = gdrcd_query($query, 'result');
$nome = gdrcd_query("SELECT nome FROM oggetto WHERE id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])."");
if(gdrcd_query($result, 'num_rows') > 0) {
$row = gdrcd_query($result, 'fetch');
gdrcd_query($result, 'free');
$costo_vendita = floor(($row['costo'] / 100) * (100 - $PARAMETERS['settings']['resell_price']));
if($row['numero'] > 1) {
$query = "UPDATE clgpersonaggiooggetto SET numero = numero - 1 WHERE id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])." AND nome = '".$_SESSION['login']."' LIMIT 1";
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".$_SESSION['login']."','".$_SESSION['login']."', NOW(), ".VENDITA.", 'Ha venduto ".gdrcd_filter('in', $nome['nome'])."')");
} else {
$query = "DELETE FROM clgpersonaggiooggetto WHERE id_oggetto = ".gdrcd_filter('num', $_POST['id_oggetto'])." AND nome = '".$_SESSION['login']."' LIMIT 1";
gdrcd_query("INSERT INTO log (nome_interessato, autore, data_evento, codice_evento, descrizione_evento) VALUES ('".$_SESSION['login']."','".$_SESSION['login']."', NOW(), ".VENDITA.", 'Ha venduto ".gdrcd_filter('in', $nome['nome'])."')");
}
gdrcd_query($query); ?>
Ho testato e da me funziona ;)
26/09/2021 11:18:05
Grazieeeeeeeeeeeeeeeeeeeeeeeeeeeeee <3 <3 <3
08/10/2021 22:56:56
Provo altra idea allora: si può usare lo stesso concetto di registrare l'evento per registrare quando l'utente invia azioni identiche in chat?
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Exclusive Villa GdR ↗
CRSED: F.O.A.D. ↗
Enlisted ↗
Imperion ↗
RAID Shadow Legends ↗
Raja Dunia ↗