Page 17 of 27
Re: Editor map do HoMaM ToE
Posted: Sat Sep 03, 2011 8:50 am
by Alarik
Pokud máš před tímto skriptem napsané v editoru i další skripty, může být chyba v tom. Jediná chyba v jakémkoli předešlém skriptu totiž zamezí funkčnosti všech následujících skriptů (např. chyba ve skriptu na 3. řádku vyřadí všechny skripty od 3. řádku až do konce, fungovat budou jen první dva). Důležité je taky zkontrolovat si překlepy - občas se stane, že někde prostě vypadne nějaké to písmenko nebo se zamění s jiným a skript tudíž nemůže fungovat správně.
Re: Editor map do HoMaM ToE
Posted: Sat Sep 03, 2011 9:11 am
by Kha-Beleth
Alarik wrote:Pokud máš před tímto skriptem napsané v editoru i další skripty, může být chyba v tom. Jediná chyba v jakémkoli předešlém skriptu totiž zamezí funkčnosti všech následujících skriptů (např. chyba ve skriptu na 3. řádku vyřadí všechny skripty od 3. řádku až do konce, fungovat budou jen první dva). Důležité je taky zkontrolovat si překlepy - obšas se stane, že někde prostě vypadne nějaké to písmenko nebo se zamění s jiným a skript tudíž nemůže fungovat správně.
Script tam mam jen jeden, teprv se je snažim používat

Re: Editor map do HoMaM ToE
Posted: Sun Sep 04, 2011 9:05 am
by Lopicia
Už delší dobu dělám na jedné mapě+ a ráda bych věděla, jak udělat tohle:
Po dobytí města zobrazit zprávu a zadat nový úkol
Po dobytí dvou měst označit úkol za splněný
Re: Editor map do HoMaM ToE
Posted: Sun Sep 04, 2011 10:02 am
by Vynny
Kha-Beleth wrote:Script tam mam jen jeden, teprv se je snažim používat
Zkus se podívat na můj návod, ve kterém jsem práci se skripty podrobně popisoval. Najdeš ho zde na mé stránce:
http://x-mapy.webnode.cz/soubory-do-pc- ... d-magic-5/Lopicia wrote:Už delší dobu dělám na jedné mapě+ a ráda bych věděla, jak udělat tohle:
Po dobytí města zobrazit zprávu a zadat nový úkol
Po dobytí dvou měst označit úkol za splněný
Já to řešil tak, že jsem dal za úkol dobýt to určité město a jakmile byl úkol splněn, aktivoval se mi skript, ve kterém se mi zobrazila zpráva a vznikl nový úkol. Do úkolu lze samozřejmě napsat klikdně 5 měst, které musí hráč dobýt, aby se úkol splnil.
S tím skriptem bych to udělal asi takto:Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"ukol3","ukol3");
function ukol3 ()
if GetObjectiveState ("ukol3") == OBJECTIVE_COMPLETED then
sleep(5);
MessageBox("Maps/SingleMissions/Mapa1/zprava.txt");
SetObjectiveState("ukol4",OBJECTIVE_ACTIVE);
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"ukol3",nil);
end;
Re: Editor map do HoMaM ToE
Posted: Sun Sep 04, 2011 10:15 am
by Kha-Beleth
Ten už mam. Díky němu jsem se začal snažit

Re: Editor map do HoMaM ToE
Posted: Sun Sep 04, 2011 2:06 pm
by Lopicia
Vynny wrote:Lopicia wrote:Už delší dobu dělám na jedné mapě+ a ráda bych věděla, jak udělat tohle:
Po dobytí města zobrazit zprávu a zadat nový úkol
Po dobytí dvou měst označit úkol za splněný
Já to řešil tak, že jsem dal za úkol dobýt to určité město a jakmile byl úkol splněn, aktivoval se mi skript, ve kterém se mi zobrazila zpráva a vznikl nový úkol. Do úkolu lze samozřejmě napsat klikdně 5 měst, které musí hráč dobýt, aby se úkol splnil.
S tím skriptem bych to udělal asi takto:Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"ukol3","ukol3");
function ukol3 ()
if GetObjectiveState ("ukol3") == OBJECTIVE_COMPLETED then
sleep(5);
MessageBox("Maps/SingleMissions/Mapa1/zprava.txt");
SetObjectiveState("ukol4",OBJECTIVE_ACTIVE);
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER,"ukol3",nil);
end;
Děkuju za radu.

