Assegnazione di un valore oggetto
Assegnazione di un valore oggetto postato il 16/04/2019 22:56:42 nel forum programmazione, open source e hosting
Buona sera, sto modificando il sistema di creazione e assegnazione degli oggetti nel mercato di GDRCD.
Avrei bisogno di riuscire in fase di assegnazione al mercato o al pg a far assegnare alcuni valori in maniera casuale tra 2 o più valori.
Cerco di spiegarmi meglio:
quando creo l'oggetto inserisco le varie opzioni.
Quando poi andrò ad assegnare tale oggetto al mercato oppure al pg questo oggetto tramite un lancio dadi assegna un determinato valore rispetto all'altro.
So già che il file da lavorare è gestione_mercato.inc.php
la fase di inserimento è questa:
/*Se e' stato richiesto di inserire un oggetto*/
if (gdrcd_filter('get',$_POST['op'])=='insert'){
if (gdrcd_filter('get',$_POST['img_oggetto'])=='') {$immagine_oggetto='standard_oggetto.png';}
else {$immagine_oggetto=gdrcd_filter('get',$_POST['img_oggetto']);}
gdrcd_query("INSERT INTO oggetto (tipo, nome, urlimg, descrizione, costo, ubicabile, attacco, difesa, cariche, bonus_car0, bonus_car1, bonus_car2, bonus_car3, bonus_car4, bonus_car5, creatore, data_inserimento) VALUES (".gdrcd_filter('in',$_POST['tipo_oggetto']).", '".gdrcd_filter('in',$_POST['nome_oggetto'])."', '".gdrcd_filter('in',$immagine_oggetto)."', '".gdrcd_filter('in',$_POST['descrizione_oggetto'])."', ".gdrcd_filter('num',$_POST['costo_oggetto']).", ".gdrcd_filter('num',$_POST['fit_in']).", ".gdrcd_filter('num',$_POST['attacco_oggetto']).", ".gdrcd_filter('num',$_POST['difesa_oggetto']).", ".gdrcd_filter('num',$_POST['cariche_oggetto']).", ".gdrcd_filter('num',$_POST['car0_oggetto']).", ".gdrcd_filter('num',$_POST['car1_oggetto']).", ".gdrcd_filter('num',$_POST['car2_oggetto']).", ".gdrcd_filter('num',$_POST['car3_oggetto']).", ".gdrcd_filter('num',$_POST['car4_oggetto']).", ".gdrcd_filter('num',$_POST['car5_oggetto']).", '".$_SESSION['login']."', NOW())");
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['inserted']).'</div>';
}
/*Se e' stato richiesto di assegnare un oggetto al mercato o ad un PG*/
if ((gdrcd_filter('get',$_POST['op'])=='assign') && (gdrcd_filter('num',$_POST['num_oggetti'])>0)){
if ($_POST['give_item']=='mercato')
{
$result = gdrcd_query("SELECT id_oggetto FROM mercato WHERE id_oggetto = ".$_POST['id_oggetto']."", 'result');
if (gdrcd_query($result, 'num_rows')>0)
{
gdrcd_query($result, 'free');
$query="UPDATE mercato SET numero = ".gdrcd_filter('num',$_POST['num_oggetti'])." WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])."";
} else
{
$query="INSERT INTO mercato (id_oggetto, numero) VALUES (".gdrcd_filter('num',$_POST['id_oggetto']).", ".gdrcd_filter('num',$_POST['num_oggetti']).")";
}
gdrcd_query($query);
} else {
$result=gdrcd_query("SELECT id_oggetto FROM clgpersonaggiooggetto WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])." AND nome = '".gdrcd_filter('in',$_POST['give_item'])."'", 'result');
if (gdrcd_query($result, 'num_rows')>0)
{
gdrcd_query($result, 'free');
$query="UPDATE clgpersonaggiooggetto SET numero = numero + ".gdrcd_filter('num',$_POST['num_oggetti'])." WHERE id_oggetto = ".gdrcd_filter('num',$_POST['id_oggetto'])." AND nome = '".gdrcd_filter('in',$_POST['give_item'])."'";
} else {
$query="INSERT INTO clgpersonaggiooggetto (nome, id_oggetto, cariche, numero) VALUES ('".gdrcd_filter('in',$_POST['give_item'])."', ".gdrcd_filter('num',$_POST['id_oggetto']).", ".gdrcd_filter('num',$_POST['cariche_oggetto']).", ".gdrcd_filter('num',$_POST['num_oggetti']).")";
}
gdrcd_query($query);
}
echo '<div class="warning">'.gdrcd_filter('out',$MESSAGE['warning']['modified']).'</div>';
}
}
$elenco_oggetti=gdrcd_query("SELECT id_oggetto, nome FROM oggetto ORDER BY nome", 'result');
$tipi_oggetto=gdrcd_query("SELECT * FROM codtipooggetto ORDER BY descrizione", 'result');
?>
come potrei modificare?^^
qualcuno saprebbe aiutarmi?
Pagine → 1
17/04/2019 09:29:48
Spiego una mia idea, sempre che abbia capito cosa vuoi fare.
Se è un valore che devi assegnare all'oggetto inteso come classe di oggetti, aggiungi una colonna che contiene questo valore aggiuntivo alla tabella oggetto. Se è un valore che devi assegnare ad una particolare copia dell'oggetto, devi aggiungere la colonna nelle tabelle mercato e clgpersonaggiooggetto.
Per scegliere il valore a caso usi rand() per scegliere un numero a caso, oppure array_rand($array) per scegliere un valore a caso tra quelli presenti nell'array.
Poi modifichi la query di inserimento in mercato e in clgpersonaggiooggetto per impostare quel valore.
17/04/2019 16:02:18
lkmnoppo ha scritto: Spiego una mia idea, sempre che abbia capito cosa vuoi fare.
Se è un valore che devi assegnare all'oggetto inteso come classe di oggetti, aggiungi una colonna che contiene questo valore aggiuntivo alla tabella oggetto. Se è un valore che devi assegnare ad una particolare copia dell'oggetto, devi aggiungere la colonna nelle tabelle mercato e clgpersonaggiooggetto.
Per scegliere il valore a caso usi rand() per scegliere un numero a caso, oppure array_rand($array) per scegliere un valore a caso tra quelli presenti nell'array.
Poi modifichi la query di inserimento in mercato e in clgpersonaggiooggetto per impostare quel valore.
Come prima cosa ti ringraio per la risposta.
Si hai afferrato quello che mi servirebbe.
A me servirebbe creare una lista di oggetti "base" che in alcune caratteristiche possono avere un valore x o un valore y.
Solo in fase di eventuale assegnazione al pg il sistema dovrebbe tramite il rand() assegnare l'uno invece che l'altro valore.
Però nella teoria ci sono ma non saprei come andare a realizzare questo nell'insert. ecco;(
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!
State of Survival ↗
World of Tanks ↗