Jump to content
Rpg²S Forum
  • 0

Non riesco a creare uno script


ornaldo
 Share

Question

pultroppo non so dove dovevo postare questo post quindi ho pensato che qui andava bene (anche se ho eri dubbi)

io uso Game Maker e sto cercando di fare un gioco tipo Yu-Gi-Oh! (cambiando le immagini,solo mostri di tipo normale senza effetto e solo con ATK e DEF) e da 2 giorni che sto provando a fare uno script in maniera tale da dare all'objept due valori (ATK e DEF) ma non riesco proprio averi voluto contattare qualche programatore sui negozi ma non avendo REN...(certo potrei mettermi a fare dei sprites creati completamente da me ma non credo che siano adatti a RPG Maker dato che non ho ancora capito se c'entra il fatto dei colori o la grandezza dei Sprites) cmq spero che qualcuno di voi mi possa dare una mano a fare in modo che l'ogetto (faccio un eempio : Mago Nero) abbia 2500 ATK e 2000 DEF e che selezionando il tasto ATK o DEF (perche il gioco si basa solo su ATK e DEF infetti ho gia creato i pulsanti) metta a combattere le 2 carte (perche il gioco si svolge cosi: una carta contro l'altra i valori della carta nemica sono censurati e quindi ho sai i suoi valori o provi a caso e nel caso tu vinca si aggiunge quella carta nemica nella tua colezione)

spero di essermi spiegato quale sia il mio problema se volete maggiori spiegazioni contattami tranquillamente ^^

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Object carta:create=set variable "nomeacaso" to 2500

Oggetto pulsante attacco:if variabledifesanemica is superior 2500 nonfainulla,else set variable vitaavversaria relative-variabiledifesa nemica.

Se mi passi la grafica ti faccio il GMK di esempio.

As I peeked through the window to observe the wretched things lurking in the shadows beyond, I could only think of one thing, "Truly, these are Days of Despair".

 

Messaggio gentilmente concesso da Annoyed Grunt. Che la forza sia con voi e state attenti agli accenti circonflessi. Ed agli OT ^ ^ ^ ^


http://i.imgur.com/ZKYj69N.png

Link to comment
Share on other sites

  • 0

Premetto che sono molto arruginito :)

Il metodo che presento non è efficiente perché ad ogni carta associo un oggetto mentre se ne potrebbe fare a meno creando un database per gestire le carte ma si complica il codice, non ho gamemaker installato ed è una rottura di scatole gestire un database.

Però se non hai la minima idea di come organizzare tutto è comunque fattibile a patto di non creare 3000 carte contemporaneamente.

------------

Name: obj_carta

Sprite: Undefined (nessuno sprite)

Event Create

attacco = 0;

difesa = 0;

immagine = 0;

disegna = false;

posizione = 0; //0 se in posizione di difesa, 1 se in posizione di attacco

Event Draw

if (disegna)

draw_sprite(immagine,-1,x,y);

--------------

Nome Script: crea_carta

//sintassi: crea_carta(sprite,attacco, difesa);

var p = instance_create(obj_carta,0,0);

p.immagine = argument0;

p.attacco = argument1;

p.difesa = argument2;

return p;

 

Nome Script: carta_in_difesa

//sintassi: carta_in_difesa(carta)

with (argument0) posizione = 0;

 

Nome Script: carta_in_attacco

//sintassi: carta_in_attacco(carta)

with (argument0) posizione =1;

 

Nome Script: disegna_carta

//sintassi: disegna_carta(carta,x,y)

var carta = argument0;

carta.x = argument1;

carta.y = argument2;

carta.disegna = true;

 

Nome Script: nascondi_carta

//sintassi: nascondi_carta(carta);

with (argument0) disegna = false;

 

NomeScript: distruggi_carta

//sintassi: distruggi_carta(carta);

with (argument0) instance_destroy();

 

Nome Script: combattimento

//sintassi: combattimento(carta_atk,carta_def);

//carta_atk è la carta da cui parte l'attacco, non è strettamente collegato con l'essere in posizione di attacco o di difesa, anche se suppongo che una carta in difesa non possa attaccarne un'altra

//restituisce un numero intero, se minore di 0 l'attaccante perde

var carta_atk = argument0;

var carta_def = argument1;

if (!carta_atk.posizione) return -1;

if (carta_def.posizione){

if (carta_atk.attacco > carta_def.attacco) return 1;

else return -1;

} else {

if (carta_atk.attacco > carta_def.difesa) return 1;

else return -1;

}

--------------------

 

L'unico problema sta nel gestire le variabili che contengono le carte, per semplicità puoi usare le variabili globali (o array ma la faccenda si complica), ti faccio un esempio di uso poi lo aggiusti tuì

 

mago_nero = crea_carta(img_mago_nero,2500,2000);

drago_rosso = crea_carta(img_drago_rosso,2000,4000);

...

disegna_carta(mago_nero,240,100);

disegna_carta(drago_rosso,240,400);

carta_in_attacco(mago_nero);

carta_in_difesa(drago_rosso);

....

risultato = combattimento(mago_nero,drago_rosso);

if (risultato > 0)

distruggi_carta(drago_rosso);

else

distruggi_carta(mago_nero);

I Miei Script:
Salva Schermata (3 Aprile 2012)
Attacco Personalizzabile (2 Aprile 2012)
Keyboard Input (Porting) (17 Marzo 2012)
Continua...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...