Game Maker - Cheatování ve hře (jak na to)

Ostatní jazyky GameMaker Ostatní Game Maker - Cheatování ve hře (jak na to)

V tomto návodě se dozvíte, jak na cheaty ve hrách. Půjde o cheaty ve stylu San Andreas, takže přímé psaní bez potřeby aktivovat nějaké okno k zadání.

Vytvoříme objekt, který bude cheaty kontrolovat, třeba cheats_controller. V eventu Create vytvoříme proměnné, které budou kontrolovat jednotlivé cheaty, takže to může vypadat takto:

cheat=0
cheat2=0
cheat3=0

0 bude znanemat neaktivní, 1 aktivní. Na začátku jsou všechny neaktivní.

Dál vytvoříme event Step a dáme tento kod

if string_count("textkvyvolanicheatu",keyboard_string)!=0
{
keyboard_string=0
if cheat=0
cheat=1
else cheat=0
}

podmínka kontroluje, jestli hráč nenapsal text k vyvolání cheatu 1. Pokud ano, změní proměnnou cheat1 na 1 a tím aktivuje cheat. Pokud už je cheat aktivní, zruší ho vrácením zpět na 0.

Pokud chcete aby se po použití cheatu něco stalo jenom jednou, stačí přidat nad "}" podmínku a kod k vyvolání, takže to bude vypadat takto:

if string_count("textkvyvolanicheatu",keyboard_string)!=0
{
keyboard_string=0
if cheat=0
cheat=1
else cheat=0
if cheat=1
"prikaz ktery se ma stat pri aktivaci cheatu"
}

další cheaty budou podobné, jenom zaměníme název promněnné cheat na cheat2, cheat3... A samozřejmě text k vyvolání :) Dál už stačí jednoduše používat podmínky...

Malé vylepšení od chylexe, engine :)

CREATE:

cheatn=3; //pocet cheatu
cheat[0]="BFLMPSVZ";
cheat[1]="AUTO";
cheat[2]="JAJSEMCHEAT";
cheatf[0]="health+=100;"; //funkce cheatu 0
cheatf[1]="game_end();"; //funkce cheatu 1 (vsechny funkce musi bejt v uvozovkach)
cheatf[2]="score*=5;";

STEP:

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]);
}
}
}

To je všechno, doufám že návod není moc nepřehledný a něco jste pochopili. Přikládám i návod v GMK


 

Stáhnout

Staženo 415x (20.1 kB)

 

  Aktivity (1)

Článek pro vás napsal Satik64
Avatar
Autor se věnuje základům game designu, programování her v Game Makeru a Unity a práci v grafických nástrojích. Občas tvoří módy do jiných her.

Jak se ti líbí článek?
Celkem (5 hlasů) :
3.43.43.4 3.43.4


 


Miniatura
Předchozí článek
Collision triangle - GameMaker
Miniatura
Všechny články v sekci
GameMaker - Ostatní
Miniatura
Následující článek
Game Maker - Health Bar

 

 

Komentáře

Avatar
Vašek
Člen
Avatar
Vašek:

Znám další způsob jak dělat cheaty ovšem ne ve stylu san andreas.
V objectu hráč v události press enter nebo prees space vložím následující kód:

cheat = get_string("enter a cheat here","cheat")
if cheat = "//CHEAT"
{
set score = 10000 //zde zadejte co se stane
}
else if cheat= "hgjdjvbdk"
{
set lives = 25
}
else {show_message ("this is not cheat")}

Editováno 17.12.2012 20:05
 
Odpovědět  +1 17.12.2012 20:05
Avatar
Vašek
Člen
Avatar
Vašek:

Tento způsob je výborný.
Bez spuštění těch různých oken:D

 
Odpovědět 17.12.2012 20:10
Avatar

Neregistrovaný
Avatar
:

cheat = get_string("Zadej sem Cheat","cheat")

if cheat = "score"
{
score += 1000
}
else {show_message("Toto není platný Cheat")}

Takle to jde taky ;) akorát že mi nejdou cheaty na přemístění do jiných
místností. Kdyby někdo věděl tak ať napíše.

 
Odpovědět 18.2.2014 21:04
Avatar
TomBen
Redaktor
Avatar
TomBen:

Neregistrovaný: Není sebemenší důvod, proč by přemístění do jiné místnosti nemělo fungovat. Je úplně jedno, jaká funkce je zadaná po splnění podmínky. Trochu se snaž a zvládneš to.

BTW: Článek popisuje cheatovací systém na mnohem vyšší úrovni než je trapný get_string.

Odpovědět 18.2.2014 23:06
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
vis12345
Člen
Avatar
Odpovídá na TomBen
vis12345:

Mě get_strin g hlsí chybu... :(

cheat = get_string("Kolik czk chces??","hodne neni platna odpoved")
if cheat > "0"
{
global.czk = cheat
}

a mám

if global.czk < 4
{...

a pak mi to nejde
:( poraďte prosím

Editováno 15.9.2015 18:58
 
Odpovědět  -1 15.9.2015 18:57
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 5 zpráv z 5.