Gradi abilità GDRCD 5.2
Gradi abilità GDRCD 5.2 postato il 30/12/2013 19:29:45 nel forum programmazione, open source e hosting
Allora, ho fatto un paio di controlli nelle ultime 10-15 pagine di programmazione, ma nessuno sembra aver affrontato questo medesimo caso. Riporto qui il caso in questione: ho tentato di modificare il costo dei punti abilità in modo tale che ogni 10px sia possibile guadagnare 1 punticino, invece dell'attuale sistema che va da 10xil grado che si vuole raggiungere. Il pezzo di codice interessato è questo:
<?php }
} else {
$px_totali_pg=$record['esperienza'];
//carico le sole abilità del pg
$result=gdrcd_query("SELECT id_abilita, grado FROM clgpersonaggioabilita WHERE nome='".gdrcd_filter('in',$_REQUEST['pg'])."'", 'result');
$px_spesi=0;
while ($row=gdrcd_query($result, 'fetch')){
/*Costo in px della singola abilità*/
$px_abi=$PARAMETERS['settings']['px_x_rank']*(($row['grado']*($row['grado']+1))/2);
/*Costo totale*/
$px_spesi+=$px_abi;
$ranks[$row['id_abilita']]=$row['grado'];
}
gdrcd_query($result, 'free');
/*Incremento skill*/
if((gdrcd_filter('get',$_REQUEST['op'])=='addskill') && (($_SESSION['login']==gdrcd_filter('out',$_REQUEST['pg']))||($_SESSION['permessi']>=MODERATOR))){
$px_necessari=$PARAMETERS['settings']['px_x_rank']*($ranks[$_REQUEST['what']]+1);
if(($px_totali_pg-$px_spesi)>=$px_necessari){
$px_spesi+=$px_necessari;
if ($px_necessari==$PARAMETERS['settings']['px_x_rank']){
$query="INSERT INTO clgpersonaggioabilita (id_abilita, nome, grado) VALUES (".gdrcd_filter('num',$_REQUEST['what']).", '".gdrcd_filter('in',$_REQUEST['pg'])."', 1)";
$ranks[$_REQUEST['what']]=1;
#echo $query;
} else {
$ranks[$_REQUEST['what']]++;
$query="UPDATE clgpersonaggioabilita SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_abilita = ".gdrcd_filter('num',$_REQUEST['what'])." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
}//else
gdrcd_query($query);
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}//if
}//if
/*Decremento skill*/
if((gdrcd_filter('get',$_REQUEST['op'])=='subskill') && ($_SESSION['permessi']>=MODERATOR)){
if ($ranks[$_REQUEST['what']]==1){
$query="DELETE FROM clgpersonaggioabilita WHERE id_abilita = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."' LIMIT 1";
$ranks[$_REQUEST['what']]=0;
} else {
$ranks[$_REQUEST['what']]--;
$query="UPDATE clgpersonaggioabilita SET grado = ".$ranks[$_REQUEST['what']]." WHERE id_abilita = ".$_REQUEST['what']." AND nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
}//else
gdrcd_query($query);
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}//if
if (isset($_REQUEST['op'])===FALSE){
?>
Ho provato sia ad aggiungere un divisore per riconvertire l'operazione di costo a 10 punti exp sempre, sia a sostituire proprio le variabili con il numero fisso 10 dove andava teoricamente inserito. Il risultato è che scala anche i punti, e li scala sempre di 10 ma una volta arrivati al grado 1 non sale più oltre, quindi scala exp senza andare oltre 1. Qualcuno ha idea di come si debba intervenire al riguardo? Grazie :)
Pagine → 1
30/12/2013 20:11:50
Se non ho capito male te vuoi fare in modo che, indipendentemente dal grado dell'abilità, si possa salire a quello successivo con soli 10px. Se così fosse ti basta modificare questo pezzo di codice:
$px_abi=$PARAMETERS['settings']['px_x_rank']*(($row['grado']*($row['grado']+1))/2);
con
$px_abi=$PARAMETERS['settings']['px_x_rank']
dove $PARAMETERS['settings']['px_x_rank'] corrisponde a 10px (puoi modificarlo nel file config.inc.php). Inoltre devi modificare questo pezzo:
$px_necessari=$PARAMETERS['settings']['px_x_rank']*($ranks[$_REQUEST['what']]+1)
in questa maniera:
$px_necessari=$PARAMETERS['settings']['px_x_rank']
L'ho provato e a me funziona.
30/12/2013 21:09:15
Quando ho eseguito io questo cambiamento, il gdr come ho scritto mi permetteva di scalare exp e quando devi passare da grado 0 a grado 1 ti fa scalare, ma quando devi andare oltre 1 grado ti scala solo i punti exp ma non escono i gradi aggiuntivi oltre l'1 :(
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Fallen Gods ↗
Exclusive Villa GdR ↗
War Thunder ↗