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
Articolo → Pokémon Go: molto più di un gioco, una rivoluzione silenziosa nell'IA geospaziale
Sondaggio → Sei favorevole all'uso dei dati dei giochi (in generale) per addestrare l'intelligenza artificiale?
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
lionhearted ha aperto una nuova discussione: L'Era della Solitudine e Altri Demoni e Falsi Miti del GdR
I dati del generatore di rank sono stati aggiornati!
hiskoa ha aperto un annuncio di ricerca: Eternal Dream ricerca Giocatore
jennyeverdeane ha recensito Dusk
Lineage II → Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
tamba80 ha recensito La Tana del Ladro
jennyeverdeane ha aperto una nuova discussione: Limitazione caratteri per venire incontro ai vecchi player o cosa?
jennyeverdeane ha recensito Miami Gdr
chinho ha recensito La Tana del Ladro
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
Left To Survive: È tempo di raid! 🚁
FragPunk: Stagione 1 Capitolo 1: Meta Breaker
Dallas Black Gold: Modifiche Layout
Crossout: Questo weekend "Arbalistic 6"!
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Storia del Gdr - Andiamo a ricercare le fondamenta del gioco di ruolo, da dove questo nasce e come si sviluppa nel tempo!
Vendite GdR - La classifica dei giochi di ruolo cartacei più venduti di sempre!
Domino Harry Potter - Land su Harry Potter..quale futuro hanno? Un analisi di Eleonora Scorti..
Giochi Star Wars - Lista completa dei giochi di ruolo online ambientati nel mondo di Star Wars
Giochi Antica Roma - Lista completa dei giochi di ruolo online ambientati nell'antica Roma
Fanta-Trade - Intervista al creatore di Fanta-Trade il primo browser game finanziario completamente sviluppato in Italia
Configurazione GDRCD - Guida illustrata all'installazione dell'open source GDRCD
Live Action Role Play - Analisi dell’attività ludica LARP per mettere in evidenza i suoi utilizzi come strumento terapeutico, didattico e di teambuilding