Funkcje do Skryptów

Transkrypt

Funkcje do Skryptów
Funkcje do Skryptów
AdvMap ......................................................................................................................4
GetGameVar...................................................................................................................................4
length..............................................................................................................................................4
GetDifficulty...................................................................................................................................5
Load................................................................................................................................................5
mod.................................................................................................................................................5
print.................................................................................................................................................6
Save.................................................................................................................................................6
SetGameVar....................................................................................................................................6
sleep................................................................................................................................................7
sqrt..................................................................................................................................................7
startThread......................................................................................................................................8
AddHeroCreatures..........................................................................................................................8
AddObjectCreatures.......................................................................................................................9
BlockGame.....................................................................................................................................9
CalcHeroMoveCost......................................................................................................................10
CanMoveHero...............................................................................................................................10
ChangeHeroStat............................................................................................................................10
CreateMonster...............................................................................................................................11
DeployReserveHero......................................................................................................................12
EnableAIHeroHiring.....................................................................................................................13
EnableHeroAI...............................................................................................................................13
IsObjectExists...............................................................................................................................14
GenerateMonsters.........................................................................................................................14
GetCurrentPlayer..........................................................................................................................15
GetDate.........................................................................................................................................15
GetHeroCreatures.........................................................................................................................16
GetHeroLevel...............................................................................................................................16
GetHeroStat..................................................................................................................................17
GetObjectCreatures.......................................................................................................................17
GetObjectiveProgress...................................................................................................................18
GetObjectiveState.........................................................................................................................18
GetObjectOwner...........................................................................................................................19
GetObjectsInRegion.....................................................................................................................19
GetObjectPosition.........................................................................................................................20
GetPlayerHeroes...........................................................................................................................20
GetPlayerResource.......................................................................................................................21
GetTownBuildingLevel................................................................................................................21
GetTownBuildingLimitLevel........................................................................................................23
GetTownBuildingMaxLevel.........................................................................................................24
GetTownHero................................................................................................................................24
GiveArtefact.................................................................................................................................25
LevelUpHero................................................................................................................................25
GiveHeroSkill...............................................................................................................................25
GiveHeroWarMachine..................................................................................................................26
HasArtefact...................................................................................................................................26
HasBorderguardKey.....................................................................................................................27
HasHeroSkill.................................................................................................................................27
HasHeroWarMachine....................................................................................................................28
IsHeroAlive...................................................................................................................................28
IsHeroLootable.............................................................................................................................28
IsObjectEnabled............................................................................................................................29
IsObjectInRegion..........................................................................................................................29
IsObjectiveVisible.........................................................................................................................30
IsObjectVisible..............................................................................................................................30
IsRegionBlocked...........................................................................................................................31
KnowHeroSpell............................................................................................................................31
Loose.............................................................................................................................................31
MarkObjectAsVisited...................................................................................................................32
MessageBox..................................................................................................................................32
MoveCamera.................................................................................................................................33
MoveHero.....................................................................................................................................33
MoveHeroRealTime.....................................................................................................................34
GetAllNames................................................................................................................................34
OpenCircleFog..............................................................................................................................35
OpenRegionFog............................................................................................................................35
Play2DSound................................................................................................................................35
Play3DSound................................................................................................................................36
PlayObjectAnimation...................................................................................................................36
random..........................................................................................................................................37
RazeTown.....................................................................................................................................37
RegionToPoint..............................................................................................................................37
RemoveArtefact............................................................................................................................38
RemoveHeroCreatures..................................................................................................................38
RemoveHeroWarMachine............................................................................................................39
RemoveObject..............................................................................................................................39
RemoveObjectCreatures...............................................................................................................40
ResetHeroCombatScript...............................................................................................................40
ResetObjectFlashlight...................................................................................................................41
SetAIHeroAttractor.......................................................................................................................41
SetAIPlayerAttractor....................................................................................................................42
SetCombatLight............................................................................................................................42
SetHeroCombatScript...................................................................................................................43
SetHeroLootable...........................................................................................................................43
SetAmbientLight...........................................................................................................................44
SetObjectEnabled.........................................................................................................................44
SetObjectiveProgress....................................................................................................................44
SetObjectiveState..........................................................................................................................45
SetObjectiveVisible......................................................................................................................46
SetObjectFlashlight.......................................................................................................................46
SetObjectOwner............................................................................................................................47
SetObjectPosition.........................................................................................................................47
SetPlayerResource........................................................................................................................48
SetPlayerStartResources...............................................................................................................48
SetRegionBlocked........................................................................................................................49
SetTownBuildingLimitLevel........................................................................................................49
SetWarfogBehaviour.....................................................................................................................50
ShowFlyingSign...........................................................................................................................50
SiegeTown....................................................................................................................................51
StartCombat..................................................................................................................................51
StartCutScene...............................................................................................................................52
StartDialogScene..........................................................................................................................53
StopPlaySound..............................................................................................................................53
TeachHeroSpell.............................................................................................................................54
TransformTown.............................................................................................................................54
Trigger...........................................................................................................................................55
UnblockGame...............................................................................................................................57
UnreserveHero..............................................................................................................................57
Win................................................................................................................................................57
WALKA.....................................................................................................................58
Prepare..........................................................................................................................................58
Start...............................................................................................................................................58
IsHuman........................................................................................................................................58
IsComputer...................................................................................................................................59
SetControlMode............................................................................................................................59
EnableAutoFinish.........................................................................................................................60
Finish............................................................................................................................................60
GetAttackerHero...........................................................................................................................60
GetAttackerCreatures....................................................................................................................61
GetAttackerWarMachines.............................................................................................................61
GetAttackerWarMachine..............................................................................................................61
GetDefenderHero..........................................................................................................................62
GetDefenderCreatures..................................................................................................................62
GetDefenderWarMachines............................................................................................................63
GetDefenderWarMachine.............................................................................................................63
GetDefenderBuildings..................................................................................................................63
GetDefenderBuilding....................................................................................................................64
IsAttacker......................................................................................................................................64
IsDefender.....................................................................................................................................65
IsHero...........................................................................................................................................65
IsCreature......................................................................................................................................65
IsWarMachine...............................................................................................................................66
IsBuilding.....................................................................................................................................66
GetHeroName...............................................................................................................................66
GetCreatureType...........................................................................................................................67
GetCreatureNumber......................................................................................................................67
GetWarMachineType....................................................................................................................67
GetBuildingType...........................................................................................................................68
GetUnitPosition............................................................................................................................68
AddCreature..................................................................................................................................69
EnableCinematicCamera..............................................................................................................69
Samouczek.................................................................................................................70
IsTutorialItemEnabled..................................................................................................................70
IsTutorialMessageBoxOpen.........................................................................................................70
TutorialActivateHint.....................................................................................................................70
TutorialMessageBox.....................................................................................................................71
TutorialSetBlink............................................................................................................................71
Miasto........................................................................................................................71
HeroHired.....................................................................................................................................72
CreatureHired...............................................................................................................................72
ADVMAP
GetGameVar
GetGameVar – zwraca wartość głównej zmiennej gry
Składnia
GetGameVar(name);
Opis
Ta funkcja zwraca wartość głównej zmiennej gry o nazwie name jeśli istnieje, lub pusty ciąg jeśli
nie istnieje.
– nazwa zmiennej
name
length
length – decyduje o długości szyku (tablicy)
Składnia
length(array);
Opis
'array' jest specjalnym typem tablicy, w której kluczami są tylko liczby, a numeracja zaczyna się od
zera i idzie w górę bez pomijania żadnych elementów. Funkcja length będzie decydować o
liczbie elementów w tej tablicy.
array
– tablica
GetDifficulty
GetDifficulty – decyduje o stopniu trudności gry
Składnia
GetDifficulty(void);
Opis
Funkcja zwraca poziom trudności gry. Aby zidentyfikować poziom trudności używa się
następujących stałych: DIFFICULTY_NORMAL, DIFFICULTY_HARD, DIFFICULTY_HEROIC. Stałe są
posortowane rosnąco, dzięki czemu możliwe jest stosowanie konstrukcji takich jak:
GetDifficulty() > DIFFICULTY_NORMAL, etc.
Load
Load – Ładuje grę z określonego pliku
Składnia
Load(fileName);
Opis
Ta funkcja wczytuje grę z podanego pliku.
fileName to nazwa pliku tekstowego wymienionego we właściwościach mapy (resources>saveFilenames) i zawierającego nazwę pliku save gry.
mod
mod – zwraca resztę z dzielenia jednej liczby przez drugą
Składnia
mod(x, y);
Opis
Ta funkcja zwraca resztę z dzielenia pierwszego argumentu przez drugi. Oba argumenty muszą być
liczbami. Drugi musi być różny od zera.
print
print – wyświetla w konsoli argumenty.
Składnia
print(...);
Opis
Ta funkcja wyświetla tekstową reprezentację argumentów w konsoli.
print działa z każdym typem parametrów:
•
•
•
liczby, ciągi i nil są reprezentowane za pomocą liter
funkcje i obiekty użytkownika są uzupełnione znacznikami "<function>"
wyświetlana jest zawartość tabel
Przykład:
> print(2, " sdf ", print)
2 sdf <C-function>
Save
Save – zapisuje grę do konkretnego pliku
Składnia
Save(fileName);
Opis
Ta funkcja zapisuje grę do wskazanego pliku.
fileName to nazwa pliku tekstowego wymienionego we właściwościach mapy (resources>saveFilenames) i zawierającego nazwę pliku save gry.
SetGameVar
SetGameVar – ustawia wartość głównej zmiennej gry.
Składnia
SetGameVar(name, value);
Opis
Ta funkcja zamienia wartość głównej zmiennej gry name przez wartość value. Jeśli takiej
zmiennej nie ma, zostanie ona utworzona.
Nazwa zmiennej
name –
value
– wartość jaka zostanie zapisana pod zmienną
sleep
sleep – zawiesza czasowo działanie aktualnego procesu.
Składnia
sleep(number-of-segments);
Opis
Ta funkcja zawiesza na podany okres czasu działanie aktualnego procesu. Czas jest podawany w
jednostkach gry.
Liczba number-of-segments musi być równa lub większa od 1.
Komenda sleep jest potrzebna do tworzenia skryptów, które mają wykonywać jakąś akcje przez
długi okres czasu (jak skrypty realizujące scenariusz mapy):
while 1 do
sleep(100)
print("another 100 game segments has passed")
end
Ważnym efektem działania komendy sleep, jest to, że kontrola przekazywana jest z aktualnie
działającego skryptu z powrotem do terminarza silnika skryptów, który jest aktywny aby inne
skrypty mogły działać i w końcowym efekcie przekazać kontrolę grze.
Na przykład, jeśli umieszczony powyżej skrypt uruchomimy bez polecenia sleep(100), proces w
którym skrypt został wywołany nigdy nie przekaże kontroli silnikowi skryptowemu, który mógłby
ją przekazać grze.
sqrt
sqrt – zwraca pierwiastek.
Składnia
sqrt(x);
Opis
Ta funkcja zwraca pierwiastek podanej liczby. Liczba nie może być ujemna.
startThread
startThread – rozpoczyna wykonywanie nowego procesu.
Składnia
startThread(func);
Opis
Ta funkcja rozpoczyna działanie innej podanej funkcji w nowym procesie.
Parametr func musi być funkcją skryptową: func nie może być liczbą, ani jedną z komend
opisywanych w tej instrukcji (ponieważ są utworzone w C).
local immortal = "immortal-archer";
function eternalLoop()
while 1 do
if not exist(%immortal) then
resurrect(%immortal)
end
sleep(1)
end
end
print("Starting resurrection loop")
startThread(eternalLoop)
AddHeroCreatures
AddHeroCreatures – dodaje stwory do armii bohatera.
Składnia
AddHeroCreatures(heroname, creatureID, quantity);
Opis
Dodaje podaną liczbę (quantity) stworzeń o identyfikatorze creatureID do armii bohatera
heroname.
heroname
jest nazwą bohatera, ustawioną podczas stworzenia mapy.
Komenda działa niezależnie od położenia bohatera: może być nawet poza mapą (w mieście lub
nawet wśród martwych (?)).
Można dodać tylko stworzenia, nie można machin wojennych.
AddObjectCreatures
AddObjectCreatures – dodaje stworzenia do armii obiektu
Składnia
AddObjectCreatures(objectName, creatureID, quantity);
Opis
Ta funkcja dodaje określoną liczbę (quantity) stworzeń o identyfikatorze creatureID do armii
obiektu objectName. Stworzenia można dodać do każdego obiektu, który może posiadać armię
(włącznie z innymi stworzeniami i bohaterami). Do Potworów mozna dodać tylko stworzenia tego
samego typu co już zawierają.
objectName
– nazwa obiektu
creatureID
– identyfikator stworzenia
quantity
– ilość stworzeń
Można dodać tylko stworzenia, nie można machin wojennych.
BlockGame
BlockGame – blokuje działanie interfejsu użytkownika i działanie SI.
Składnia
BlockGame(void);
Opis
Komenda blokuje interfejs użytkownika i działanie SI jak również możliwość zarządzania kamerą.
W ten sposób świat się zatrzymuje, a skrypt staje się jedynym źródłem zdarzeń w grze. Komenda
zatrzymuje również ruch bohaterów (zachowując jednak ścieżkę ich ruchu). Aby odblokować grę
należy użyć komendy UnblockGame. Blokady gry mogą się kumulować, oznacza to, że gra zostanie
odblokowana dopiero po użyciu komendy UnblockGame tyle samo co komendy BlockGame.
CalcHeroMoveCost
CalcHeroMoveCost – oblicza koszt ruchu bohatera do określonego punktu.
Składnia
CalcHeroMoveCost(heroName, x, y, floorID = -1);
Opis
Funkcja oblicza koszt ruchu bohatera do określonego punktu, używając przy tym punkty ruchu
bohatera do obliczeń. Jeśli nie podany zostanie poziom, do obliczeń zostanie użyty ten, na którym
bohater aktualnie się znajduje. Funkcje można użyć tylko do bohaterów kontrolowanych przez SI.
Do obliczeń brane są pod uwagę tylko obiekty statyczne. Jeśli podanego punktu bohater nie może
osiągnąć, funkcja zwraca wartość -1.
– imie bohatera
heroName
x, y
– współrzędne celu
floorID
– identyfikator poziomu (-1 oznacza, poziom, na którym bohater się znajduje)
CanMoveHero
CanMoveHero – sprawdza, czy bohater może zostać przeniesiony do konkretnego punktu
Składnia
CanMoveHero(heroName, x, y, floorID = -1);
Opis
Ta funkcja zwraca wartość true jeśli wprowadzony punkt jest osiągalny przez bohatera. Inaczej
zwróci wartość false. Jeśli nie zostanie wprowadzony poziom, zostanie użyty do sprawdzenia ten,
na którym bohater aktualnie się znajduje. Funkcje można użyć tylko do bohaterów kontrolowanych
przez SI.
imie bohatera
heroName –
x, y
– współrzędne celu
floorID –
identyfikator poziomu (-1 oznacza poziom, na którym znajduje się bohater)
ChangeHeroStat
ChangeHeroStat – zmienia statystyki bohatera
Składnia
ChangeHeroStat(heroName, statID, delta);
Opis
Funkcja modyfikuje konkretną statystykę bohatera o wartość delta.
Można modyfikować następujące statystyki: doświadczenie, atak, obrona, moc, wiedza, szczęście,
morale, punkty ruchu i punkty many.
może być dodatnia (statystyka jest podwyższana) lub ujemna (statystyka jest zwiększana)
dla wszystkich statystyk oprócz doświadczenia (może tylko rosnąć). delta może być tylko liczbą
dodatnią lub zerem.
delta
Żadna ze statystyk nie może być ujemna. Wartość punktów ruchu i many jest ograniczona
maksymalną i minimalną ich wartością. Jeśli modyfikacja przewyższa wartości limitu, zostanie
ograniczona.
imię bohatera
heroName –
statID –
identyfikator statystyki, może być jednym z poniższych:
doświadczenie
STAT_EXPERIENCE –
współczynnik ataku
STAT_ATTACK –
współczynnik obrony
STAT_DEFENCE –
STAT_SPELL_POWER –
STAT_KNOWLEDGE –
STAT_LUCK –
współczynnik mocy
współczynnik wiedzy
szczęście
STAT_MORALE –
morale
STAT_MOVE_POINTS –
liczba pozostałych punktów ruchu
STAT_MANA_POINTS –
aktualna liczba punktów many
delta –
wartość modyfikacji
CreateMonster
CreateMonster– tworzy na mapie potwora
Składnia
CreateMonster(monsterName,
creatureType,
creaturesCount,
x,
y,
floorID,
mood=MONSTER_MOOD_AGGRESSIVE,
courage=MONSTER_COURAGE_CAN_FLEE_JOIN,
rotation=0);
Opis
Tworzy stworzenia w liczbie creaturesCount typu monsterType na polu o współrzędnych ( x,
y ) na poziomie floorID, ustawiając jednocześnie jego parametr monsterName. Jeśli podane
pole jest zajęte (istnieje na nim inny obiekt), stworzenie jest ustawiana na jednym z pól
sąsiadujących. Dalsze dwa parametry wpływają na zachowanie potwora po spotkaniu bohatera.
– nazwa stworzenia, która może zostać użyta w innych skryptach.
monsterName
– typ stworzenia.
creatureType
creaturesCount
x, y –
– liczba stworzeń.
współrzędne pola , na którym stworzenie zostanie umieszczone.
współrzędne poziomu na którym znajduje się docelowe pole.
floorID –
– te parametry wpływają na zachowanie się stworzenia po spotkaniu z bohaterem,
może przybrać jedną z poniższych wartości:
mood, courage
MONSTER_MOOD_FRIENDLY,
MONSTER_MOOD_AGGRESSIVE,
MONSTER_MOOD_HOSTILE,
MONSTER_MOOD_WILD
MONSTER_COURAGE_ALWAYS_JOIN,
MONSTER_COURAGE_ALWAYS_FIGHT,
MONSTER_COURAGE_CAN_FLEE_JOIN
rotation
– kąt obrotu stworzenia (domyślnie 0).
DeployReserveHero
DeployReserveHero – umieszcza na mapie bohatera, który był na liście rezerwowej gracza.
Składnia
DeployReserveHero(heroName, x, y, floor);
Opis
Gdy tworzona jest mapa, cześć bohaterów może zostać zarezerwowana dla jakiegoś gracza. Tacy
bohaterowie nigdy nie pojawią się w tawernie i nie będą mogli zostać normalnie zatrudnieni. Aby
umieścić na mapie zarezerwowanego bohatera, należy użyć komendy DeployReserveHero,
ustalając w parametrach imię bohatera oraz docelowe miejsce. Jeśli podane pole jest niedostępne ,
bohater zostanie umieszczony na jednym z pól sąsiadujących. Zarezerwowani bohaterowie, którzy
zostali zabici, uciekli lub zostali usunięci z listy z innych powodów, zostaną z powrotem na tej
liście umieszczeni i będą mogli zostać umieszczeni na mapie tą samą komendą. Ich armie zostaną
przywrócone do tych ustalonych w edytorze. Aby usunąć bohatera z listy zarezerwowanych i dać
możliwość wynajęcia go przez innych graczy należy użyć funkcji UnreserveHero.
heroName
x, y
– imię zarezerowanego bohatera.
– współrzędne pola, na którym zostanie umieszczony bohater.
floorID – współrzędne poziomu, na którym znajduje się docelowe pole.
EnableAIHeroHiring
EnableAIHeroHiring – włącza lub wyłącza możliwość wynajmowania bohaterów w tawernie przez
SI
Składnia
EnableAIHeroHiring(playerID, townName, enable);
Opis
Dzięki tej funkcji możesz pozwolić/zabronić SI wynajmowanie bohaterów w tawernie konkretnego
miasta (domyślnie jest to dozwolone).
playerID
– Identyfikator gracza
townName
– nazwa miasta
enable
– wartość true aby włączyć, false aby wyłączyć
EnableHeroAI
EnableHeroAI – włącza lub wyłącza kontrolę SI nad danym bohaterem
Składnia
EnableHeroAI(heroName, enable);
Opis
Funkcja ta pozwala włączyć lub wyłączyć kontrolę SI nad podanym bohaterem. Może zostać użyta
tylko w trybie pojedynczego gracza. Jeśli funkcja jest wywoływana dla gracza użytkownika,
generowany jest komunikat o błędzie. Jeśli status kontroli bohatera jest taki sam jak w
wywoływanej funkcji, funkcja nie przyniesie żadnych efektów.
heroName –
enable –
imię bohatera
wartość true aby włączyć, false aby wyłączyć
IsObjectExists
IsObjectExists – Sprawdza czy podany obiekt istnieje na mapie
Składnia
IsObjectExists(objectName);
Opis
Funkcja zwraca wartość true jeśli podany obiekt istnieje na mapie, w przeciwnym wypadku
zwróci wartość false. Funkcji można użyć do …, ofiarowania OBJECT_GRAIL jeśli jest
wymieniona jest jego nazwa.
objectName –
nazwa obiektu.
GenerateMonsters
GenerateMonsters – generuje potwory na mapie
Składnia
GenerateMonsters(monsterTypeID,
countGroupsMin,
countGroupsMax,
countInGroupMin,
countInGroupMax);
Opis
Ta funkcja generuje na mapie przygody potwory w losowych miejscach. Generowana jest liczba
grup potworów od countGroupsMin do countGroupsMax, w liczbie od countInGroupMin do
countInGroupMax każda.
– identyfikator stworzeń
monsterTypeID
– minimalna liczba generowanych grup (musi być większa lub równa zero)
countGroupsMin
maksymalna liczba generowanych grup (musi być większa lub równa do
countGroupsMax –
countGroupsMin)
countInGroupMin
– minimalna liczba stworzeń w grupie (musi być większa lub równa zero)
countInGroupMax –
countInGroupMin)
minimalna liczba stworzeń w grupie (musi być większa lub równa do
GetCurrentPlayer
GetCurrentPlayer – określa aktualnego gracza
Składnia
GetCurrentPlayer(void);
Opis
Funkcja zwraca identyfikator gracza, którego trwa aktualnie tura.
GetDate
GetDate – zwraca aktualny czas w grze (dzień, tydzień, miesiąc lub dzień tygodnia)
Składnia
GetDate(dateTypeID);
Opis
Funkcja zwraca aktualny czas w grze. Parametr decyduje o tym co ma być zwrócone: aktualny
dzień, tydzień miesiąc czy dzień tygodnia. Domyślnie (funkcja wywoływana bez parametru) zwraca
aktualny dzień.
dateTypeID
– typ zwracanej informacji
Może to być:
– dzień
DAY
WEEK
– tydzień
MONTH
– miesiąc
– dzień tygodnia
DAY_OF_WEEK
ABSOLUTE_DAY
– to samo co DAY
GetHeroCreatures
GetHeroCreatures – określa liczbę storzeń określonego typu w armii bohatera
Składnia
GetHeroCreatures(heroName, creatureID);
Opis
Funkcja zwraca liczbę konkretnych istot, znajdujących się pod dowództwem konkretnego bohatera.
heroName –
imię bohatera
creatureID
– identyfikator stworzenia
GetHeroLevel
GetHeroLevel – okresla poziom bohatera
Składnia
GetHeroLevel(heroname);
Opis
Funkcja zwraca aktualny poziom bohatera heroname.
Błąd
• Jeśli
nie ma bohatera o imieniu heroname (IsHeroAlive(heroname) zwraca nil/false)
GetHeroStat
GetHeroStat – określa parametry bohatera
Składnia
GetHeroStat(heroName, statID);
Opis
Funkcja zwraca wartość konkretnej statystyki bohatera. Można określić następujące statystyki:
doświadczenie, atak, obrona, moc, wiedza, szczęście, morale, punkty ruchu, punkty many. Wartość
statystyk jest określana, biorąc pod uwagę wszystkie efekty (artefakty, itp.)
imię bohatera
heroName –
statID –
identyfikator statystyki, może przyjąć następujące wartości:
doświadczenie
STAT_EXPERIENCE –
atak
STAT_ATTACK –
obrona
STAT_DEFENCE –
STAT_SPELL_POWER –
STAT_KNOWLEDGE –
STAT_LUCK –
moc
wiedza
szczęście
STAT_MORALE –
morale
STAT_MOVE_POINTS –
pozostałe punkty ruchu
STAT_MANA_POINTS –
aktualna liczba punktów many
GetObjectCreatures
GetObjectCreatures – określa liczbę stworzeń podanego typu w armii obiektu
Składnia
GetObjectCreature(objectName, creatureID);
Opis
Funkca zwraca liczbę stworzeń określonego typu w armii konkretnego obiektu. Funkcji można użyć
na każdym obiekcie posiadającym armię (w tym bohaterów i potworów).
objectName
– nazwa obiektu
creatureID
– Identyfikator stworzenia
GetObjectiveProgress
GetObjectiveProgress – określa postęp w wypełnianiu celu misji
Składnia
GetObjectiveProgress(objectiveName, playerID = PLAYER_1);
Opis
Funkcja określa postęp w wypełnianiu celu objectiveName. Dla celów właściwych dla
wszystkich graczy, parametr playerID określa gracza, którego postęp ma zostać określony (jeśli
parametr nie jest podany, funkcja dotyczy do pierwszego gracza). Dla celów właściwych tylko dla
konkretnego gracza, parametr playerID jest ignorowany.
Liczba kroków w ręcznie kontrolowanych celach jest określana po ilości komentarzy postępu
ustawionych w edytorze. Cele ‘seize the specified on-map objects’ oraz ‘destroy the specified
neutral armies’ posiadają liczbę kroków taką samą jak ilość obiektów do zajęcia, znajdujących się
na mapie lub liczby armii jakie trzeba pokonać. Inne cele nie mają etapów postępu i mogą być tylko
ukończone lub nie.
objectiveName
– nazwa celu misji
identyfikator gracza, którego postęp ma być określany (ignorowane przy celach dla
konkretnego gracza i domyślnie dotyczy gracza PLAYER_1)
playerID –
GetObjectiveState
GetObjectiveState – określa status celu
Składnia
GetObjectiveState(objectiveName, playerID = PLAYER_1);
Opis
Funkcja zwraca status celu objectiveName dla konkretnego gracza. Dla celów zależnych od
gracza, parametr playerID jest ignorowany. Dla celów zwykłych, jeśli nie został podany parametr
playerID, funkcja będzie dotyczyć gracza pierwszego.
nazwa celu misji
objectiveName –
identyfikator gracza, dla którego status celu ma być określany (ignorowane przy
celach dla konkretnego gracza i domyślnie dotyczy gracza PLAYER_1)
playerID –
Lista możliwych statusów:
OBJECTIVE_SCENARIO_INFO
– specjalny status, określający że ten cel jest w rzeczywistości opisem
scenariusza aktualnej mapy.
OBJECTIVE_UNKNOWN – cel nie jest znany graczowi. Jeśli włączona jest flaga dla celu (zobacz
funkcje GetObjectiveState / SetObjectiveState), interfejs celów będzie zawierał tylko
niejasny opis zadania.
OBJECTIVE_ACTIVE
– gracz aktualnie jest w trakcie wykonywania celu.
OBJECTIVE_COMPLETED
OBJECTIVE_FAILED
– cel jest ukończony.
– cel zakończył się niepowodzeniem.
GetObjectOwner
GetObjectOwner – określa przynależność obiektu
Składnia
GetObjectOwner(objectName);
Opis
Funkcja zwraca identyfikator gracza, który jest właścicielem podanego obiektu. Jeśli obiekt nie
należy do nikogo, funkcja zwraca wartość PLAYER_NONE.
objectName – nazwa obiektu
GetObjectsInRegion
GetObjectsInRegion – określa jakie obiekty istnieją w podanym regionie
Składnia
GetObjectsInRegion(regionName, objectType);
Opis
Funkcja zwraca nazwy obiektów na mapie, znajdujących się w obrębie regionu. Obiekty bez nazw
są ignorowane.
regionName
– nazwa regionu
objectType
– typ obiektów, których funkcja ma szukać w regionie
Aktualnie, funkcja działa tylko z jednym typem obiektów:
– bohaterowie
OBJECT_HERO
GetObjectPosition
GetObjectPosition – określa pozycję obiektu na mapie
Składnia
GetObjectPosition(objectName);
Opis
Funkcja zwraca trzy wartości: x oraz y to współrzędne pola na którym znajduje się obiekt (lub jeśli
obiekt zajmuje kilka pól, zwraca położenie jego środka) oraz liczbę określającą poziom. Tej funkcji
można użyć do …, danie OBJECT_GRAIL jako nazwa obiektu.
objectName –
nazwa obiektu
GetPlayerHeroes
GetPlayerHeroes – zwraca imiona bohaterów należących do gracza
Składnia
GetPlayerHeroes(playerID);
Opis
Funkcja zwraca tablicę zawierającą imiona bohaterów należących do podanego gracza.
playerID
– identyfikator gracza
GetPlayerResource
GetPlayerResource – sprawdza ilość zasobów konkretnego gracza.
Składnia
GetPlayerResource(player, resourceKind);
Opis
Ta funkcja zwraca ilość zasobu typu resourceKind należących do gracza player.
— numer gracza od 1 do 8. Można użyć stałych globalnych PLAYER_1 do PLAYER_8
zamiast liczb.
player
resourceKind
GEM, or GOLD.
– liczba od 0 do 6, lub jedna ze stałych: WOOD, ORE, MERCURY, CRYSTAL, SULFUR,
Komenda działa dla graczy aktywnych, a także przegranych. Żądanie sprawdzenia ilości zasobów
gracza, który nie uczestniczy w rozgrywce kończy się błędem.
Błąd
•
•
Jeśli wartości nie są wartościami dopuszczonymi;
jeśli wymieniony gracz nie bierze udziału w rozgrywce
GetTownBuildingLevel
GetTownBuildingLevel – określa poziom budynku w mieście
Składnia
GetTownBuildingLevel(townName, buildingID);
Opis
Funkcja zwraca poziom konkretnego budynku w mieście. Level 0 oznacza, że budynek nie został
wzniesiony.
townName
– nazwa miasta
buildingID
– identyfikator budynku, może przyjąć następujące wartości:
TOWN_BUILDING_TOWN_HALL,
TOWN_BUILDING_FORT,
TOWN_BUILDING_MARKETPLACE,
TOWN_BUILDING_SHIPYARD,
TOWN_BUILDING_TAVERN,
TOWN_BUILDING_BLACKSMITH,
TOWN_BUILDING_MAGIC_GUILD,
TOWN_BUILDING_DWELLING_1,
TOWN_BUILDING_DWELLING_2,
TOWN_BUILDING_DWELLING_3,
TOWN_BUILDING_DWELLING_4,
TOWN_BUILDING_DWELLING_5,
TOWN_BUILDING_DWELLING_6,
TOWN_BUILDING_DWELLING_7,
TOWN_BUILDING_GRAIL,
TOWN_BUILDING_WONDER,
TOWN_BUILDING_HAVEN_TRAINING_GROUNDS,
TOWN_BUILDING_HAVEN_MONUMENT_TO_FALLEN_HEROES,
TOWN_BUILDING_HAVEN_HOSPITAL,
TOWN_BUILDING_HAVEN_STABLE,
TOWN_BUILDING_HAVEN_FARMS,
TOWN_BUILDING_INFERNO_INFERNAL_LOOM,
TOWN_BUILDING_INFERNO_ORDER_OF_FIRE,
TOWN_BUILDING_INFERNO_HALLS_OF_HORROR,
TOWN_BUILDING_INFERNO_SACRIFICIAL_PIT,
TOWN_BUILDING_DUNGEON_ALTAR_OF_ELEMENTS,
TOWN_BUILDING_DUNGEON_RITUAL_PIT,
TOWN_BUILDING_DUNGEON_TRADE_GUILD,
TOWN_BUILDING_DUNGEON_TREASURE_DIG_SITE,
TOWN_BUILDING_DUNGEON_HALL_OF_INTRIGUE,
TOWN_BUILDING_ACADEMY_LIBRARY,
TOWN_BUILDING_ACADEMY_ARCANE_FORGE,
TOWN_BUILDING_ACADEMY_ARTIFACT_MERCHANT,
TOWN_BUILDING_ACADEMY_TREASURE_CAVE,
TOWN_BUILDING_ACADEMY_ELEMENTAL_ENCLAVE,
TOWN_BUILDING_PRESERVE_AVENGERS_BROTHERHOOD,
TOWN_BUILDING_PRESERVE_MYSTIC_POND,
TOWN_BUILDING_PRESERVE_SPARKLING_FONTAINS,
TOWN_BUILDING_PRESERVE_BLOOMING_GROVE,
TOWN_BUILDING_PRESERVE_TREANT_SAMPLING,
TOWN_BUILDING_NECROMANCY_AMPLIFIER,
TOWN_BUILDING_NECROMANCY_UNHOLY_TEMPLE,
TOWN_BUILDING_NECROMANCY_UNEARHED_GRAVES,
TOWN_BUILDING_NECROMANCY_DRAGON_TOMBSTONE,
TOWN_BUILDING_NECROMANCY_SHROUD_OF_DARKNESS.
NB: Sprawdzanie budynku innej rasy niż sprawdzane miasto, może spowodować wystąpienie
błędów.
GetTownBuildingLimitLevel
GetTownBuildingLimitLevel – określa limit poziomu dla budynku w mieście.
Składnia
GetTownBuildingLimitLevel(townName, buildingID);
Opis
Funkcja zwraca możliwy limit poziomu podanego budynku w mieście. Level 0 oznacza, że
budynek nie może być wzniesiony.
townName –
nazwa miasta
– identyfikator budynku (spójrz na opis GetTownBuildingLevel w poszukiwaniu
listy możliwych wartości).
buildingID
GetTownBuildingMaxLevel
GetTownBuildingMaxLevel – określa maksymalny poziom budynku w mieście
Składnia
GetTownBuildingMaxLevel(townName, buildingID);
Opis
Ta funkcja zwraca maksymalny możliwy do zbudowania poziom konkretnego budynku w mieście.
Level 0 oznacza, że budynek nie może zostać wzniesiony.
townName –
nazwa miasta
identyfikator budynku (zobacz opis GetTownBuildingLevel w poszukiwaniu
listy możliwych wartości).
buildingID –
GetTownHero
GetTownHero – zwraca imię bohatera stacjonującego w mieście
Składnia
GetTownHero(townName);
Opis
Funkcja zwraca imię bohatera stacjonującego w konkretnym mieście, lub wartość nil jeśli nie ma
bohatera w garnizonie.
townName
– nazwa miasta
GiveArtefact
GiveArtefact – daje bohaterowi artefakt
Składnia
GiveArtefact(heroname, artefactID, [bindToHero = 0]);
Opis
Daje artefakt artefactID bohaterowi heroname.
artefactID
– numer artefaktu od 0 do 55, lub stała z listy
– przypisuje artefakt do bohatera (niemożliwym będzie wówczas przekazanie
artefaktu innemu bohaterowi)
bindToHero
Błąd
• jeśli nie ma bohatera o
nil/false)
imieniu heroname (IsHeroAlive(heroname) zwraca wartość
LevelUpHero
LevelUpHero – daje bohaterowi tyle doświadczenia ile potrzebuje aby awansował na kolejny
poziom
Składnia
LevelUpHero(heroName);
Opis
Funkcja daje bohaterowi heroName tyle doświadczenia, ile potrzebuje na awans na kolejny poziom.
Funkcja zwraca wartość true jeśli możliwym było uzyskanie przez bohatera poziomi, oraz wartość
nil jeśli nie było to możliwe (bohater posiada już maksymalny możliwy poziom).
heroName –
imię bohatera
GiveHeroSkill
GiveHeroSkill – daje bohaterowi konkretną podstawową umiejętność
Składnia
GiveHeroSkill(heroName, skillID);
Opis
Funkcja próbuje ofiarować bohaterowi podaną podstawową umiejętność. Zwraca wartość false
jeśli nie było to możliwe (np., bohater ma opanowane mistrzostwo w tej dziedzinie, lub nie ma już
miejsca na tą umiejętność), inaczej zwraca wartość true.
imię bohatera
heroName –
identyfikator umiejętności
skillID –
GiveHeroWarMachine
GiveHeroWarMachine – daje bohaterowi machinę wojenną
Składnia
GiveHeroWarMachine(heroName, warMachineType);
Opis
Funkcja próbuje dać bohaterowi wymienioną machinę wojenną. Zwraca wartość nil jeśli bohater
posiada już taką machinę, inaczej zwraca wartość non nil.
heroName –
imię bohatera
warMachineID
– identyfikator machiny
HasArtefact
HasArtefact – sprawdza czy bohater ma artefakt
Składnia
HasArtefact(heroname, artefactID);
Opis
Funkcja zwraca informację o tym, czy bohater heroname posiada artefakt artefactID.
– numer artefaktu od 0 do 54 (opis artefaktów na stronie internetowej H5 mówi, że
'istnieje 54 artefakty i jeden z nich może być podwójny, więc będzie ich 55', w rzeczywistości jest ich
w grze jedynie 53).
artefactID
Powinniśmy również (prawdopodobnie) poprawić stałe dla artefaktów, aby używać
HasArtefact("Agrael", SWORD_OF_RUINS) zamiast HasArtefact("Agrael", 0).
Błąd
• jeśli nie ma bohatera o
nil/false)
imieniu heroname (IsHeroAlive(heroname) funkcja zwraca wartość
HasBorderguardKey
HasBorderguardKey – sprawdza czy gracz posiada klucz danego koloru
Składnia
HasBorderguardKey(player, color);
Opis
Funkcja zwraca wartość not nil jeśli gracz posiada klucz danego koloru, oraz wartość nil jeśli
nie posiada.
numer gracza
player –
color –
kolor klucza; może przybrać następujące wartości:
RED_KEY, BLUE_KEY, GREEN_KEY, YELLOW_KEY, ORANGE_KEY, TEAL_KEY, PURPLE_KEY,
TAN_KEY.
HasHeroSkill
HasHeroSkill – sprawdza czy bohater posiada umiejętność
Składnia
HasHeroSkill(heroName, skillID);
Opis
Funkcja zwraca wartość true jeśli bohater posiada wymienioną umiejętność (nauczoną lub z
artefaktu), w przeciwnym przypadku zwraca wartość false.
heroName –
imię bohatera
– identyfikator umiejętności
skillID
HasHeroWarMachine
HasHeroWarMachine – sprawdza czy bohater posiada konkretną machinę wojenną
Składnia
HasHeroWarMachine(heroName, warMachineType);
Opis
Zwraca wartość not nil jeśli bohater posiada wymienioną machinę wojenną, inaczej zwraca
wartość nil.
heroName –
imię bohatera
warMachineID –
identyfikator machiny wojennej
IsHeroAlive
IsHeroAlive – czy bohater żyje?
Składnia
IsHeroAlive(heroname);
Opis
Funkcja sprawdza czy istnieje bohater heroname, jeśli tak, bohater żyje.
Bohater jest żywy, jeśli należy do jednego z aktywnych graczy (tacy dla których funkcja
GetPlayerState() zwraca wartość true). Nie ma znaczenia gdzie bohater się znajduje podczas
sprawdzania: na powierzchni, w podziemiach, w mieście czy na łodzi.
heroname
jest to wewnętrzne skryptowe imię bohatera (nie to które jest ustalane podczas tworzenia
mapy).
IsHeroLootable
IsHeroLootable – sprawdza czy można zabrać artefakty pokonanego bohatera.
Składnia
IsHeroLootable(heroName);
Opis
Zwraca wartość not nil jeśli artefakty są przenoszone do zwycięzcy bitwy, oraz wartość nil jeśli
pozostają z pokonanym bohaterem.
heroName –
imię bohatera
IsObjectEnabled
IsObjectEnabled – sprawdza czy obiekt interaktywny oddziałuje z bohaterem standardowo
Składnia
IsObjectEnabled(objectName);
Opis
Jeśli funkcja zwraca wartość true, obiekt interaktywny zachowuje się standardowo. Jeśli funkcja
zwraca wartość false, gdy do obiektu podejdzie bohater, nic się nie dzieje, natomiast zostaje
wywołana funkcja wyzwalacza, jeśli została taka zdefiniowana. Domyślnie każdy obiekt zachowuje
sięstandardowo.
objectName –
nazwa obiektu interaktywnego.
IsObjectInRegion
IsObjectInRegion – sprawdza, czy w wymienionym regionie znajduje się obiekt
Składnia
IsObjectInRegion(objectName, regionName);
Opis
Funkcja zwraca wartość true, jeśli obiekt znajduje się w granicach wymienionego regionu, oraz
wartość false w przeciwnym przypadku.
NB: funkcja działa prawidłowo jedynie z obiektami zajmującymi jedno pole.
objectName
– nazwa obiektu
regionName
– nazwa regionu
IsObjectiveVisible
IsObjectiveVisible – sprawdza, czy cel misji jest wyświetlony na interfejsie danego gracza
Składnia
IsObjectiveVisible(objectiveName, playerID = PLAYER_1);
Opis
Funkcja zwraca wartość true, jeśli cel jest pokazany na interfejsie podanego gracza, oraz wartość
false jeśli nie jest. Dla celów zależnych od gracza, parametr playerID jest ignorowany. Dla
celów zwykłych, parametr playerID określa gracza, dla którego wyświetlanie celu jest
sprawdzane; jeśli nie jest, funkcja sprawdza gracza pierwszego..
objectiveName –
nazwa celu
– identyfikator gracza (dla celów zależnych od gracza parametr jest ignorowany,
domyślnie oznacza PLAYER_1).
playerID
IsObjectVisible
IsObjectVisible – sprawdza czy obiekt jest widzialny dla gracza
Składnia
IsObjectVisible(playerID, objectName);
Opis
Funkcja zwraca wartość true, jeśli obiekt jest widzialny dla gracza oraz wartość false jeśli nie
jest.
NB: funkcja działa prawidłowo jedynie z obiektami zajmującymi jedno pole.
playerID
– identyfikator gracza
objectName
– nazwa obiektu
IsRegionBlocked
IsRegionBlocked – sprawdza czy dany region jest zablokowany dla ruchu bohaterów konkretnego
gracza
Składnia
IsRegionBlocked(regionName, playerID);
Opis
Funkcja zwraca wartość not nil jesłi region jest zablokowany dla ruchu bohaterów
wymienionego gracza, oraz wartość nil jeśli nie jest.
regionName
playerID
– nazwa regionu
– identyfikator gracza
KnowHeroSpell
KnowHeroSpell – sprawdza czy bohater zna czar
Składnia
KnowHeroSpell(heroName, spell);
Opis
Funkcja zwraca wartość true, jeśli bohater zna dany czar (niezależnie od tego czy się go nauczył,
czy ma go z artefaktu), inaczej zwraca wartość false.
heroName
spell
– imię bohatera
– identyfikator czaru
Zajrzyj do załącznika, tam lista identyfikatorów czarów.
Loose
Loose – gracz ludzki przegrywa jeśli funkcja zostanie wywołana.
Składnia
Loose(void);
Opis
Funkcja powinna być używana tylko w trybie dla pojedynczego gracza. Gdy zostanie użyta w grze
multiplayer wygeneruje błąd. Po wywołaniu funkcji gracz przegrywa misję.
MarkObjectAsVisited
MarkObjectAsVisited – oznacza nie działający interaktywny obiekt jako odwiedzony przez
konkretnego bohatera
Składnia
MarkObjectAsVisited(objectName, heroName);
Opis
Komenda powinna być wywołana, gdy bohater odwiedzi wyłączony, z powodu wywołania
komendy SetObjectEnabled, interaktywny obiekt.
nazwa interaktywnego obiektu
objectName –
heroName
– imię bohatera, który odwiedza interaktywny obiekt
MessageBox
MessageBox – wysyła wiadomość
Składnia
MessageBox(messageName, callback = "");
Opis
Funkcja wyświetla wiadomość w okienku z jedynym przyciekiem – 'OK'. Parametr callback
ustala funkcję, która ma być wywołana po wciśnięciu przycisku 'OK'.
messageName
– nazwa wiadomości w bazie zasobów
callback – nazwa funkcji,
która ma być wywołana po wciśnięciu przycisku 'OK'.
MoveCamera
MoveCamera – przesuwa kamerę do konkretnego punktu na mapie
Składnia
MoveCamera(x, y, floorID, zoom = 50 , pitch = pi/2 , yaw = 0, noZoom = 0, noRotate = 0);
Opis
Ta funkcja przesuwa kamerę do podanego punktu oraz ustawia wartości przybliżenia i kątu kamery.
x, y, floorID
– parametr decyduje o odległości od wybranego pola
zoom
– kąt kamery ( 0 – kamera obserwuje poziomo, pi/2 – kamera skierowana pionowo w dół)
pitch
yaw
– współrzędne pola na którym ma być skupiona kamera
– kąt obrotu kamery (0 – północ)
– ustaw 1 aby kamera nie zmieniała przybliżenia podczas ruchu
noZoom
ustaw 1 aby kamera się nie obracała podczas ruchu
noZoom –
MoveHero
MoveHero – każe bohaterowi przejść do konkretnego miejsca
Składnia
MoveHero(heroName, x, y, floorID = -1);
Opis
Ta funkcja każe bohaterowi przejść do wybranego miejsca. Jeśli nie podany jest poziom, bohater
przejdzie do punktu na tym poziomie, na którym się znajduje. Funkcja może zostać wywołana tylko
dla graczy kontrolowanych przez komputer z wyłączoną kontrolą SI. Funkcja generuje błąd jeśli
podany punkt jest nieosiągalny. Jeśli punkty ruchu bohatera się skończą, ruch będzie kontynuowany
w następnej turze.
– imię bohatera
heroName
współrzędne celu
x, y –
floorID
– numer poziomu (domyślnie -1, co oznacza poziom, na którym bohater się znajduje)
MoveHeroRealTime
MoveHeroRealTime – bohater przechodzi do konkretnego punktu
Składnia
MoveHeroRealTime(heroName, x, y, floorID = -1);
Opis
Funkcja rozkazuje bohaterowi przejście do konkretnego miejsca. Jeśli nie został podany poziom,
bohater przejdzie do punktu na poziomie, na którym stoi. Funkcja generuje błąd, jeśli podany punkt
jest nieosiągalny. Ruch rozpoczyna się od razu, niezależnie od tego czyja tura trwa aktualnie.
Dalszy skrypt jest wykonywany od razu, bez czekania na zakończenie ruchu bohatera. Interfejs
użytkownika i kontrola SI są podczas ruchu zablokowane. Jeśli punkty ruchu się skończą lub
bohater natrafi na przeszkodę, zatrzymuje się bez interakcji z obiektem (oznacza to że bohater nie
ma możliwości używania teleportów, łodzi itp.).
– imię bohatera
heroName
współrzędne celu
x, y –
floorID –
numer poziomu (domyślnie -1, co oznacza poziom, na którym bohater się znajduje)
GetAllNames
GetAllNames – podaje listę zawierającą obiekty na mapie
Składnia
GetAllNames(filter = 0);
Opis
Funkcja zwraca ciąg zawierający listę wszystkich obiektów znajdujących się na mapie. Nazwy są
rozdzielone spacjami.
Parametr filter pustala typ obiektów, których nazwy zostaną wymienione. Możliwe wartości
parametru filter:
•0
– imiona bohaterów aktywnych graczy
OpenCircleFog
OpenCircleFog – usuwa mgłę wojny z wybranego obszaru
Składnia
OpenCircleFog(x, y, floorID, range, playerID);
Opis
Ta funkcja usuwa dla gracza mgłę wojny na poziomie floorID, na obszarze o kształcie koła o
środku w punkcie (x, y) i promieniu range.
– identyfikator gracza
player
– współrzędne środka koła
x, y
– numer poziomu
floorID
– promień koła
range
OpenRegionFog
OpenRegionFog – usuwa mgłę wojny z konkretnego regionu
Składnia
OpenRegionFog(player, regionName);
Opis
Funkcja usuwa dla gracza mgłę wojny na obszarze wymienionego regionu.
player
– identyfikator gracza
regionName
– nazwa regionu
Play2DSound
Play2DSound – odtwarza dźwięk 2D
Składnia
Play2DSound(soundName);
Opis
Odtwarza dźwięk 2D o danej nazwie.
Jeśli dźwięk jest ustawiony na odtwarzanie cykliczne, funkcja zwraca identyfikator dźwięku, który
może zostać przesłany do funkcji StopPlaySound, która zatrzyma jego odtwarzanie
Jeśli dźwięk nie jest odtwarzany cyklicznie, funkcja zwraca -1.
soundName
– nazwa dźwięku
Play3DSound
Play3DSound – odtwarza dźwięk 3D
Składnia
Play3DSound(soundName, x, y, floor);
Opis
Odtwarza dźwięk 3D o podanej nazwie. Źródłem dźwięku jest pole o współrzędnych x и y, na
poziomie floor.
Jeśli dźwięk jest ustawiony na odtwarzanie cykliczne, funkcja zwraca identyfikator dźwięku, który
może zostać przesłany do funkcji StopPlaySound, która zatrzyma jego odtwarzanie
Jeśli dźwięk nie jest odtwarzany cyklicznie, funkcja zwraca -1.
soundName – nazwa dźwięku
PlayObjectAnimation
PlayObjectAnimation – odtwarza animację na obiekcie
Składnia
PlayObjectAnimation(objectName, animName, action);
Opis
Odtwarza animację animName na wskazanym obiekcie.
Parametr action określa jak animacja ma być odtwarzana. W grze istnieją następujące typy
animacji:
– (specjalne) obiekt staje się niewidoczny
INVISIBLE
random
random – losuje liczbę
Składnia
random(top);
Opis
Funkcja zwraca losową liczbę z przedziału od zera do top – 1. Argument funkcji musi być liczbą
całkowitą nieujemną.
RazeTown
RazeTown – niszczy miasto na mapie
Składnia
RazeTown(townName);
Opis
Usuwa podane miasto z mapy i zastępuje je obiektem statycznym – zniszczonym miastem. Obiekt
zastępujący jest określany w polu razed w AdvMapTownShared. Jeśli to pole jest puste, miasto nie
może zostać zniszczone. Ilość pól obiektu zastępującego musi być taka sama jak obiektu
oryginalnego. Zniszczone miasto, tak samo jak inne statyczne obiekty, nie może mieć pól
interaktywnych.
townName
– nazwa miasta
RegionToPoint
RegionToPoint – określa współrzędne i numer poziomu punktowego regionu
Składnia
RegionToPoint(regionName);
Opis
Funkcja zwraca współrzędne X i Y, oraz numer poziomu, na którym znajduje się region o obszarze
jednego pola. Jeśli nie zostanie podany region punktowy, zostanie wygenerowany błąd.
regionName
– nazwa regionu
RemoveArtefact
RemoveArtefact – usuwa jeden z artefaktów bohatera
Składnia
RemoveArtefact(heroname, artefactID);
Opis
Usuwa artefakt artefactID należący do bohatera heroname.
artefactID –
numer artefaktu od 0 do 55, lub stała z listy
Błąd
• jeśli nie ma bohatera o imieniu heroname (IsHeroAlive(heroname) zwraca nil/false)
• jeśli bohater nie ma takiego artefaktu (advmap.HasArtefact(heroName,artefactID)
zwraca nil/false)
RemoveHeroCreatures
RemoveHeroCreatures – usuwa istoty z armii bohatera
Składnia
RemoveHeroCreatures(heroname, creatureID, quantity);
Opis
Usuwa istoty o identyfikatorze creatureID w ilości quantity oz armii bohatera o imieniu
heroname. Jeśli ilość istot danego typu w armii jest mniejsza od liczby podanej, wszystkie tego
typu istoty zostaną usunięte. Jeśli w armii nie ma innych istot poza tymi do usunięcia, komenda
usunie je wszystkie poza jedną.
heroname
– imię bohatera.
Komenda działa również w przypadku bohaterów nieaktywnych (w tawernach, więzieniach, itp.)
Tylko stworzenia mogą zostać usunięte. Nie można usunąć machin wojennych.
creatureID –
quantity –
identyfikator stworzenia
ilość stworzeń
RemoveHeroWarMachine
RemoveHeroWarMachine – usuwa machinę wojenną bohatera
Składnia
RemoveHeroWarMachine(heroName, warMachineType);
Opis
Funkcja próbuje usunąć jedną z machin wojennych bohatera. Jeśli bohater nie ma takiej machiny,
lub niemożliwe jest jej usunięcie, funkcja zwraca wartość nil, inaczej zwraca not nil.
heroName
– imię bohatera
warMachineID –
typ machiny wojennej
NB: Bohater zawsze posiada katapultę i nie może ona zostać usunięta.
RemoveObject
RemoveObject – usuwa obiekt z mapy.
Składnia
RemoveObject(objectName);
Opis
Funkcja usuwa z mapy obiekt o konkretnej nazwie.
objectName
– nazwa obiektu
RemoveObjectCreatures
RemoveObjectCreatures – usuwa stworzenia z armii obiektu
Składnia
RemoveObjectCreatures(objectName, creatureID, quantity);
Opis
Usuwa stworzenia typu creatureID w ilości quantity z armii obiektu objectName. Jeśli liczba
stworzeń w armii jest mniejsza od podanej w parametrze quantity, wszystkie takie stworzenia
zostaną usunięte. Komendę można zastosować do wszystkich obiektów posiadających armie
(włączając w to potwory i bohaterów). Jeśli obiektem jest bohater i nie posiada innych stworzeń
poza tymi do usunięcia, komenda usuwa wszystkie z nich oprócz jednego. Jeśli obiektem jest
potwór i wszystkie stworzenia zostaną usunięte, potwór zostanie usunięty z mapy.
objectName
– nazwa obiektu
creatureID –
quantity –
typ stworzenia
ilość stworzeń
Tylko stworzenia mogą zostać usunięte. Nie można usunąć machin wojennych.
ResetHeroCombatScript
ResetHeroCombatScript – resetuje skrypt, który został uruchomiony podczas walki z bohaterem
Składnia
ResetHeroCombatScript(heroName);
Opis
Funkcja mówi, że żaden skrypt nie może zostać uruchomiony podczas zwalczania bohatera. Jeśli
walka toczy się w miejscu gdzie jest ustalony inny skrypt walki (miasto, garnizon, itp.), to ten
skrypt zostanie uruchomiony.
heroName
– imię bohatera
ResetObjectFlashlight
ResetObjectFlashlight – usuwa źródło światła punktowego z mapy
Składnia
ResetObjectFlashlight(objectName);
Opis
Komenda usuwa dodatkowe źródło światła, dodane przez komendę SetObjectFlashlight, z
podanego obiektu.
objectName
– nazwa obiektu.
SetAIHeroAttractor
SetAIHeroAttractor – ustawia cel dla konkretnego bohatera SI
Składnia
SetAIHeroAttractor(objectName, heroName, priority);
Opis
Funkcja modyfikuje priorytet siedziby dla konkretnego bohatera SI.
NB: Modyfikacja oceny może zostać usunięta jeśli zostanie ustawiony priorytet 0.
NB: Funkcja działa prawidłowo tylko dla obiektów niemobilnych.
objectName
– nazwa obiektu
heroName
– imię bohatera
priority
– priorytet celu (przedział od -1 do 2).
-1 – priorytet znacznie obniżony.
0 – priorytet niezmieniony
1 – priorytet znacznie zwiększony. Jednak SI nie będzie ryzykować swoich bohaterów dla zdobycia
tej siedziby.
2 – priorytet równy zwycięstwu. SI będzie ignorować wszystkie niebezpieczeństwa związane z
zajęciem tej siedziby.
SetAIPlayerAttractor
SetAIPlayerAttractor – ustawia cel dla wszystkich bohaterów SI
Składnia
SetAIPlayerAttractor(objectName, playerID, priority);
Opis
Funkcja ustawia ocenę siedziby dla wszystkich bohaterów konkretnego gracza komputerowego.
NB: Modyfikacja oceny może zostać usunięta jeśli zostanie ustawiony priorytet 0.
NB: Funkcja działa prawidłowo tylko dla obiektów niemobilnych
objectName
playerID
– nazwa obiektu
– identyfikator gracza
priority –
priorytet celu (przedział od -1 do 2).
-1 – priorytet znacznie obniżony.
0 – priorytet niezmieniony
1 – priorytet znacznie zwiększony. Jednak SI nie będzie ryzykować swoich bohaterów dla zdobycia
tej siedziby.
2 – priorytet równy zwycięstwu. SI będzie ignorować wszystkie niebezpieczeństwa związane z
zajęciem tej siedziby.
SetCombatLight
SetCombatLight – modyfikuje oświetlenie wszystkich pól walki
Składnia
SetCombatLight(lightName);
Opis
Funkcja zmienia światło otoczenia wszystkich aren walki na podane w parametrach komendy.
– odwołanie do źródła światła w bazie zasobów
lightName
SetHeroCombatScript
SetHeroCombatScript – mówi jaki skrypt ba być uruchomiony podczas walki z bohaterem
Składnia
SetHeroCombatScript(heroName, scriptName);
Opis
Funkcja mówi jaki skrypt ma być uruchomiony podczas walki z bohaterem. Skrypt można
uruchomić tylko w przypadku bohaterów SI i tylko jeśli nie ma innego skryptu przypisanego do
miejsca, w którym toczy się walka (miasto, garnizon, itp.). Skrypt jest automatycznie resetowany
jeśli gracz straci bohatera.
heroName
– imię bohatera
scriptName
– odwołanie do skryptu
SetHeroLootable
SetHeroLootable – ustawia możliwość rabowania artefaktów bohatera po jego pokonaniu.
Składnia
SetHeroLootable(heroName, enable);
Opis
Parametr enable ustala czy artefakty bohatera zostaną przekazane zwycięzcy (not nil) czy
pozostaną z pokonanym bohaterem (nil).
heroName
enable
– imię bohatera
– parametr ustalający przekazywanie artefaktów po walce
SetAmbientLight
SetAmbientLight – zmienia oświetlenie otoczenia na wskazanym poziomie
Składnia
SetAmbientLight(floorID, lightName, fade = false , time = 1);
Opis
Funkcja ustawia nowe źródło oświetlenia na podanym poziomie mapy. Lista dostępnych źródeł
światła jest wymieniona w opisie mapy.
floorID –
numer poziomu, na którym ma być zmienione oświetlenie
nazwa źródła oświetlenia
lightName –
– parametr ustalający czy światło ma być zmieniane stopniowo (fade = true) czy
natychmiastowo (fade = false) (stare i nowe oświetlenie muszą różnić się tylko kolorem)
fade
time
– jak długo światło będzie się zmieniało
SetObjectEnabled
SetObjectEnabled – włącza lub wyłącza standardowy tryb interakcji obiektu z bohaterem
Składnia
SetObjectEnabled(objectName, enable);
Opis
Komenda pozwala na włączanie i wyłączanie standardowego zachowania obiektów interaktywnych.
Domyślnie obiekt zajmuje się standardowo. Jeśli funkcja zostanie wywołana z parametrem enable
równym false, gdy bohater podejdzie do obiektu nic się nie stanie tylko wywołana zostanie
funkcja wyzwalacza, jeśli taka funkcja została ustalona.
objectName –
enable
nazwa obiektu interaktywnego
– parametr określający czy obiekt ma się zachowywać standardowo, czy nie
SetObjectiveProgress
SetObjectiveProgress – ustawia postęp celu misji
Składnia
SetObjectiveProgress(objectiveName, step, playerID = PLAYER_1);
Opis
Funkcja ustawia postęp celu objectiveName. Dla celów zwykłych parametr playerID określa dla
którego gracza postęp ma być ustawiany (jeśli parametr nie jest podany, ustawiany jest postęp
gracza pierwszego). W przypadku celów zależnych od gracza parametr playerID jest ignorowany.
Postęp może być ustawiany tylko dla celów kontrolowanych ręcznie. Ilość kroków postępu w
ręcznie kontrolowanych celach zależy od liczby komentarzy postępu ustawionych w edytorze.
objectiveName –
nazwa celu
– krok postępu
step
identyfikator gracza, dla którego postęp ma być ustawiany (dla celów zaleznych od
gracza, parametr jest ignorowany i domyślnie odnosi się do PLAYER_1).
playerID –
SetObjectiveState
SetObjectiveState – zmienia status celu
Składnia
SetObjectiveState(objectiveName, state, playerID = PLAYER_1);
Opis
Funkcja zmienia status celu objectiveName dla podanego gracza. W przypadku celów zależnych
od gracza parametr playerID jest ignorowany. Dla zwykłych celów, parametr playerID oznacza
gracza, dla którego status celu ma być zmieniony; inaczej zmieniony zostaje status dla pierwszego
gracza.
objectiveName –
state
nazwa celu
– status jaki ma zostać ustawiony
identyfikator gracza dla którego status będzie zmieniany (dla celów zależnych od
gracza, parametr jest ignorowany, domyślnie oznacza gracza PLAYER_1).
playerID –
Tabela dozwolonych zmian:
OBJECTIVE_SCENARIO_INFO -> brak (zadanie jest w rzeczywistości opisem
scenariusza)OOBJECTIVE_UNKNOWN -> OBJECTIVE_ACTIVE (jeśli aktywacja celu nie zależy od
ukończenia innych celów) oraz OBJECTIVE_FAILED (jeśli cel oznaczony jako kontrolowany
ręcznie).
OBJECTIVE_ACTIVE -> OBJECTIVE_COMPLETED, OBJECTIVE_FAILED
(jeśli cel oznaczony jako
kontrolowany ręcznie).
-> OBJECTIVE_ACTIVE oraz OBJECTIVE_FAILED (jeśli cel jest oznaczony
jako taki co może stracić status ukończenia i jest oznaczony jako kontrolowany ręcznie) .
OBJECTIVE_COMPLETED
OBJECTIVE_FAILED
-> brak
NB: Jeśli cel zostaje ustawiony jako OBJECTIVE_ACTIVE, staje sie automatycznie widzialny dla
gracza (zajrzyj do funkcji IsObjectiveVisible / SetObjectiveVisible).
SetObjectiveVisible
SetObjectiveVisible – pokazuje lub ukrywa cel na interfejsie podanego gracza
Składnia
SetObjectiveVisible(objectiveName, enable, playerID = PLAYER_1);
Opis
Cel objectiveName zostanie pokazany na interfejsie gracza jeśli parametr enable wynosi true,
lub zostanie ukryty jeśli parametr wynosi false. Dla celów zależnych od gracza parametr
playerID jest ignorowany. W przypadku celów zwykłych parametr playerID określa gracza, dla
którego wyświetlanie celu będzie ustawiane; domyślnie oznacza gracza pierwszego.
ObjectiveName
– nazwa celu
identyfikator gracza (dla celów zależnych od gracza parametr jest ignorowany,
domyślnie oznacza gracza PLAYER_1).
playerID –
SetObjectFlashlight
SetObjectFlashlight – dodaje do obiektu źródło światła punktowego
Składnia
SetObjectFlashlight(objectName, lightName);
Opis
Komenda dołącza dodatkowe punktowe źródło światła do wybranego obiektu. Lista źródeł światłą
jakie można wykorzystać znajduje się we właściwościach mapy (pole resources->pointLights).
– nazwa obiektu.
objectName
– nazwa źródła światła (wymienione we właściwościach mapy)
lightName
SetObjectOwner
SetObjectOwner – zmień przynależność podanego obiektu
Składnia
SetObjectOwner(objectName, playerID);
Opis
Komenda zmienia przynależność obiektu. Może zostać zastosowana tylko do obiektów statycznych
mogących mieć właściciela i bohaterów. Jeśli bohater był w rezerwie, zostanie z niej usunięty.
Bohaterowie nie mogą być neutralni.
objectName
playerID
– nazwa obiektu
– identyfikator gracza, który będzie nowym właścicielem
SetObjectPosition
SetObjectPosition – przenosi obiekt
Składnia
SetObjectPosition(objectName, x, y, floor = -1);
Opis
Funkcja natychmiastowo przenosi obiekt w podane miejsce. Jeśli parametr floor pnie jest podany,
zostanie użyty aktualny poziom, na którym obiekt się znajduje. Tylko mobilne obiekty mogą zostać
przeniesione. Jeśli pozycja docelowa jest nieosiągalna, zajmowana przez inny obiekt, lub jest polem
interaktywnym innego obiektu, funkcja generuje błąd.
objectName
– nazwa obiektu
współrzędne celu
x, y –
– numer poziomu (domyślnie -1, co oznacza 'ten sam')
floor
SetPlayerResource
GetPlayerResource – ustawia ilość podanego zasobu gracza.
Składnia
SetPlayerResource(player, resourceKind, quantity);
Opis
Ustawia nową ilość zasobu resourceKind dla player.
– numer gracza od 1 do 8. Zamiast liczb można użyć stałych globalnych od PLAYER_1
do PLAYER_8.
player
resourceKind – liczba od 0
SULFUR, GEM, lub GOLD.
quantity
do 6, lub jedna ze stałych: WOOD, ORE, MERCURY, CRYSTAL,
ilość, nie może być ujemna.
Komenda działa zarówno dla graczy aktywnych jak i przegranych. Zmiana ilości zasobów gracza,
który nie bierze udziału w rozgrywce jest błędem.
Błąd
• Jeśli argumenty nie są dopuszczalnymi wartościami;
• jeśli podany gracz nie bierze udziału w grze
SetPlayerStartResources
GetPlayerResource – ustawia początkową ilość zasobów dla podanego gracza
Składnia
SetPlayerStartResources(player, wood, ore, mercury, crystal, sulfur, gem, gold);
Opis
Ustawia nową początkową ilość zasobów typu resourceKind dla gracza player.
numer gracza od 1 do 8. Zamiast liczb można użyć stałych globalnych PLAYER_1
do PLAYER_8.
Player -
wood, ore, mercury, crystal, sulfur, gem, gold
– ilości zasobów, nie mogą być niższe od zera.
Komenda daje taki sam efekt jak wywoływanie funkcji SetPlayerResource dla każdego zasobu,poza
efektem na panelu wyników misji.
Komenda działa zarówno dla graczy aktywnych jak i przegranych. Zmiana ilości zasobów gracza,
który nie bierze aktualnie udziału w rozgrywce jest błędem.
Błąd
• Jeśli argumenty nie są dopuszczalnymi wartościami;
• jeśli podany gracz nie bierze udziału w grze
SetRegionBlocked
SetRegionBlocked – włącza lub wyłącza blokadę regionu dla ruchu bohaterów
Składnia
SetRegionBlocked(regionName, status, playerID = -1);
Opis
Funkcja blokuje lub odblokowuje region dla ruchu bohaterów konkretnego gracza, w zależności od
parametru status. Jeśli parametr playerID jest podany, region będzie blokowany tylko dla tego
gracza; jeśli nie jest, będzie zablokowany dla wszystkich graczy.
regionName
status
– nazwa regionu
– ustawienie blokady regionu
playerID
– identyfikator gracza (domyślnie -1, co oznacza wszystkich graczy)
SetTownBuildingLimitLevel
SetTownBuildingLimitLevel – ustawia limit poziomu budynku w mieście
Składnia
SetTownBuildingLimitLevel(townName, buildingID, limit);
Opis
Funkcja ustawia limit poziomu danego budynku w mieście. Level 0 oznacza, że budynek nie może
być wzniesiony. Ustalony limit nie może być niższy od aktualnego poziomu budynku.
townName –
nazwa miasta
identyfikator budynku (zajrzyj do opisu funkcji GetTownBuildingLevel, tam
lista możliwych wartości)
buildingID –
limit
– limit poziomu budynku w mieście
SetWarfogBehaviour
SetWarfogBehaviour – włącza lub wyłącza usuwania mgły wojny przez bohaterów
Składnia
SetWarfogBehaviour(onLand, onSea);
Opis
onLand(1/0)
– czy bohater będzie usuwał mgłę wojny poruszając się po lądzie (on land).
onSea(1/0) –
czy bohater będzie usuwał mgłę wojny poruszając się po morzu (on sea).
ShowFlyingSign
ShowFlyingSign – pokazuje wiadomość odlatującą od obiektu
Składnia
ShowFlyingSign(messageName, objectName, targetPlayerID = -1 , time = 1.0);
Opis
Funkcja wyświetla wiadomość odlatującą od obiektu o nazwie objectName. Wiadomość jest podaje
się zgodnie nazwą zasobu w bazie (messageName). Wiadomości mogą być wyświetlone dla jednego
gracza lub dla wszystkich. Aby pokazać wiadomość tylko jednemu graczowi, parametr
targetPlayerID musi zawierać identyfikator gracza, natomiast aby ją pokazać wszystkim, musi
wynosić -1. Wiadomość będzie wyświetlona przez czas time (domyślnie jedna sekunda).
nazwa wiadomości w bazie zasobów
messageName –
objectName
– nazwa obiektu, nad którym ma być wyświetlona wiadomość
targetPlayerID
time
– identyfikator gracza, który zobaczy wiadomość (-1 dla wszystkich graczy)
– czas przez jaki wiadomość będzie wyświetlana
SiegeTown
SiegeTown – rozpoczyna oblężenie miasta
Składnia
SiegeTown(heroName, townName, arenaName = "");
Opis
Funkcja inicjuje oblężenie miasta townName przez bohatera heroName; można podać nazwę
miasta na mapie lub odniesienie do opisu miasta w bazie zasobów. W obu przypadkach walka
będzie się toczyć jak każde inne oblężenie miasta, dzieje się tak przy użyciu informacji takich jak
garnizon miasta, pozycja bohatera w nim, skrypt walki miasta, itd. Parametr arenaName pozwala
zastąpić standardową arenę walki, każdą inną.
– imię bohatera dla którego rozpocznie się walka
heroName
– nazwa miasta, która może być zarówno nazwą miasta na mapie jak i odniesieniem do
opisu miasta w bazie zasobów.
townName
– odniesienie do zasobów areny, na której walka będzie się toczyła ("" domyślnie, co
oznacza walkę na standardowej arenie miasta)
arenaName
StartCombat
StartCombat – rozpoczyna walkę z podanymi parametrami
Składnia
StartCombat(heroName,
enemyHeroName,
enemyHeroName,
creaturesCount,
creatureType[1],
creatureAmount[1],
...,
creatureType[Count],
creatureAmount[Count],
combatScriptName,
combatFinishTrigger,
arenaName,
allowQuickCombat);
Opis
Rozpoczyna walkę dla bohatera heroName, przeciwko podanej ilości stworzeń i bohaterowi (jeśli
taki został podany). Aktualna armia wrogiego bohatera jest ignorowana. Możliwe jest stworzenie
skryptu, który uruchomi się na początku walki. Oczywiście możliwe jest też ustawienie funkcji, na
jej koniec, jako jej argumenty można podać imię bohatera dla którego walka się rozpoczęła i wyniki
walki.
heroName –
imię bohatera, dla którego będzie rozpoczęta walka
– imię wrogiego bohatera (nil – żaden, walka będzie się toczyć tylko przeciwko
enemyHeroName
stworom)
creaturesCount
– ilość stworzeń
Po parametrze creaturesCount muszą się pojawić:
creatureType
– typ stworzeń
creatureAmount
– liczba stworzeń tego typu
– nazwa skryptu jaki ma być uruchomiony na początku walki (domyślnie nil,
co oznacza bez skryptu)
combatScriptName
– nazwa funkcji (skrypt mapy), która zostanie uruchomiona na końcu
walki. Funkcja musi posiadać dwa parametry: nazwa walczącego bohatera i wyniki walki (nil –
jeśli bohater przegrał i not nil – jeśli wygrał).
combatFinishTrigger
– odniesienie do areny, na której będzie się toczyła bitwa (domyślnie nil, co oznacza,
że arena będzie dobrana do terenu, na którym stoi bohater)
arenaName
– jeśli not nil, walka będzie się toczyć w trybie szybkiej walki (Quick
Combat) w przypadku gdy taki tryb jest włączony w opcjach gry a bohater heroName nie ma
wyłączonej opcji szybkiej walki (domyślnie nil by default, co oznacza normalną walkę)
allowQuickCombat
StartCutScene
StartCutScene – włącza przerywnik
Składnia
StartDialogScene(cutSceneName, callback = "" , saveName = "");
Opis
Funkcja uruchamia podany przerywnik.
cutSceneName – odwołanie do przerywnika w bazie zasobów
callback –
nazwa funkcji jak ma być uruchomiona po odtworzeniu przerywnika
– nazwa pliku save (zobacz opis funkcji Save) jaki ma być utworzony przed
przerywnikiem
saveName
StartDialogScene
StartDialogScene – odtwarza scenę dialogową
Składnia
StartDialogScene(dialogSceneName, callback = "" , saveName = "");
Opis
Funkcja odtwarza podaną scenę dialogową.
dialogSceneName
– odwołanie do przerywnika w bazie zasobów
callback –
nazwa funkcji jaka zostanie wywołana po odtworzeniu sceny dialogowej
saveName –
nazwa pliku save (zobacz opis funkcji Save) jaki ma zostać utworzony przed sceną
dialogową
Przykład 1. Przykład:
StartDialogScene("/DialogScenes/C6/M4/C1/DialogScene.xdb#xpointer(/DialogScene)")
StopPlaySound
StopPlaySound – zatrzymuje odtwarzanie dźwięku
Składnia
StopPlaySound(loopingSoundID);
Opis
Ta funkcja zatrzymuje odtwarzanie zapętlonego dźwięku.
– identyfikator dźwięku, zwracany przez funkcje Play2DSound / Play3DSound
dla dźwięków zapętlonych
loopingSoundID
TeachHeroSpell
TeachHeroSpell – daje bohaterowi podany czar
Składnia
TeachHeroSpell(heroName, spell);
Opis
Funkcja stara się dać czar bohaterowi. Jesli bohater zna czar, funkcja zwraca wartość nil, w
przeciwnym przypadku zwraca not nil.
heroName
spell
– imię bohatera
– identyfikator zaklęcia
TransformTown
TransformTown – zmienia typ miasta na mapie
Składnia
TransformTown(townName, type);
Opis
Funkcja zmienia typ miasta na podane(Wszystkie informacje, poza nazwą miasta i jego
właścicielem, zostaną stracone).
townName –
nazwa miasta
type
– nowy typ miasta; może przybrać jedną z poniższych wartości:
TOWN_HEAVEN,
TOWN_PRESERVE,
TOWN_ACEDEMY,
TOWN_DUNGEON,
TOWN_NECROMANCY,
TOWN_INFERNO.
Trigger
Trigger – włącza lub wyłącza obsługę funkcji, które działają ze zdarzeniami w grze
Składnia
Trigger(triggerType, ..., functionName);
Opis
Jeśli parametr functionName jest różny od nil, funkcja łączy procedurę obsługi z tą nazwą z
konkretnym zdarzeniem w grze. W przeciwnym wypadku funkcja usuwa obsługę tego zdarzenia.
Do każdego zdarzenia można przypisać tylko jedną funkcję obsługi. Przypisywanie innej funkcji do
zdarzenia które posiada już obsługę, spowoduje usunięcie istniejącej funkcji..
triggerType
– typ zdarzenia w grze; może przybrać jedną z poniższych wartości:
NEW_DAY_TRIGGER
– początek nowego dnia
– bohater wchodzi w mgłę wojny (zachowanie mgły wojny jest
kontrolowane przez funkcję SetWarfogBehaviour)
WAR_FOG_ENTER_TRIGGER
– gracz ma nowego bohatera
PLAYER_ADD_HERO_TRIGGER
PLAYER_REMOVE_HERO_TRIGGER
– bohater stracił bohatera
– status celu się zmienił
OBJECTIVE_STATE_CHANGE_TRIGGER
OBJECT_CAPTURE_TRIGGER
OBJECT_TOUCH_TRIGGER
– obiekt został zdobyty
– interaktywny obiekt oddziałuje z
TOWN_HERO_DEPLOY_TRIGGER
– bohater opuszcza miasto
REGION_ENTER_AND_STOP_TRIGGER
– bohater wchodzi w region (musi w nim pozostać)
REGION_ENTER_WITHOUT_STOP_TRIGGER
– bohater wchodzi w region (nie musi w nim
pozostawać)
HERO_LEVELUP_TRIGGER
– bohater zdobywa poziom
W zależności od typu zdarzenia, funkcja obsługi może posiadać jeden lub więcej parametrów.
Liczba i znaczenie parametrów zależy od typu zdarzenia:
dla NEW_DAY_TRIGGER – brak
dla PLAYER_ADD_HERO_TRIGGER oraz PLAYER_REMOVE_HERO_TRIGGER – identyfikator gracza
dla OBJECTIVE_STATE_CHANGE_TRIGGER – nazwa celu
dla OBJECT_CAPTURE_TRIGGER oraz OBJECT_TOUCH_TRIGGER – nazwa obiektu na mapie
dla TOWN_HERO_DEPLOY_TRIGGER – nazwa miasta
dla REGION_ENTER_AND_STOP_TRIGGER oraz REGION_ENTER_WITHOUT_STOP_TRIGGER – nazwa
regionu
dla HERO_LEVELUP_TRIGGER – imię bohatera
functionName
– nazwa funkcji obsługi
Gdy działa wyzwalacz, do funkcji obsługi wysyłane są następujące parametry:
NEW_DAY_TRIGGER –
brak
WAR_FOG_ENTER_TRIGGER –
imię bohatera
PLAYER_ADD_HERO_TRIGGER
– imię bohatera
PLAYER_REMOVE_HERO_TRIGGER
– imię bohatera oraz imię bohatera, który go pokonał (nil – if
jeśli bohater został zwolniony)
– identyfikator gracza, którego cel zmienił status
OBJECTIVE_STATE_CHANGE_TRIGGER
OBJECT_CAPTURE_TRIGGER – stary właściciel obiektu, nowy właściciel obiektu, imię
bohatera, który go przejął oraz nazwa samego obiektu
OBJECT_TOUCH_TRIGGER –
imię bohatera i nazwa obiektu
TOWN_HERO_DEPLOY_TRIGGER
– imię bohatera
REGION_ENTER_AND_STOP_TRIGGER
HERO_LEVELUP_TRIGGER
– brak
и REGION_ENTER_WITHOUT_STOP_TRIGGER – imię bohatera
UnblockGame
UnblockGame – odblokowuje interfejs użytkownika i działanie SI
Składnia
UnblockGame(void);
Opis
Komenda odblokowuje interfejs użytkownika, pracę SI oraz pracę kamery, jeśli zostały
zablokowane komendą BlockGame.
UnreserveHero
UnreserveHero – zarezerwowany bohater staje się dostępny dla wszystkich graczy
Składnia
UnreserveHero(heroName);
Opis
Bohater zostaje usunięty z rezerwy konkretnego gracza i możliwe jest jego wynajęcie w tawernie na
początku tygodnia.
NB: Jeśli bohater żyje gdy funkcja jest wywoływana, zostaje usunięty z listy jednak nie zostaje
usunięty z listy bohaterów kontrolowanych przez gracza. Taki bohater może staćsiędostępny dla
innych graczy w taki sam sposób jak inni bohaterowie należący do kogoś (czyli: jeśli zginie,
ucieknie z pola walki i nie zostanie zatrudniony przed końcem tygodnia, zostanie zwolniony, itp.).
Jeśli jednak bohater jest martwy podczas wywoływania funkcji, staje się natychmiastowo dostępny
dla innych graczy, oprócz tego, do którego należał wcześniej.
heroName –
imię bohatera zarezerwowanego dla gracza.
Win
Win – ludzki gracz wygrywa grę
Składnia
Win(void);
Opis
Funkcja powinna być używana tylko w trybie dla pojedynczego gracza. Generuje błąd gdy jest
wywoływana w grach dla wielu graczy. Po wywołaniu funkcji, ludzki gracz natychmiastowo
wygrywa, natomiast wszyscy gracze komputerowi przegrywają.
WALKA
Prepare
Prepare – przygotowanie do walki
Składnia
Prepare(void);
Opis
Funkcja jest wywoływana przed ustawianiem jednostek na polu walki przez graczy. Ustawianie
armii rozpocznie się dopiero po skończeniu pracy przez tę funkcję.
Start
Start – rozpoczęcie walki
Składnia
Start(void);
Opis
Funkcja jest wywoływana tuż po ustawieniu wojsk na polu bitwy przez graczy i tuż przed
rozpoczęciem walki. Walka rozpocznie się dopiero po zakończeniu pracy przez tę funkcję.
IsHuman
IsHuman – sprawdza czy w danej grupie znajduje się ludzki gracz
Składnia
IsHuman(side);
Opis
Funkcja zwraca wartość not nil jeśli podana grupa, biorąca udział w grze należy do człowieka
(niezależnie od tego czy człowiek kontroluje całą grupę, czy są pod automatyczną kontrolą), oraz
nil jeśli nie należy.
side
– numer grupy, może być to ATTACKER lub DEFENDER.
IsComputer
IsComputer – sprawdza czy w danej grupie jest gracz komputerowy
Składnia
IsComputer(side);
Opis
Funkcja zwraca wartość not nil jeśli podana grupa, biorąca udział w grze, należy do SI, oraz
wartość nil jeśli nie należy.
side –
numer grupy, może być to ATTACKER lub DEFENDER.
SetControlMode
SetControlMode – ustawia tryb kontroli walki dla gracza ludzkiego
Składnia
SetControlMode(side, mode);
Opis
Komenda włącza lub wyłącza tryb automatycznej walki oraz włącza i wyłącza możliwość
przełączenia tego trybu przez gracza ludzkiego. Podana grupa musi być kontrolowana przez gracza
ludzkiego.
side –
mode
numer grupy, może być to ATTACKER lub DEFENDER.
– numer trybu; w zależności o tego następuje odpowiednia akcja:
MODE_NORMAL
– status automatycznej walki niezmieniony, jego blokada wyłączona.
MODE_MANUAL
– tryb automatycznej walki wyłączony, możliwość przełączenia przez gracza
wyłączona.
– tryb automatycznej walki włączony, możliwość przełączenia przez gracza wyłączona.
MODE_AUTO
EnableAutoFinish
EnableAutoFinish – włącza lub wyłącza standardowy mechanizm sprawdzania wyników walki
Składnia
EnableAutoFinish(enable);
Opis
Wysłany parametr do komendy decyduje o tym, czy walka zakończy się jeśli jeden z graczy nie
będzie miał więcej wojsk. Jeśli parametr wynosi nil, walka nie zostanie zakończona. Domyślnie
ten tryb jest włączony.
Finish
Finish – kończy walkę
Składnia
Finish(winnerSide);
Opis
Komenda kończy walkę, a grupa winnerSide jest zwycięzcą.
winnerSide
– grupa, która wygrywa walkę, może być to ATTACKER lub DEFENDER.
GetAttackerHero
GetAttackerHero – zwraca bohatera atakującej grupy
Składnia
GetAttackerHero(void);
Opis
Funkcja zwraca imię atakującego bohatera, lub wartość nil jeśli nie ma takiego bohatera.
GetAttackerCreatures
GetAttackerCreatures – zwraca stworzenia atakującej grupy
Składnia
GetAttackerCreatures(void);
Opis
Ta funkcja zwraca tablicę nazw stworzeń atakującej grupy.
GetAttackerWarMachines
GetAttackerWarMachines – zwraca machiny wojenne atakującej grupy
Składnia
GetAttackerWarMachines(void);
Opis
Funkcja zwraca tablicę nazw machin wojennych atakującej grupy.
GetAttackerWarMachine
GetAttackerWarMachine – zwraca machinę wojenną konkretnego typu należącą do atakującej
grupy
Składnia
GetAttackerWarMachine(type);
Opis
Funkcja zwraca nazwę machiny wojennej danego typu, należącą do atakującej grupy, lub wartość
nil jeśli nie istnieje.
type
– typ machiny wojennej; może przybrać jedną z wartości:
WAR_MACHINE_BALLISTA
– balista
WAR_MACHINE_CATAPULT
– katapulta
WAR_MACHINE_FIRST_AID_TENT
WAR_MACHINE_AMMO_CART
– namiot pierwszej pomocy
– wóz z amunicją
GetDefenderHero
GetDefenderHero – zwraca bohatera broniącej się grupy
Składnia
GetDefenderHero(void);
Opis
Funkcja zwraca imię broniącego się bohatera, lub wartość nil jeśli nie ma takiego bohatera.
GetDefenderCreatures
GetDefenderCreatures – zwraca stworzenia broniącej się grupy
Składnia
GetDefenderCreatures(void);
Opis
Ta funkcja zwraca tablicę nazw stworzeń należących do broniącej się grupy.
GetDefenderWarMachines
GetDefenderWarMachines – zwraca machiny wojenne broniącej się grupy
Składnia
GetDefenderWarMachines(void);
Opis
Funkcja zwraca tablicę nazw machin wojennych, należących do broniącej się grupy.
GetDefenderWarMachine
GetDefenderWarMachine – zwraca machinę wojenną danego typu, należącą do broniącej się grupy
Składnia
GetDefenderWarMachine(type);
Opis
Ta funkcja zwraca nazwę machiny wojennej podanego typu, należącej do broniącej się grupy, lub
wartość nil jeśli taka machina nie istnieje.
type –
typ machiny wojennej; może przybrać jedną z wartości:
WAR_MACHINE_BALLISTA –
balista
WAR_MACHINE_CATAPULT –
katapulta
WAR_MACHINE_FIRST_AID_TENT –
WAR_MACHINE_AMMO_CART –
namiot pierwszej pomocy
wóz z amunicją
GetDefenderBuildings
GetDefenderBuildings – zwraca budynki broniącej się grupy
Składnia
GetDefenderBuildings(void);
Opis
Funkcja zwraca tablicę nazw budynków należących do broniącej się grupy.
GetDefenderBuilding
GetDefenderBuilding – zwraca budynek danego typu, należący do broniącej się grupy
Składnia
GetDefenderBuilding(type);
Opis
Ta funkcja zwraca nazwę budynku podanego typu, należącego do broniącej się grupy, lub wartość
nil jeśli taki nie istnieje.
type
– typ budynku, może przybrać jedną z następujących wartości:
BUILDING_WALL
– mór
BUILDING_GATE
– brama
– lewa wieża
BUILDING_LEFT_TOWER
BUILDING_BIG_TOWER
– główna wieża
BUILDING_RIGHT_TOWER
BUILDING_MOAT
– prawa wieża
– fosa
IsAttacker
IsAttacker – sprawdza czy obiekt należy do atakującej grupy
Składnia
IsAttacker(unitName);
Opis
Funkcja zwraca wartość not nil jeśli obiekt należy do atakującej grupy, lub nil jeśli nie należy.
unitName
– nazwa obiektu
IsDefender
IsDefender – sprawdza czy obiekt należy do broniącej się grupy
Składnia
IsDefender(unitName);
Opis
Funkcja zwraca wartość not nil jeśli obiekt należy do broniącej się grupy, lub nil jeśli nie
należy.
unitName
– nazwa obiektu
IsHero
IsHero – sprawdza czy obiekt jest bohaterem
Składnia
IsHero(unitName);
Opis
Funkcja zwraca wartość not nil jeśli obiekt jest bohaterem i wartość nil jeśli nie jest.
unitName – nazwa obiektu
IsCreature
IsCreature – sprawdza czy obiekt jest stworzeniem
Składnia
IsCreature(unitName);
Opis
Funkcja zwraca wartość not nil jeśli obiekt jest stworzeniem i wartość nil jeśli nie jest.
unitName
– nazwa obiektu
IsWarMachine
IsWarMachine – sprawdza czy obiekt jest machiną wojenną
Składnia
IsWarMachine(unitName);
Opis
Funkcja zwraca wartość not nil jeśli obiekt jest machiną wojenną i wartość nil jeśli nie jest.
unitName – nazwa obiektu
IsBuilding
IsBuilding – sprawdza czy obiekt jest budynkiem
Składnia
IsBuilding(unitName);
Opis
Funkcja zwraca wartość not nil jeśli obiekt jest budynkiem i wartość nil jeśli nie jest.
unitName
– nazwa obiektu
GetHeroName
GetHeroName – zwraca imię bohatera
Składnia
GetHeroName(unitName);
Opis
Funkcja zwraca prawdziwe imię bohatera (nie imię w czasie bitwy).
unitName
– nazwa obiektu
GetCreatureType
GetCreatureType – zwraca typ stworzenia
Składnia
GetCreatureType(unitName);
Opis
Funkcja zwraca typ stworzenia.
unitName
– nazwa obiektu
GetCreatureNumber
GetCreatureNumber – zwraca liczbę stworzeń w grupie
Składnia
GetCreatureNumber(unitName);
Opis
Ta funkcja zwraca liczbę stworzeń w grupie.
unitName
– nazwa obiektu
GetWarMachineType
GetWarMachineType – zwraca typ machiny wojennej
Składnia
GetWarMachineType(unitName);
Opis
Funkcja zwraca typ machiny wojennej. Może zwrócić jedną z poniższych wartości:
WAR_MACHINE_BALLISTA –
balista
WAR_MACHINE_CATAPULT –
katapulta
WAR_MACHINE_FIRST_AID_TENT –
WAR_MACHINE_AMMO_CART –
unitName
namiot pierwszej pomocy
wóz z amunicją
– nazwa obiektu
GetBuildingType
GetBuildingType – zwraca typ budynku
Składnia
GetBuildingType(unitName);
Opis
Funkcja zwraca typ budynku. Może zwrócić jedną z poniższych wartości:
BUILDING_WALL –
mór
BUILDING_GATE –
brama
lewa wieża
BUILDING_LEFT_TOWER –
BUILDING_BIG_TOWER –
główna wieża
BUILDING_RIGHT_TOWER –
BUILDING_MOAT –
unitName
fosa
– nazwa obiektu
prawa wieża
GetUnitPosition
GetUnitPosition – zwraca współrzędne obiektu
Składnia
GetUnitPosition(unitName);
Opis
Ta funkcja zwraca współrzędne x oraz y położenia obiektu.
unitName
– nazwa obiektu
AddCreature
AddCreature – dodaje stworzenia podanego typu do jednej z grup
Składnia
AddCreature(side, type, number, x = -1 , y = -1);
Opis
Funkcja dodaje stworzenia typu type w ilości number do grupy side. Jeśli podane są parametry x
oraz y, stworzenie pojawia się na najbliższym polu do (x,y); inaczej pojawią się na arenie w
losowym miejscu. Możliwe jest również podanie tylko jednej ze współrzędnych pola. Stworzenia
dodane przez tę komendę pozostają w armii bohatera po walce (jeśli jest na nie miejsce).
– grupa, dla której zostaną przywołane stworzenia; może przybrać jedną z poniższych
wartości:
side
ATTACKER
– grupa atakująca
DEFENDER
– grupa broniąca się
type
– typ stworzenia
number
x, y
– ilość stworzeń
– współrzędne pola na którym stworzenie ma się pojawić (-1 to współrzędne losowe)
EnableCinematicCamera
EnableCinematicCamera – włącza lub wyłącza dynamiczną kamerę w czasie walki
Składnia
EnableCinematicCamera(enable);
Opis
Funkcja działa prawidłowo tylko podczas aktualnej walki. Kamera może być przełączona w tryb
dynamiczny tylko jeśli pozwalają na to opcje i nie jest zabronione przez skrypt.
SAMOUCZEK
IsTutorialItemEnabled
IsTutorialItemEnabled – sprawdza czy element samouczka zostanie pokazany
Składnia
IsTutorialItemEnabled(name);
Opis
name
– nazwa elementu samouczka
IsTutorialMessageBoxOpen
IsTutorialMessageBoxOpen – sprawdza czy jakiekolwiek okno samouczka jest aktualnie otwarte
Składnia
IsTutorialMessageBoxOpen();
Opis
Funkcja zwraca wartość true jeśli zostało wywołane okno przez funkcję TutorialMessageBox i
jest aktualnie wyświetlone.
TutorialActivateHint
TutorialActivateHint – ustawia wyzwalacz na pojawienie się konkretnego okna, okno to, z tekstem
samouczka, zostanie wyświetlone po uruchomieniu wyzwalacza
Składnia
TutorialActivateHint(stringID);
Opis
Funkcja za pomocą stringID szuka element deskryptora w UIConsts.tutorialOptions.hints. Kiedy
okno wymienione w deskryptorze pojawi się ponownie, inne okno z tekstem (podobne do tego z
funkcji TutorialMessageBox) zostanie pokazane.
TutorialMessageBox
TutorialMessageBox – wyświetla okno z tekstem samouczka
Składnia
TutorialMessageBox(stringID);
Opis
Funkcja za pomocą stringID szuka element deskryptora w UIConsts.tutorialOptions.hints oraz
wyświetla okno z tekstem, do którego odnosi się ten element.
TutorialSetBlink
TutorialSetBlink – włącza lub wyłącza kontrolę podświetlenie elementu
Składnia
TutorialSetBlink(stringID, turnOn);
Opis
Funkcja za pomocą stringID szuka element deskryptora w UIConsts.tutorialOptions.hints oraz
włącza lub wyłącza podświetlenie (w zalezności od wartości turnOn).
MIASTO
HeroHired
HeroHired – bohater jest zatrudniony
Składnia
HeroHired(name);
Opis
Funkcja jest wywoływana gdy gracz zatrudnia bohatera.
CreatureHired
CreatureHired – stworzenie jest zatrudnione
Składnia
CreatureHired(type, number);
Opis
Ta funkcja jest wywoływana gdy gracz wynajmuje wojska.
Tłumaczenie: DaimonFrey
Jeśli zauważyłeś jakieś błędy lub nieścisłości napisz na adres [email protected]

Podobne dokumenty