Möge bitte jeder, der was gefunden hat, was helfen könnte, den Zeppelin (FlyingTrader_Obj) anwählbar und angreifbar zu machen und ihm die Fähigkeit zu geben, wirklich zu fliegen, und nicht "wasserscheu" zu sein und bei Plateaus wie z.B. auf die gefallenen Stämme in Schlangenlinien dem Weg zu folgen, den Infanteristen nehmen würden.
Alle Fundstücke sind willkommen, außer der Datei _TechTree.ttree - denn die ist der Paraworld Techtree, klar, dass da was drin ist.
Bisher mal das was ich gefunden habe:
[...]\Sunflowers\ParaWorld\Data\Base\Scripts\Server\classes\misc
all_vehicles.txt
Code: Select all
FlyingTrader_Obj {
classattribs {
classname = 'CGameObj'
gfx = 'FlyingTrader'
}
objectattribs {
tribe = 'Special'
}
}
[...]\Sunflowers\ParaWorld\Data\Base\Scripts\Server\settings\techtree
_AI_ObjectData.txt
Code: Select all
FlyingTrader_Obj {
FourCC = 'VHCL'
Tribe = 'Special'
Description = '_flyingtrader'
ExtractedBoniFromHelp = '0'
Boni_CHTR = '0'
Boni_ANML = '0'
Boni_VHCL = '0'
Boni_BLDG = '0'
Skulls_Lvl0 = '5.000000'
Skulls_Lvl1 = '5.000000'
Skulls_Lvl2 = '5.000000'
Skulls_Lvl3 = '5.000000'
Skulls_Lvl4 = '5.000000'
Threat = '2.0'
}
[...]\Sunflowers\Paraworld\Data\Base\Scripts\Server\classes\FightingObj\TransportObj
Vehicle.usl
Code: Select all
class CFlyingTraderObj inherit CVehicle
export proc void OnInit(bool p_bLoad)
super.OnInit(p_bLoad);
SetHitable(false);
SetSelectable(false);
SetCanWalk(false);
SetCanFly(true);
endproc;
export proc void HandleGamePlayCommand(string p_sCommand, ^CGameObj p_pxObject, vec3 p_vPos, string p_sMiscParams)
if(p_sCommand.Find("Action")>=0)then
if(p_sMiscParams.Find("/Walk")>=0) then
p_sMiscParams+=" /NoPF / NoHeightAdapt";
endif;
endif;
super.HandleGamePlayCommand(p_sCommand,p_pxObject,p_vPos,p_sMiscParams);
endproc;
export proc void GoTo(vec3 p_vPos, bool p_bUserCommand, int p_iSpeed, bool p_bUsePathfinder, bool p_bHeightAdaption, bool p_bOnWall, bool p_bQueued, bool p_bUseMaterial)
//super.GoTo(p_vPos, p_bUserCommand, p_iSpeed, p_bUsePathfinder, p_bHeightAdaption, p_bOnWall, p_bQueued, p_bUseMaterial);
var bool bAdd = true;
var ^CWalkToPos pxTask=cast<CWalkToPos>(CSrvWrap.GetUSLFactoryMgr().CreateState(GetFSM(),"Walk2Pos"));
pxTask^.SetUserCommand(p_bUserCommand);
pxTask^.SetUseMoveAction(true, "standanim");
pxTask^.Init(GetHandle(),p_vPos,p_iSpeed,p_bUsePathfinder,p_bHeightAdaption,p_bOnWall, p_bUseMaterial);
AddTask(pxTask, bAdd);
endproc;
export proc void Damage(real p_fDamage)
endproc;
export proc bool DoesCountInUnitLimit()
return false;
endproc;
endclass;
Balancing soll hier NICHT besprochen werden, es hantelt sich lediglich um eine Stoffsammlung. Und über Tests diesbezüglich.