Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akci až 30 % zdarma při nákupu e-learningu - 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í.
C# week + discount 30

Game Maker - cheatovania v hre (ako na to)

V tomto návode sa dozviete, ako na cheaty v hrách. Pôjde o cheaty v štýle San Andreas, takže priame písanie bez potreby aktivovať nejakej okno na zadanie.

Vytvoríme objekt, ktorý bude cheaty kontrolovať, treba cheats_controller. V eventu Create vytvoríme premenné, ktoré budú kontrolovať jednotlivé cheaty, takže to môže vyzerať takto:

cheat=0
cheat2=0
cheat3=0

0 bude znanemat neaktívne, 1 aktívny. Na začiatku sú všetky neaktívne.

Ďalej vytvorí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
}

podmienka kontroluje, či hráč nenapísal text k vyvolaniu cheate 1. Ak áno, zmení premennú cheat1 na 1 a tým aktivuje cheat. Ak už je cheat aktívny, zruší ho vrátením späť na 0.

Ak chcete aby sa po použití cheate niečo stalo len raz, stačí pridať nad "}" podmienku a kod k vyvolaniu, takže to bude vyzerať 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"
}

ďalšie cheaty budú podobné, len zameníme názov promněnné cheat na cheat2, cheat3 ... A samozrejme text k vyvolaniu :) Ďalej už stačí jednoducho používať podmienky ...

Malé vylepšenia 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šetko, dúfam že návod nie je moc neprehľadný a niečo ste pochopili. Prikladám aj návod v GMK


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 721x (20.1 kB)

 

Všetky články v sekcii
Game maker - Ostatné
Článok pre vás napísal Satik64
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
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.
Aktivity

 

 

Komentáre

Avatar
Neaktivní uživatel:17.12.2012 20:05

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")}

Editované 17.12.2012 20:05
Odpovedať
17.12.2012 20:05
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:17.12.2012 20:10

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

Odpovedať
17.12.2012 20:10
Neaktivní uživatelský účet
Avatar

Nevyplnené
Avatar
:18.2.2014 21:04

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.

 
Odpovedať
18.2.2014 21:04
Avatar
TomBen
Tvůrce
Avatar
TomBen:18.2.2014 23:06

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.

Odpovedať
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
Odpovedá na TomBen
vis12345:15.9.2015 18:57

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

Editované 15.9.2015 18:58
 
Odpovedať
15.9.2015 18:57
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 5 správy z 5.