Já jsem pořád taková trouba přes skripty...

Takže ode mě čekej ještě další otázky ohledně skriptování...

Ještě teda otázka pro debily, jak se nastavuje úkol dobýt určité město? Protože těch úkolů "Capture city" je poněkud více než jeden...

Re: Editor map do HoMaM ToE
Posted: Sun Sep 04, 2011 6:00 pm
by Alarik
Lopicia wrote:Děkuju za radu.

Já jsem pořád taková trouba přes skripty...

Takže ode mě čekej ještě další otázky ohledně skriptování...

Ještě teda otázka pro debily, jak se nastavuje úkol dobýt určité město? Protože těch úkolů "Capture city" je poněkud více než jeden...

V nastavení úkolů vyber možnost "OBJECTIVE_KIND_CAPTURE_OBJECT" a do parametrů pak zadej skriptové jméno daného města.
Re: Editor map do HoMaM ToE
Posted: Sun Sep 04, 2011 7:22 pm
by Lopicia
Alarik wrote:V nastavení úkolů vyber možnost "OBJECTIVE_KIND_CAPTURE_OBJECT" a do parametrů pak zadej skriptové jméno daného města.
Dík

Asi jsem vážně idiot...

Re: Editor map do HoMaM ToE
Posted: Mon Sep 05, 2011 7:23 am
by Sabatu
Lopicia wrote:Alarik wrote:V nastavení úkolů vyber možnost "OBJECTIVE_KIND_CAPTURE_OBJECT" a do parametrů pak zadej skriptové jméno daného města.
Dík

Asi jsem vážně idiot...

Takže při tomto ukolu zadam do parametru třeba obj1 muže to byt třeba i hmmmm líhně na jednotky nebo tvrz.pak zadaš do parametru ukolu a vše ok???
Re: Editor map do HoMaM ToE
Posted: Mon Sep 05, 2011 4:32 pm
by Alarik
Přesně tak, tato podmínka by měla fungovat pro všechny obsaditelné objekty.
Re: Editor map do HoMaM ToE
Posted: Tue Sep 06, 2011 6:25 pm
by Kha-Beleth
Další dotaz. Jak mam vytvořit dekorační objekty mrtvoly vojáků? Jako v TotE 2 mise za skřety za Kudžin u toho Kyklopa? A děkuji za odpověď a trpělivost se mnou

Re: Editor map do HoMaM ToE
Posted: Wed Sep 07, 2011 1:44 pm
by Alarik
V ToE to nebylo dělané jako čistě dekorační objekt (jaké jsou např. ve Vynnyho kampani), nýbrž jako klasická jednotka, která byla pouze zablokovaná a které také skriptem vypnuli to barevné "kolečko".
Osobně bych to udělal tak, že bych skriptem SetMonsterSelectionType( monsterName, 0 ) deaktivoval toto "kolečko" a pomocí skriptu SetObjectAnimation(monsterName, "death", ONESHOT_STILL) bych nastavil, aby daná jednotka při spuštění mapy přehrála animaci smrti a zůstala v ní. Možná by to šlo udělat i jinak, ale tohle je dle mého ten nejjednodušší způsob. Podle skriptového manuálu ale musí být daná jednotka deaktivována pomocí skriptu SetObjectEnabled(objectName, false), jinak by skript SetMonsterSelectionType nefungoval.
Re: Editor map do HoMaM ToE
Posted: Wed Sep 07, 2011 6:33 pm
by Kha-Beleth
Alarik wrote:V ToE to nebylo dělané jako čistě dekorační objekt (jaké jsou např. ve Vynnyho kampani), nýbrž jako klasická jednotka, která byla pouze zablokovaná a které také skriptem vypnuli to barevné "kolečko".
Osobně bych to udělal tak, že bych skriptem SetMonsterSelectionType( monsterName, 0 ) deaktivoval toto "kolečko" a pomocí skriptu SetObjectAnimation(monsterName, "death", ONESHOT_STILL) bych nastavil, aby daná jednotka při spuštění mapy přehrála animaci smrti a zůstala v ní. Možná by to šlo udělat i jinak, ale tohle je dle mého ten nejjednodušší způsob. Podle skriptového manuálu ale musí být daná jednotka deaktivována pomocí skriptu SetObjectEnabled(objectName, false), jinak by skript SetMonsterSelectionType nefungoval.
Tak teď ještě jednou a pro blbce prosím

