Timer Spostamenti postato il 28/06/2007 00:31:28 nel forum programmazione, gdrcd, open source, hosting
Dopo averne discusso con un utente e nella chat durante la serata, ed aver analizzato i pro e i contro di questa cosa vi vorrei chiedere come poter implementare, nel mio gdr (in fase di costruzione e non ancora pubblico in quanto non vorrei attirarmi l`ira di Mr_Faber) un timer per le mappe in modo che i PG non saltino da una location all`altra senza rispettare un minimo di coerenza. Ho una mappa generale che si suddivide in 8 sottomappe (tutte immagini) a cui son state collegate poi le varie chat.
In poche parole vorrei creare questo timer che memorizzi la 1a posizione in cui un PG inizia a ruolare e la 2a, quella a cui vuole accedere, in modo che non possa entrare o comunque ruolare senza aver aspettato un determinato tempo, ovviamente non per tutte le chat, in quanto credo che sia un lavoro disumano, ma solo per le 8 mappe...
Pagine → 1
28/06/2007 14:09:56
Secondo me la soluzione è molto semplice nel caso della richiesta. Basta usare Ajax in questo caso senza crearsi chiamate assurde implementare qualcosa con prototype. Questa libreria ha già implementata alcuni tipi di Timer e potrebbero essere usati per "modificare" dinamicamente il contenuto dei Link (per esempio settare a "#" invece dell`indirizzo corretto). Per cose più complesse andrebbe bene la soluzione delle sessioni/db. E nonostante l`overhead che tu citi black io invece spesso nelle mie applicazioni registro un timestamp dell`attività dell`utente in un db(e anche il SID di sessione) anche se è presente una sessione questo per motivi di sicurezza. Il tutto rientrerebbe poi in un discorso di tabella online.
un`altro modo è usare un input hidden facendo tutto con ajax senza passare da una sessione.
Detto questo non c`è altro da dire mi pare XD.
29/06/2007 12:07:01
ok, qui mi sento nettamente inferiore.. visto che l'ajax non me lo sono ancora imparato e quando ci ho provato o rinunciato perche' purtroppo non mi ci riesco a dedicare(e studiare nelle pause pranzo 10 min al giorno la vedo dura :P)
In ogni caso senza usare sessioni o ajax o altro, ma basandomi sulla mia conoscenza di sqle php, la prima idea che a me veniva in mente per fare il controllo del genere era creare una tabella delle distanze.
ovvero avvere una tabella con le possibili combinazioni degli spostamenti, per esempio
citta1 -> citta2 = 10min
citta3 -> citta8 = 1h
citta4 -> citta8 = 30min
e si fa il controllo in base all'ultima citta' visitata e a quella che si vuole accedere..
ora chiedo.. e' MOLTO piu' pesante e inutile delle soluzioni da voi proposte?
29/06/2007 14:41:15
ad un sistema di permessi ed altro avevo pensato anche io, che poi volevo sfruttare anche per dei motivi di sistema commericale interno..
ma come sistema tra citta lontane io non la vedo cosi' inutile.. un conto e' se in una land le citta' sono intese come quartieri, o comunque luoghi in on molto simili..ma se come nel mio caso le citta' sono disposte in uno stato a centinaia di chilometri e il mezzo piu' veloce e' il cavallo.. credo che per un minimo di realismo non sia una cosa da gettare..
29/06/2007 15:00:48
questo e' vero, i tempi 30 min 1 h etc li avevo messi li un po a caso, in fin dei conti e' piu' una rottura di balle per l'utente, ma neanke che dopo 5 minuti che passeggiavi in un boschetto in trentino ti ritrovo in bikini sulle coste della tunisia :P
29/06/2007 19:34:08
Applicandolo al gdr cd la cosa più semplice sarebbe farlo inserendo il codice nella pagina cambiastanza.php o alternativamente alla main.php
Però ha il grave problema che poi uno deve "azzeccare" la chat nella quale vuole ruolare al primo colpo ... cosa improbabile :P
Allora come detto sopra da qualcun altro, io inserirei il codice nella pagina input.php
- Creo 2 campi in presenti che si chiamano 'OraInvio' e 'StanzaInvio'
- Le faccio resettare nella Insert presente in Login.php con il valore 0
- Nella pagina input.php ogni qualvolta eseguo la query INSERT INTO Chat ... sotto aggiungo una
UPDATE Presenti SET OraInvio = NOW(), StanzaInvio = '$Stanza' // che è già valorizzata.
- Verso l'inizio della pagina input.php metti questa condizione
dopo aver fatto una selezione di quello che tieni in presenti (anche se probabilmente ci sta un modo migliore per richiamare prima questi dati con la sessione stessa ...BHO)
/* $OraAttuale mi sfugge se c'è una funzione predefinita per richiamarla immediatamente */
$TempoSceltoDaTe = 30; // decidi tu
$StanzaInvio = $rs["StanzaInvio"];
$OraInvio = $rs["OraInvio"];
$OraAttuale - $OraInvio = $TempoAttesa;
if ($Stanza > 0) AND ($Stanza != $StanzaInvio) AND ( $TempoAttesa < $TempoSceltoDaTe) {
echo "stanza riservata";
} else {
tutto il resto della pagina
}
Così dovresti in pratica leggere ma non scrivere.
Bella anche se più complicata anche l'idea di una tabella mappa con le distanze in termini di minuti ^^
Se ci provate fatemi sapere se funziona, sono curioso :)
30/06/2007 03:47:36
derryk dice
la locazione dovra' pur aggiornarsi automaticamente no?
-----------------------------
La variabile $stanza era già valorizzata ... lo fa la pagina cambiastanza.php che nel codice deve restare inclusa.
Tra l'altro poi la stanza non la modifico neanche ... il codice non faceva altro che aggiungere un secondo campo stanza(relativo a dove hai scritto per ultimo) da confrontare con quello principale (cioè dove sei nella mappa ... cosa che già funziona attualmente)
01/07/2007 12:30:56
Veramete io ci avevo pensato, e all'inizio ero pure contrario. Però sono giunto ad una soluzione, usare un timer con l'evento onkeypress. Magari il timer parte da quando uno finisce di scrivere oppure di premere Enter. Questo sempre se proprio si vuole. Del resto anche da tavolo i famosi 6 secondi rappresentano la quantità di azioni del pg e non del giocatore. (anche se in alcune situazioni e tornei ho visto i 6 secondi anche per il giocatore). Quindi una soluzione del genere sarebbe dubbiosa :P Magari 60 secondi a frase sarebbe meglio XD
01/07/2007 14:01:37
Mi ripeto, se scrivi secondo gli standard no. Javascript ha degli standard riconosciuti da tutti i browser poi IE ha un suo standard (derivato dal fatto che i suoi linguaggi server-side proprietari sono un po' manchevoli anche se c# sembra carino). Io parlo di un semplice time in javascript che in caso di qualcosa faccia caricare (in modo poco elegante) un frame nascosto in php che lavori da timer. Cosa c'è di rognoso? Rognoso sarebbe forse fare tutto questo (in modo più elegante, performante e veloce) in Ajax con una delle tante librerie magari...
02/07/2007 09:06:09
insomma e' meglio avere un master :P
04/07/2007 18:51:23
Non mi piacciono i timer :S (scusa blackino)
Sono per questa politica:
Se vuoi essere un bravo giocatore impari a gestire il tempo giusto
Se non vuoi essere un bravo giocatore allora fai ciao ciao con la manina
Non servono timer, non serve che io gestore obblighi il giocatore a giocare bene.. lo deve fare cmq se vuole giocare :P
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Metin2: Doppio evento: Caccia al tesoro e Altromondo!
eXtremelot: Navigare o... Volare?? :-)
Pandora Upside Down High School → La prima scuola per sovrannaturali al mondo vi attende! Scoprite il vostro cammino Ancestrale relazionandovi con i compagni e le attività dei club
Games of Thrones Winter is Coming: Playoff dell'assedio di Grande Inverno
I dati del generatore di rank sono stati aggiornati!
Legacy of Magic: Gli Elementi Oscuri - La Nera Signora dell'Acqua
Il gestore di W40K Dathyar ha risposto alla recensione di dreamboy
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, diventa quello che hai sempre cercato.
dreamboy ha recensito W40K Dathyar
Metin2: Live ora: Server Boost Yohara e Twitch Drop
Epic Wizardry RP: Changelog N. 4 - Epic Wizardry Rp
Metin2 → Sfida i tuoi rivali a battersi con te e dimostra la tua superiorità in questo mondo fantasy!
drongo ha recensito Il Grande Blu
Pirates of the Caribbean: Tides of War: Quarti di finale del torneo
DarkOrbit: Galactic Strife & Buono gratis 💥
Legacy of Magic: Il vecchio e la mappa
Pandora Upside Down High School → La prima scuola per sovrannaturali al mondo vi attende! Scoprite il vostro cammino Ancestrale relazionandovi con i compagni e le attività dei club
Shadow of Miami - Shadow of Miami: intervista ai founders del play by chat urban fantasy ambientato a Miami!
Fantasy Day - Resoconto del Fantasy Day al museo del Videogame Vigamus dedicato ad eXtremelot!
Ex Gratia GdR - Intervista ai gestori del play by chat supereroistico Ex Gratia GdR!
CRPG Book Project - Il CRPG Book Project, l’ebook gratuito sulla storia dei giochi di ruolo per computer!
Ultima Espiazione - Intervista alla gestrice di Ultima Espiazione Gdr un play by chat Urban Fantasy dalle tinte fosche.
Romanzi Tolkien - In che ordine leggere i romanzi del maestro Tolkien? Scopriamolo!