Nuovo controllo Punti postato il 20/04/2013 13:51:16 nel forum programmazione, gdrcd, open source, hosting
Buongiorno a tutti,
vi scrivo per un problema di programmazione, che in realtà è composto da più parti...
L'idea: Creare una pagina php, che verrà richiamata con un chronjob una volta al giorno, che controllo la data degli ultimi punti esperienza ricevuti da ogni PG e inserisce, nel caso la data sia più vecchia di una settimana, un malus (-1 punto esperienza) a quel PG.
Il motivo: I Punti esperienza in gioco "equivalgono" al grado di preparazione fisico e mentale dei PG. Essendo un'ambientazione militare, ci si addestra, ci si allena, si impara a sparare e si cerca di mantenere l'allenamento. A rigor di logica, se i punti salgono, man mano che il PG "migliora" in riflessi, forza fisica, prontezza ecc ecc sarebbe solo logico che se un PG non si muove per 2 settimane, questo sia "meno preparato" fisicamente e mentalmente di quanto non fosse prima.
Come fare: Il GDR è basato su GDR-CD, anche se ormai ben poco è rimasto del vecchio codice, cmq, la struttura della Tabella "Punti" non è cambiata moltissimo. Ci sono alcuni campi in più, ma per ora ignoriamoli e diamo per contato che i campi che ci interessano sono:
"Nome" (Il nome del personaggio), "DataEvento" (La data dell'ultima assegnazione dei punti) e "Esperienza" (I punti esperienza assegnati).
Il controllo dovrebbe essere:
if DataEvento < NOW-7gg
INSERT nuova riga con Nome = NomePG controllato, DataEvento = NOW e Esperienza = -1
I problemi:
- Come controllo TUTTI i PG iscritti?
- Come inserisco il valore di ID (La chiave primaria della tabella Punti) che deve "autoincrementarsi"?
Grazie a tutti ^^
20/04/2013 13:58:11
Ultima considerazione:
Pensavo di lavorare su qualcosa tipo:
20/04/2013 13:58:45 e modificato da overlord il 20/04/2013 14:07:03
Mi viene da pensare ad una soluzione migliore, perché invece di scomodare i job a tempo, non fai il controllo al login dell'utente? Non consumeresti neanche query in più. Quando richiami dal DB tutti i dati per la verifica che l'utente è vero, con un Join richiami anche la data ultimo evento di assegnazione PX, poi fai una verifica con IF (ovviamente XD) su questo valore, e se più vecchio di tot tempo, assegni il malus.
20/04/2013 14:12:37 e modificato da leoblacksoul il 20/04/2013 14:21:32
Una query per domarli:
20/04/2013 14:43:07 e modificato da sgc carter il 20/04/2013 14:46:47
OK...
Ora però, mi sono "reso conto" che inserire una riga in "Punti" non è l'unica cosa che devo fare... C'è da "togliere" un punto anche alla voce "Esperienza" della tabella "Personaggio" dove il "Nome" equivale al nome del PG "fuori allenamento" XD
Quindi,
uso un INSERT nella tabella Punti affinché il prossimo "punto" lo toglie quando passa un'altra settimana dall'ultimo controllo. E va bene
E poi devo togliere un punto exp dalla Tabella Personaggio...Any hint?
Quanto a:
"Devono aver ricevuto almeno una volta dei punti exp" certo... se non ne hanno nessuno, non possono ricevere sottrazioni, va bene.
"Non possono scendere sotto lo 0" Beh, tencicamente possono... non è un valore utile, ma in teoria, potrebbero.
20/04/2013 14:59:05 e modificato da leoblacksoul il 20/04/2013 15:00:55
una è un'update, l'altra è una insert, non si possono fare nella stessa query. Quindi devi necessariamente farle in due passi.
Fai prima:
20/04/2013 15:01:20
Quando fai l'INSERT del -1 lanci anche un UPDATE della tabella personaggio per sottrarre 1 al suo valore totale di esperienza, e che ci vuole :D
20/04/2013 15:05:09 e modificato da sgc carter il 20/04/2013 15:11:35
Hmm, quindi inserendo questo:
20/04/2013 15:14:14 e modificato da leoblacksoul il 20/04/2013 15:15:10
Si esatto. Io la farei in un cron però, al login viene eseguita molte più volte di quanto sia necessario e le query aggregate sono pesantucce.
Ricordati di testarle prima metterle per davvero sul tuo gdr, io non le ho testate per davvero ;)
20/04/2013 15:16:51
Sto testando or ora e...
Funziona la parte dell'inserimento della riga in "punti" ma non sottrae il punto al Personaggi nella tabella Personaggio...
20/04/2013 15:42:02
Domanda... ma perché proprio in quell'ordine?
Ho controllato i vari dati, nome tabella, nomi campi ecc ecc, e sono tutti giusti... può essere che il problema sia nel "Join" dei dati?
Discussione seguita da
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
The Coven: Secondo turno della side quest
Dominion Gdr → In una NY con un tessuto sovrannaturale nascosto, la Reggenza Vampirica e il Queens dei Lupi ribollono sotto il Dominio dei Bokor. Quanto durerà la pace?
Il gestore di Storie di Agarthi ha risposto alla recensione di do the evolution
Storie di Agarthi: La Corte d'Ossidiana — Schiera
Ex Gratia GDR: Nuove location di gioco nello Xanadu
La Tana del Ladro: TdL Stories - ⚡ Boati a Xantharl ⚡
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
nww ha aperto un annuncio di ricerca: New Wizarding World ricerca Giocatore
Lineage II: Promozione "E' tempo di craftare!"
Sea of Conquest: Codice gratuito per Festa del papà!
exfainte ha aperto un annuncio di ricerca: Sylmaera GDR ricerca Programmatore
World of Tanks → Lanciati in epiche battaglie spalla a spalla con altri giocatori. Conquista la supremazia nel mondo dei Carri Armati!
Dalemyr: Distribuzione a sorpresa
Ex Gratia GDR: Quest | Il magazzino della PEH!
Legacy of Magic: La nuova regina del Brehorn
Storie di Agarthi: Custodi della Sacra Fiamma — Schiera
Sponsorizzati con noi! → Sponsorizza il tuo gioco su GDR-online! Trova nuovi giocatori fra i migliaia di appassionati che ogni giorno visitano il portale!
Les Ombres de Bruges - Recensione del play by chat Les Ombres de Bruges: il gotico moderno!
Cos'è il Gdr? - Scopriamo dal maestro Yoshi i primi passi per giocare ad un gdr...
Opéra - Intervista ai gestori del GdR storico ambientato in un oscura Francia di fine 800... Opéra!
Oltre il Velo - Recensione di Oltre il Velo, gioco di ruolo play by chat dove il fantasy incontra il moderno..
Realismo vs. Genere - Quando la realtà influenza il gioco: spesso i giochi di ruolo simulano meglio generi fantasy/horror che la vita reale!
Regno di Thyrea - Intervista allo staff di Il Regno di Thyrea.. il play by chat fantasy!
Lucca C&G 2023 - Il resoconto del nostro ritorno a Lucca Comics and Games 2023!
Extremelot - ExtremeLot: 17 Anni per il primo Gdr Fantasy Italiano!