Tutorial napisany specjalnie dla mnie (a przy okazji i dla innych) przez ReMiK'a.
Witam przygotowałem tutaj parę skryptów które mogą się przydać. Opowiem także jak i gdzie je wstawić.
1 Po pierwsze żeby skrypt działał musi być włączona opcja " auto start dozwolony" w okienko pod ta opcja nic nie trzeba wpisywać, chyba ze się chce aby dana sekwencja występowała po innej to wpisujemy tam nazwę tej sekwencji po której ma występować.
2 Po drugie nazwy jednostek wykorzystane w skryptach musza byc tak same jak nazwa skryptu jednostki.
3 Po trzecie występują tu przykładowe nazwy które można zmienić i to są:
-Ketlin ; Lonix;MyHero ;MyUnit ;MyUnit2 to nazwa skryptu jednostki
-m5_1 ;MyArea to nazwa obszary
-m5_atack ; MyGroup to nazwa grupy
-map4 to nazwa mapy do ktorej sie przenosimy
-8 to numer gracza który ma dostać sztuczna inteligencje
-5_1 to nazwa konwersacji
-i1_2 ; i1_1 to nazwa informacji
-MySettlement to nazwa miasta
[size=18]1.[/size] Te skrypty umozliwiaja czekanie na inny skrypt, np
WaitUnitsInArea( Ketlin , "m5_1" , -1 );
RunConv("5_1");
SpawnGroup ("m5_atack") ;
[/color]
Ten skrypt spowoduje: Gdy Ketlin wejdzie w obszar m5_1 właczy sie rozmowa o nazwie 5_1 i pojawi sie grupa o nazwie m5_atack.
To jest tylko przykład można w ten sposob łaczyc wiele skryptów. Dlatege skrypty "czekające" są bardzo wazne.
WaitUnitsInArea( Ketlin , "m5_1" , -1 );
(czekaj az jednostka <ketlin> dojdzie do obsaru <m5_1>)
WaitEmptyQuery( m5_atack , -1 );
(czekaj az grupa <m5_atack> zostanie zniszczona)
WaitConvRequest(Ketlin , Lonix , -1);
RunConv("5_1");
(Czekaj aż gracz włączy rozmowę,dzięki temu skryptowi, pojawia sie nam wykrzyknik nad ta osoba z ktora mozemy porozmawiac <ketlin to jednostka ktora my sterujemy a lonix to jednostka nad ktora pojawia sie wykrzyknik>
[size=18]2.[/size] Skrypty właściwe.
ChangeMap("map4","m5_1");
(zmiana mapy, bohater zostanie przeniesiony do mapy <map4> do obszaru <m5_1>)
(warunki: bohater musi mieć zaznaczone drużyna w zakładce cechy)
SpawnGroup ("m5_atack") ;
(przybycie jednostek grupy <m5_atack>)
(warunki: jednostki w tej grupie muszą mieć zaznaczone szablon jednostki w zakładce cechy)
AIStart( 8 , "DEFAULT" , GetDifficulty() + 1);
(komputer <gracz8> zaczyna miec sztuczna inteligencje)
RunConv("5_1");
(uruchomienie rozmowy<5_1>
GiveNote("i1_2");
(dodanie informacji <i1_2>)
RemoveNote("i1_1");
(usuniecie informacji <i1_1>)
Ketlin.Damage(10000);
(jednostka <ketlin> zostaje zgladzona)
Ketlin = GetNamedObj("Ketlin");
(nie wiem do czego sluzy ale jesy potrzebne przy zmianie map, <ketlin to bohater ktory przychodzi z mapy do mapy
assets/entities/notifications/note.rle
(to dajemy w obrazek informacji zeby miejsce gdzie mamy isc bylo oznaczone wykrzyknikiem)
Settlement MySett;
MySett = GetSettlement("MySettlement");
MySett.SetGold( MySett.gold + 3000);
(dodaje do miasta <MySettlement> 3000 zlota)
ExploreArea(1 , "MyArea" );
(odkrywa mape nad obszarem <myarea>)
MyGroup.SetCommand("attach" , MyHero );
(grupa <MyGroup> zostaje dolaczona do bohatera <MyHero>)
MyGroup.SetCommand("enter", MyOutpost);
(grupa <MyGroup> wchodzi do posterunku lub miasta <MyOutpost>)
Wyzsza szkola jazdy!!!!!
//void
int Time , OneMin , Counter;
Time = 5;
OneMin = 60000;
Counter = 0;
while ( EnvReadString("/Mission15/Run") != "YES")
{
cls();
pr( Translatef("Pomoc od sasiadow nadejdzie za %s1 minut", Time) );
if ( Time == 0 )
break;
Sleep(1000);
Counter += 1000;
if ( Counter >= OneMin )
{
Time = Time - 1;
if ( Time < 0 )
Time = 0;
Counter = 0;
}
}
(wlacza sie odliczanie czasu)
(Time=ile minut ma sie idliczac)
(Pomoc od sasiadow nadejdzie za %s1 minut = to tekst jaki ma pisac
//Increase minattack with 10, maxattack with 20,
//slashing defence with 30, piercing defence with 40 and health with 500
MyUnit.obj.AsUnit().AddBonus( 10 , 20 , 30 , 40 , 500 );
//Run twice as fast (200% speed)
MyUnit.obj.AsUnit().SetSpeedFactor(200);
//Set the amount of food the unit carries
MyUnit.obj.AsUnit().SetFood(123);
(zmienia statystyki jednostki <myunit>:
-zmienia atak minimalny do 10
-zmienia atak mmaksymalny do 20
-zmienia obrone przed ranami cietymi do 30
-zmienia obrone przed ranami klutymi do 40
-zmienia zycie do 500
-jednostka chodzi 200% szybciej
-jednostak dostaje 123 pozywienia)
point pt;
Obj o;
pt = MyUnit.obj.pos;
MyUnit.obj.Erase(); //remove the old unit
o = SpawnNamed("MyUnit2");
o.SetPos(pt);
o.SetName("MyUnit"); //reassign back the name
(jednostke <myunit> zmienia w jednostke <MyUnit2>)
(tam metoda zostala zastosowana w kampani "powrot na tron')
P.S:
Owe skrypty wpisuję się w
Bieżąca Mapa->
Sekwencje->
Nowa SekwencjaWszelkie rzeczy związane TYLKO z jedną mapą robimy w
Bieżąca MapaJeżeli są jakieś niezgodności, proszę pisać do mnie na PW, Mail albo GG (na GG jestem dość często)