[GDRCD5]Richiesta codice monte ore postato il 27/11/2010 18:17:42 nel forum programmazione, gdrcd e open source
Semplicemente, c'è qualcuno che ha creato/ha ottenuto un codice funzionante per il calcolo di un monte ore e/o per la ricarica automatica della salute? Se si, è possibile averlo? grazie e scusate la schiettezza^^
Pagine → 1 2
27/11/2010 18:33:19
Vedendo i vari gdr che ci sono in giro fatti con gdrcd5 non è stato ancora fatto niente del genere, e non è stato nemmeno rilasciato nulla qui sul portale.
27/11/2010 19:19:49
27/11/2010 19:23:34
27/11/2010 19:52:29
Non c'è esattamente un codice, sto guardando come base uno vecchio che mi hanno passato da vedere, ma c'entra poco.. in pratica, per quello che serve a me, nello specifico dovrebbe controllare (automaticamente o su attivazione manuale, in base alle possibilità) un parametro che verifichi che nelle ultime 24 ore non c'è stato un "refresh". dopodichè controlla se la salute degli utenti è minore della salute massima, e se non sono morti la incrementa, e resetta il parametro di controllo.
L'altra sua funzione separata è quella di contare il tempo di gioco di un player, salvarlo nel db, dopodichè al refresh di cui sopra assegna exp extra in base al tempo (con un tetto massimo)e dia lo stipendio (quindi disabilitando la funzione dello stipendio della banca).
Sto provando a mangiarci sopra, ma finora ho solo risultati molto deludenti (infatti mastico ancora poco poco di php) e comunque mi sembra una funzione "comoda" anche per altre land, per cui se questo post diventasse anche una futura risorsa per GDRCD5 sarebbe fantastico.
Intanto grazie per la risposta...
27/11/2010 21:25:19
27/11/2010 21:48:12
grazie della dritta proverò a smanettarci sopra.
Per quanto riguarda la seconda parte si parla proprio di tempo giocato, per cui il parcheggiamento gratuito non conta in quanto non si azione.
intanto grazie mille, proverò a vedere se combino qualcosa di buono! in caso positivo posterò il codice!
28/11/2010 04:29:32
quantifica esattamente come deve funzionare. da come esponi la cosa sembrerebbe che la tua idea sia piuttosto nebulosa e questo non puo' portare al progetto di una funzione, al massimo una roba buttata li stile gdrcd 3.
Prova a dire una cosa come "il personaggio riguadagna 1 pf se ha fatto azioni nell'ultima ora" allora vedrak che e' piu' facile pensare a che informazioni memorizzare e a che cotrolli fare.
28/11/2010 19:21:26 e modificato da ntg production il 28/11/2010 19:37:27
ok ,proverò a spiegarlo con il diagramma che sto seguendo per tentativi. Per chiarezza non è un codice, ma solo come ho scritto le cose per semplicità:
la parte di calcolo del tempo di gioco sarebbe così:
all'invio dell'azione del pg:
variabile del Personaggio $ultima_azione //orario azione precedente
variabile del Personaggio $monte_ore // la somma del tempo di gioco
variabile di funzione $azione_corrente //orario ultima azione
variabile di funzione $tempo_corrente //il tempo di stacco tra le ultime due azioni
parametro $tempo_min //il minimo di tempo tra azioni inviate
parametro $tempo_max //il max di tempo tra azioni inviate
parametro $max_monte_ore //il massimo di tempo accumulabile
$tempo corrente = $azione_corrente - $ultima azione
se ($monte_ore < $max_monte_ore){
se ($tempo corrente > $tempo_min){
se ($tempo_corrente < $tempo_max){
se ($monteore + tempo_azione > $max_monteore){
$monte_ore = $max_monte_ore;
}
altrimenti {
$monte_ore = $monte_ore + $tempo_corrente;
}
}
}
}
$ultima_azione = $azione_corrente;
questo succede invece allo scadere della giornata, ovviamente si può settare l'orario di calcolo delle 24 ore dall'ora preferita:
per ogni personaggio:
se ($salute < $salute_max){
se ($salute + $recupero > $salute_max){
$salute = $salute_max;}
altrimenti{
$salute = $salute + $recupero)
la variabile di recupero può essere fissa oppure dipendente dalel stat del personaggio, io preferirei la seconda, per dire.
questo invece succede allo scattare della settimana (io vorrei fare un conteggio settimanale di exp e soldi, però si potrebbe fare come si vuole):
per ogni personaggio:
parametro $min_monte_ore //il minimo di tempo che si richiede per ricevere i bonus;
variabile di funzione
$soldi_pg = $soldi_pg + $stipendio pg x 2; //come se il pg avesse lavorato poco, questo succede se un player non gioca il minimo;
se ($monte_ore >= $min_monte_ore) {
$soldi_pg = $soldi_pg + $stipendio_pg x 3 + floor(($monte_ore - $min_monte_ore)/$min_monte_ore) x $stipendio_pg; //se il player gioca il minimo prende lo stipendio di 5 giorni lavorativi, se gioca di più prende gli "straordinari", quindi da 1 a 2 stipendi extra;
$exp_pg = $exp_pg + $bonus_exp x 2 + floor(($monte_ore - $min_monte_ore)/$min_monte_ore) x $sbonus_exp; // il minimo sindacale di gioco aggiudica exp extra, giocando di più si ottengono incrementi equivalenti a quelli dello stipendio;
}
$monte_ore = 0; //questo accade a prescindere dallo stato del monte ore, allo scattare settimanale della funzione ogni monte ore viene riportato a 0.
Questo è quanto. spero di non aver omesso nulla... e per adesso torno a vedere se ottengo qualcosa di funzionale... grazie e ciau!
14/12/2010 16:21:03
ok, dopo un pò di tentativi, almeno la ricarica salute sono riuscito a terminarla (anche se è migliorabile, però almeno questa versione funziona)...
c'è da inserire il codice in una pagina apposta, io l'ho messa accessibile come opzione dal menù gestione per lasciare l'accesso ai solo addetti ai lavori^^
Il codice controlla se c'è stata una cura dall'ultima data registrata in Timeup, dopodichè aumenta la salute di tutti i pg.
Ovviamente, funziona una volta al dì^^
Enjoy!
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
Dalemyr: Un pagamento per salvare molte vite