Re: Editor map do HoMaM ToE
Posted: Thu Sep 08, 2011 2:23 pm
by Alarik
Napíšu tedy postup:
1. Umístíš do mapy ty jednotky, které mají tu animaci smrti provést.
2. Přidělíš těmto jednotkám nějaké skriptové jméno.
3. Pro každou z těchto jednotek pak napíšeš skript v tomto znění
SetObjectEnabled("skriptové_jméno_jednotky", false).
4. Poté napíšeš opět pro každou jednotku skript
SetMonsterSelectionType( "skriptové_jméno_jednotky", 0 ).
5. Nakonec napíšeš rovněž pro každou z těch jednotek skript
SetObjectAnimation("skriptové_jméno_jednotky", "death", ONESHOT_STILL).
6. Mezi skripty z bodů 3 a 4 a bodů 4 a 5 by možná bylo dobré napsat skript sleep(2), aby hra nejprve splnila příkaz ze 3. bodu, potom ze 4. a nakonec z 5. (ta dvojka v té závorce není závazná, ale vyšší číslo více pozdrží hru).
Nakonec ještě malý příklad:
Mám dvě jednotky, jednu pojmenuji "Dead_1", druhou "Dead_2". Poté začnu psát ty skripty:
SetObjectEnabled("Dead_1", false);
SetObjectEnabled("Dead_2", false);
sleep(2);
SetMonsterSelectionType( "Dead_1", 0 );
SetMonsterSelectionType( "Dead_2", 0 );
sleep(2);
SetObjectAnimation("Dead_1", "death", ONESHOT_STILL);
SetObjectAnimation("Dead_2", "death", ONESHOT_STILL);
Takto by to mělo být celé.
Re: Editor map do HoMaM ToE
Posted: Thu Sep 08, 2011 2:57 pm
by Kha-Beleth
Alarik wrote:Napíšu tedy postup:
1. Umístíš do mapy ty jednotky, které mají tu animaci smrti provést.
2. Přidělíš těmto jednotkám nějaké skriptové jméno.
3. Pro každou z těchto jednotek pak napíšeš skript v tomto znění
SetObjectEnabled("skriptové_jméno_jednotky", false).
4. Poté napíšeš opět pro každou jednotku skript
SetMonsterSelectionType( "skriptové_jméno_jednotky", 0 ).
5. Nakonec napíšeš rovněž pro každou z těch jednotek skript
SetObjectAnimation("skriptové_jméno_jednotky", "death", ONESHOT_STILL).
6. Mezi skripty z bodů 3 a 4 a bodů 4 a 5 by možná bylo dobré napsat skript sleep(2), aby hra nejprve splnila příkaz ze 3. bodu, potom ze 4. a nakonec z 5. (ta dvojka v té závorce není závazná, ale vyšší číslo více pozdrží hru).
Nakonec ještě malý příklad:
Mám dvě jednotky, jednu pojmenuji "Dead_1", druhou "Dead_2". Poté začnu psát ty skripty:
SetObjectEnabled("Dead_1", false);
SetObjectEnabled("Dead_2", false);
sleep(2);
SetMonsterSelectionType( "Dead_1", 0 );
SetMonsterSelectionType( "Dead_2", 0 );
sleep(2);
SetObjectAnimation("Dead_1", "death", ONESHOT_STILL);
SetObjectAnimation("Dead_2", "death", ONESHOT_STILL);
Takto by to mělo být celé.
Strašně moc děkuju za trpělivost a ochotu.