Im Gegensatz zu anderen Objektpaketen benutzt RdW stark modifizierte Konzepte für Szenarien und Objekte. Daher hab ich hier mal einen kleinen Text geschrieben wo die einzelnen Funktionsmodule, Callbacks, Konstante etc. erklärt werden.
-Missionen:
Eine Besonderheit an RdW ist der Regelwähler welcher auch für feste Missionen nutzbar ist.
Damit dieser erkennt das der Spieler nicht das Spielziel und die Spielregeln ändern darf ist der Szenario-Callback „IsCampaignMission()“ vorhanden. Dieser sollte true zurückgeben wenn die Karte festgelegte Regeln und Spielziele hat.
Wenn der 1. Spieler mit dem Regelwählen fertig ist wird der Callback „ChooserFinished()“ aufgerufen. Dort kann dann z.b. das Spielziel an den Schwierigkeitsgrad angepasst werden und/oder Storytechnische Dinge eingeleitet werden.
Ein weiterer Szenariocallback vom Regelwähler ist „ForcedTechLevel()“. Dieser sollte (falls das Startzeitalter festgelegt sein soll) das Startzeitalter zurückgeben.
Allgemein:
SunRise() |
wird aufgerufen wenn der Tag beginnt |
Dawn() |
wird aufgerufen wenn die Nacht beginnt |
ForceGraphChange() |
lässt die Grafiken auch ändern wenn das Objekt KEIN Fahrzeug und KEIN Gebäude ist |
RejectGraphChange(string newGraphic) |
wird aufgerufen bevor das Objekt in die Liste der zu grafik-ändernden Objekte aufgenommen wird, wenn der Callback true zurück gibt wird es nicht aufgenommen. |
UpdateGraphic(string newGraphic) |
wird aufgerufen bevor die Grafik geändert wird sollte wenn der Callback true zurückgibt die Grafik selber ändern. |
-Objekte:
MayBeBuildBy(int iLevel,int iFactory) |
sollte true zurückgeben wenn das Objekt von einem Gebäude des Typs iFactory in der iLevel'ten Ausbauphase produziert werden kann. Siehe FACTORY-Konstanten |
IsCookable() |
sollte true zurückgeben wenn das Objekt kochbar ist |
Cook() |
wenn das Objekt gekocht wurde |
IsSecHandObj() |
kann vom Clonk als Waffe getragen werden |
-Gebäude:
Den Gebäuden stehen einige Funktionsmodule zur Verfügung um diese einheitlich zu machen.
Türmodul(_ZF1): In RdW sind die Türen eigene Objekte damit man Gebäude auch verlassen und betreten kann wenn das Gebäude gerade eine Aktion ausführt. „DoorID()“ sollte die ID der Tür zurückgeben (im Normalfall DO1_). Wenn das Gebäude den Initialize-Callback überlad sollte um die Tür zu erstellen noch „inherited()“ aufgerufen werden.
Nachtlichmodul(_ZF3): Das Nachtlichmodul stellt Funktionen zur Benutzung von Lichtlayern zur Verfügung. Damit werden bei RdW die Gebäude Nachts zum leuchten gebracht. Per „AddLightLayer(string szGraphic, int iLayer)“ lassen sich Lichter am Objekt auf der Basis von szGraphic ankleben. Per „DeleteLightLayer(int iLayer)“ können sie wieder gelöscht werden. Im Optimalfall sollten damit bei Dawn per ScheduleCall die Lichter aktiviert werden. Und dann bei SunRise wieder gelöscht.
Upgrademodul(_ZF4):Im Upgrademodul sind die Grundfunktionen zum Upgraden und Downgraden von Gebäuden vorhanden. Es stellt folgende Callbacks bereit (der Index ist der Index der Upgrademöglichkeiten. Wenn der Index negativ ist dann sind es Downgrades.):
GetUpgradeLevelID(int iIndex) | sollte ja nach Index die IDs der Upgrade- und Downgrademöglichkeiten zurückgeben |
GetUpgradeLevelIDCost(int iIndex) | bei aktivierter Geldupgraderegel muss dieser Betrag zum Upgraden vorhanden sein. Ist der Callback nicht vorhanden werden die Kosten automatisch berechnet. |
GetUpgradeY2(int iIndex) | beim Upgrade wird das Gebäude um soviele Pixel auf der Y-Achse verschoben... ist im Normalfall 0. |
GetCantGrade(int iIndex) | Sollte true zurückgeben wenn ein Upgrade auf den Index nicht möglich ist. |
GetUpgradeCon(int iIndex) | Sollte zurückgeben zu wieviel Prozent das Gebäude aufgebaut ist wenn das Aufrüsten gestartet wurde. (im Normalfall 1%). |
Upgraded(C4ID idPrevID) | Das Gebäude wurde von idPrevID auf GetID() aufgerüstet. |
Downgraded(C4ID idPrevID) | Das Gebäude wurde von idPrevID auf GetID() abgerüstet |
Schlafmodul(_ZF2): Modul für Gebäude in denen man sich Schlafen legen kann. „Guests()“ gibt die Anzahl der aktuell schlafenden Personen zurück. Folgende Callbacks sind zusätzlich verfügbar:
CanHost() | sollte die Anzahl der gleichzeitig möglichen Schlafenden Leuten zurückgeben (Anzahl Betten) |
SleepLevel() | sollte die Qualität der Betten zurückgeben (Hütte Stufe1 = 5) |
DoSmoke() | hier sollte der Ofenrauch erstellt werden |
Gebäudeinfomodul(_ZF9): wird automatisch inkludiert wenn das Türmodul inkludiert wird. Der Callback „GetExtraInfo“ sollte zusätzliche statistische Information über das Gebäude zurückgeben.
-Anderes
Ausrüstungsgegenstände:
IsProtected(int iFrom) |
Schutzwerte für die verschiedenen Schadenstypen. |
GetGraphics() |
(nur für Kleidung) sichtbare übergezeichnete Grafik für den Clonk. Muss im Clonk vorhanden sein. |
CanotCombine(object pWear) |
Sollte true zurück geben wenn sich this nicht mit pWear zusammen (gleichzeitig) tragbar ist. |
GearEffect(object pClonk) |
Wenn das Objekt ausgerüstet wird. pClonk ist der Clonk der das Objekt getragen hast. |
GearEffectReset(object pClonk) |
Wenn das Objekt abgelegt wird. pClonk ist der Clonk der das Objekt getragen hast. |
Bäume:
Inkludieren TREE. Zusätzlich zu den Orginalbaumcallbacks:
AllowForeground() |
Erlaubt das die Bäume in den Vordergrund sortiert werden |
ForestChance() |
Chance auf und Grösse von Waldern |
Technologien:
ResearchAllowed(int iResLevel, int iPlr) |
sollte true zurückgeben wenn alle Bedingungen zum erforschen erfüllt sind. |
Researched(int iPlr) |
wenn die Technologie zuende erforscht wurde. |
ResearchTime() |
sollte die zum Forschen nötige Zeit zurückgeben. |
IsTech() |
ist eine Technologie. |
IsStartTech() |
muss eine Technologiestufenkonstante sein, gehört zu diesem Zeitalter |
Spielziele:
Inkludieren GOAL. Zusätzlich zu den Orginalspielzielcallbacks:
IsRDWGoal() |
im Normalfall true, kann mit false überladen werden um ein Spielziel nicht mit dem Spielregelwähler wählbar zu machen |
Spielregeln:
IsDefaultRule() |
true wenn die Spielregel im Normalfall aktiviert sein soll |
IsChoosen() |
wurde mit dem Regelwähler ausgewählt |
IsNotChoosen() |
wurde nicht mit dem Regelwähler ausgewählt (DefinitionCall) |
Spielziele/-regeln und Umweltobjekte:
IsChooserConfig() |
kann vom Regelwähler konfiguriert werden (siehe als Beispiel „GoalConfig.c“ in der System.c4g im RdW- Objektordner) |
ConfigSettings(int iIndex,int iSymb) |
stellt die einzelnen Menüeinträge bei der Configuration dar... sollte bei iSymb=0 den angezeigten Text, bei iSymb=1die ID des Menüsymbols und bei iSymb=2 das zu benutzendeSymbol in der ID zurückgeben |
ConfigSettingsCall(int iIndex) |
sollte den Skript zum iIndex'ten Eintrag ausführen |
Schwierigkeitsgrade:
GetFood() |
wie schnell die Clonks Hunger bekommen |
GetScienceCost() |
wieviel Geld das Forschen kostet in Prozent (Standard neu: 50% Standard alt: 100%) |
GetRevTime() |
wie lange ein Revulotion andauert in Prozent |
GetPollutionPerc() |
wie sensibel die Umwelt ist in Prozent |
IsDifficultyLevel() |
Schwierigkeitgrad: je höher desto schwerer |
Color() |
Farbe wie der Schwierigkeitsgrad in der Log gefärbt wird |
Müll:
Müllobjekte inkludieren SHLK.
IsWaste() |
Müllwert. Je höher der Müllwert umso stärker wird die Natur durch den Müll geschwächt. |
PackTo() |
ID des zugehörigen Müllpackets. |
Müllpakete inkludieren _SKA.
UnpackTo() |
ID des zugehörigem Müllobjektes. |
MaxPackCount() |
Maximale Anzahl an Müllobjekten die in ein Müllpaket passen. |
IsPack() |
Ist ein Packet. |
Globale Funktionen:
alle Schwierigkeitsgradcallbacks sind auch als globale Funktion vorhanden (außer IsDifficultyLevel und Color)
GetDifficulty() |
Gibt den aktuellen Schwierigkeitsgrad zurück. |
IsAntiLag() |
Gibt zurück ob AntiLag aktiviert ist. |
FadeOut(object pObj, int iSpeed) |
Fadet pObj langsam aus... je höher iSpeed umso langsamer das faden. |
GetTimeMultiplicator() |
Gibt den Zeitmultiplikator zurück. |
FadeGraphics(string sGraphic, object pObject, C4ID idDef, bool fIgnoreSame) |
Fadet die aktuelle Grafik von pObject zu sGraphic von idDef. Wenn fIgnoreSame=true ist macht er das auch wenn die momentane Grafik gleich die neue Grafik ist. |
SetTechStage(int iPlayer, int iTechLevel) |
Setzt die Technologiestufe iTechLevel für iPlayer. |
GetTechStage(int iPlayer) |
Gibt zurück in welcher Technologiestufe sich iPlayer befindet. |
GetGraphics(object pObj) |
Gibt die aktuelle Grafik von pObj zurück |
LogWind() |
Logt die Winddaten im Skriptformat. |
IsDay() |
Gibt zurück ob es Tag ist. |
IsNight() |
Gibt zurück ob es Nacht ist. |
IsVeryDay() |
Gibt zurück ob die Tageszeit Mittag ist. |
FindObj2(array aFind) |
Sucht nach einem Objekt für die KI. Dabei bestimmt der eigene Owner wie die Daten sortiert werden sollen. |
RdW_KIMode(int iPlr) |
Gibt zurück wie schlau die KI agieren soll. Bzw. wie Rechenintensiv die KI-Methoden sein dürfen. |
RdW_KIDist(int iPlr) |
Gibt zurück in welcher Reichweite die KI suchen soll. |
Funktionen im Clonk
Fähigkeiten | |
GetFighterBonus() | Gibt den absoluten Kampfbonus zurück |
GetFighterBonusRest() | Gibt den restlichen Kampfbonus zurück |
GetEngineerBonus() | Gibt den absoluten Ingineursbonus zurück |
GetEngineerBonusRest() | Gibt den restlichen Ingineursbonus zurück |
GetResearchBonus() | Gibt den absoluten Forschungsbonus zurück |
GetResearchBonusRest() | Gibt den restlichen Forschungsbonus zurück |
FighterBonus() | Gibt eine Referenz auf den Kampfbonus zurück |
EngineerBonus() | Gibt eine Referenz auf den Ingineursbonus zurück |
ResearchBonus() | Gibt eine Referenz auf den Forschungsbonus zurück |
BeHero(string szName,int iFight,int iEngineer,int iResearch) | Gibt dem Clonk den Namen szName mit den angegebenen Bonis |
Ausrüstung | |
Unwear() | Lässt den Clonk seine Spezialkleidung ausziehen (Schutzanzug, Uniform). |
WearOn(object pObjekt,bool fClothes,bool fForce) | Lässt den Clonk pObject ausrüsten. fClothes=true wenn das Objekt ein Kleidungsstück ist und fForce=true wenn das ausrüsten forciert werden soll. |
WearOff(object pWear) | Lässt den Clonk pWear ausziehen. |
WearOffAll() |
Lässt den Clonk alle Ausrüstungsobjekte ausziehen. |
HasEquip() | Gibt zurück ob der Clonk mit etwas ausgerüstet ist. |
GetEquip(C4ID idDef) | Gibt das ausgerüstete Objekt des Typs idDef zurück falls ausgerüstet. |
Bedürfnisse | |
Feed(int iLevel) |
Füttert den Clonk (gibt dem Clonk Nahrung und Energie) |
CheckSleep(int iChange) |
Verändert den Müdigkeitswert. Gibt den neuen Wert zurück. iChange=0 wenn nur der Wert erfasst werden soll. |
CheckFood(int iChange) |
Dasselbe wie CheckSleep(int iChange) aber mit dem Hungrigkeitswert. |
CheckHealth(int iChange) |
Dasselbe wie CheckSleep(int iChange) aber mit dem Gesundheitswert. |
CheckPsyche(int iChange) |
Dasselbe wie CheckSleep(int iChange) aber mit dem Willenkraftswert. |
CheckAdrenaline(int iChange) |
Verändert den Adrenalinspiegel des Clonks. Gibt den neuen Wert zurück. iChange=0 wenn nur der Wert erfasst werden soll. |
GetSick(int iStr,bool byPoison) |
Lässt den Clonk krank werden. byPoison=true wenn die Krankheit durch Gift entstanden ist. |
Anderes |
|
ControlCommandAcquire2(object pTarget, string szFunc, ...) |
Lässt den Clonk ein Objekt einsammeln/produzieren/kaufen bei welchem szFunc nicht 0 zurückgibt. |
IsSoldier() |
Ist der Clonk ein Soldat? |
MakeSoldier() |
Lässt den Clonk zum Soldaten werden. |
Technologiestufenkonstanten:
Konstante | Wert | Zeitalter |
RdW_TL_Stone | 1 | Steinzeit |
RdW_TL_Knight | 2 | Mittelalter |
RdW_TL_Industry | 3 | Industriezeit |
RdW_TL_Modern | 4 | Neuzeit |
RdW_TL_Future | 5 | Zukunft (im Moment unbenutzt) |
FACTORY-Konstanten:
Konstante | Wert | Gebäudetyp |
FACTORY_SMITH | 1 | Schmiede |
FACTORY_HOSPI | 2 | Hospital |
FACTORY_CHEMIE | 3 | Alchemiehütte/ Chemiefabrik |
FACTORY_BANK | 4 | Bank |
PROTECTION-Konstanten:
Konstante | Wert | Schadenstyp |
PROTECTION_Health | 0 | Allgemeiner Schutz |
PROTECTION_Melee | 1 | Schutz vor Faustkämpfen und Steinschlägen |
PROTECTION_Heat | 2 | Schutz vor Hitze |
PROTECTION_Frost | 3 | Schutz vor Kälte |
PROTECTION_Atomic | 4 | Schutz vor Atomarer Strahlung |
Globale Variablen:
isFairCrew | True wenn FairCrew aktiviert ist |
dayhelligkeit | Die momentane Helligkeit. |
dayspeed | Wie schnell die Zeit verläuft. |
iDay | Der wievielte Tag es ist. |