Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
heavyblack1
Člen
Avatar
heavyblack1:20.2.2015 19:54

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:20.2.2015 20:15

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
20.2.2015 20:15
Neaktivní uživatelský účet
Avatar
heavyblack1
Člen
Avatar
Odpovídá na Neaktivní uživatel
heavyblack1:20.2.2015 21:52

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:20.2.2015 22:03

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í
+2,50 Kč
Ř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:20.2.2015 22:49

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:20.2.2015 23:03

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:21.2.2015 9:15

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.