Avatar
heavyblack1
Člen
Avatar
heavyblack1:

nevite náhodou někdo jak nehradit execute_string
dělam totiž chetovaci system něco na způsob doomu a get_string mi připada idiotský

///create event
cheatn=3; //pocet cheatu
cheat[0]="gethp";
cheat[1]="ammo";
cheat[2]="JAJSEMCHEAT";
cheatf[0]="health+=100;"; //funkce cheatu 0
cheatf[1]="obj_hrac.naboje+=10000;"; //funkce cheatu 1 (vsechny funkce musi bejt v uvozovkach)
cheatf[2]="score*=5;";
//step event
if keyboard_string!=""{
for(a=0; a<cheatn; a+=1){
if string_count(cheat[a],string_upper(string(keyboard_string))){
keyboard_string="";
execute_string(cheatf[a]);
}
}
}
//draw event
draw_text(x,y+50,"text:"+string(keyboard_string))
 
Odpovědět 20.2.2015 19:54
Avatar
Neaktivní uživatel:

Ahoj,

řešení:

musíš si místo dosazení do hodnoty cheatf[n] vytvořit skripty, pokud pracuješ v GMS dají se rozdělit na fragmenty, aby nezabrali místo v resource tree a následně daný skript volat.

Hodně zdaru :)

Nahoru Odpovědět  +1 20.2.2015 20:15
Neaktivní uživatelský účet
Avatar
heavyblack1
Člen
Avatar
Odpovídá na Neaktivní uživatel
heavyblack1:

můžeš mýt konkretnější nejsem machr na GMS

 
Nahoru Odpovědět 20.2.2015 21:52
Avatar
Odpovídá na heavyblack1
Neaktivní uživatel:

S radostí:

svůj for cykl nahraď např. tímhle:

switch(keyboard_string)
{
case cheat[0]:
  {
  health += 100;
  keyboard_string = "";
  break;
  }
}

Ten for cykl byl sice pěkný, ale beze smyslu, switch tomu sluší víc:)

K funkci execute_strin­g()....

víš ta funkce je obsoletní a to z jednoho důvodu HW náročnost. Neumíš si představit kolik RAMky potřebuje ona vlastně funguje tak, že checkuje celou!! syntax gml, jestli jsi náhodou něco v tom stringu nenapsal.

Ještě rada: nepoužívej proměnné health,score. Jsou to globální proměnné.

Měj se :)

Editováno 20.2.2015 22:07
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 20.2.2015 22:03
Neaktivní uživatelský účet
Avatar
heavyblack1
Člen
Avatar
Odpovídá na Neaktivní uživatel
heavyblack1:

Takže do stepu jsem to dal

if keyboard_string!=""{
switch(keyboard_string)
{
case cheat[0]:
  {
  health += 100;
  keyboard_string = "";
  break;
  }
}
}

ale kompilator řiká na 4 řádku Case argument Should be a constant

 
Nahoru Odpovědět 20.2.2015 22:49
Avatar
Odpovídá na heavyblack1
Neaktivní uživatel:

musíš tam napsat hodnotu té proměnné...
mě se to nechtělo vypisovat celé.

Místo cheat[0] napiš "gethp" ... asi to nebylo napsané jasně.

Nahoru Odpovědět 20.2.2015 23:03
Neaktivní uživatelský účet
Avatar
heavyblack1
Člen
Avatar
Odpovídá na Neaktivní uživatel
heavyblack1:

Díky moc za pomoc
i za to health neuvědomil jsem si že když udělám životy pomocí těch ikonek tak to jsou globalní proměné.

 
Nahoru Odpovědět 21.2.2015 9:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.