Opcje zaczekaj i zbieraj broń to raczej trudno zrobić bo inaczej byłyby już w gothic 2 bez konieczności moddingu (tak jak są w G3).
A po za tym to co się czepiacie? Jak dla mnie tutorial jest w porząsiu i co po niektórym na pewno się przyda.
dobra niech będzie , podam jak zrobić, aby zbierał broń z pola walki w promieniu zasięhgu widzenia i od wszystkich poległych i pokonanych. funkcja recover weapon musi byc wywołana komendą w dialogu, a oto mój skrypt:[codebox]func void ZS_AssessBody_RecoverWeapon ()
{
PrintDebugNpc (PD_ZS_FRAME, "ZS_AssessBody_RecoverWeapon");
B_SetPerception (self);
//-------- po walce NPC zabiera twój oręż - edit by Pawbuj for gothic 1--------
Npc_PerceiveAll (self);
if ( Wld_DetectItem (self, ITEM_KAT_NF) || Wld_DetectItem (self, ITEM_KAT_FF) )
{
if (Hlp_IsValidItem(item))
{
if (Npc_GetDistToItem(self,item) < 1000)&& (self.id != 1422)
{
var C_NPC npc; npc = Hlp_GetNpc(self);
var string str1;
var string str2;
str1 = ConcatStrings (npc.name," odebrał ci ");
str2 = ConcatStrings (str1,item.name);
PrintScreen (str2,-1,-1,"FONT_OLD_10_WHITE.TGA",3);
AI_TakeItem (self, item);
AI_PlayAni (self, "T_WATCHFIGHT_YEAH");
B_Say (self, self, "$ITAKEYOURWEAPON");
//PrintScreen (ConcatStrings ("Odebrano ci ", item.name),-1,-1,"FONT_OLD_10_WHITE.TGA",2);
AI_EquipBestMeleeWeapon(self);
AI_EquipBestRangedWeapon(self);
};
};
};
if (Wld_DetectItem (self, ITEM_KAT_FF) )
{
if (Hlp_IsValidItem(item))
{
if (Npc_GetDistToItem(self,item) < 1000)&& (self.id != 1422)
{
//VAR C_Item item2; item2 = Hlp_GetInstanceID (item);
var C_NPC npc2; npc2 = Hlp_GetNpc(self);
AI_TakeItem (self, item);
var string str3;
var string str24;
str3 = ConcatStrings (npc2.name," odebrał ci broń dalekosiężną");
str24 = ConcatStrings (str3,item.name);
PrintScreen (str3,-1,-1,"FONT_OLD_10_WHITE.TGA",3);
AI_PlayAni (self, "T_WATCHFIGHT_YEAH");
B_Say (self, self, "$ITAKEYOURWEAPON");
//PrintScreen (ConcatStrings ("Odebrano ci ", item.name),-1,-1,"FONT_OLD_10_WHITE.TGA",2);
AI_EquipBestMeleeWeapon(self);
AI_EquipBestRangedWeapon(self);
};
};
};
if ( Wld_DetectItem (self, ITEM_KAT_NF) || Wld_DetectItem (self, ITEM_KAT_FF) )&& (self.id == 1422)
{
if (Hlp_IsValidItem(item))
{
if (Npc_GetDistToItem(self,item) < 150000)
{
var C_NPC npc4; npc4 = Hlp_GetNpc(self);
var string str6;
var string str7;
str6 = ConcatStrings (npc4.name," zagrabił ");
str7 = ConcatStrings (str6,item.name);
PrintScreen (str6,-1,-1,"FONT_OLD_10_WHITE.TGA",3);
AI_TakeItem (self, item);
//AI_PlayAni (self, "T_WATCHFIGHT_YEAH");
B_Say (self, self, "$ITAKEYOURWEAPON");
//PrintScreen (ConcatStrings ("Odebrano ci ", item.name),-1,-1,"FONT_OLD_10_WHITE.TGA",2);
AI_EquipBestMeleeWeapon(self);
AI_EquipBestRangedWeapon(self);
};
};
};
if (Wld_DetectItem (self, ITEM_KAT_FF) ) && (self.id == 1422)
{
if (Hlp_IsValidItem(item))
{
if (Npc_GetDistToItem(self,item) < 150000)
{
//VAR C_Item item2; item2 = Hlp_GetInstanceID (item);
var C_NPC npc3; npc3 = Hlp_GetNpc(self);
AI_TakeItem (self, item);
var string str9;
var string str10;
str9 = ConcatStrings (npc3.name," zagrabił");
str10 = ConcatStrings (str9,item.name);
PrintScreen (str10,-1,-1,"FONT_OLD_10_WHITE.TGA",1);
//AI_PlayAni (self, "T_WATCHFIGHT_YEAH");
B_Say (self, self, "$ITAKEYOURWEAPON");
//PrintScreen (ConcatStrings ("Odebrano ci ", item.name),-1,-1,"FONT_OLD_10_WHITE.TGA",2);
AI_EquipBestMeleeWeapon(self);
AI_EquipBestRangedWeapon(self);
};
};
};
//-------- leczenie ! --------
AI_StartState (self, ZS_HealSelf, 1, "");
};[/codebox]
dodaję opcje czekania w rutynie postaci, dialog juz sobie sami zrobicie:[codebox]func VOID Rtn_waithere_1422 ()
{
var c_npc GorH; GorH = Hlp_GetNpc(TPL_1422_GorHanis);
TA_Guard (08,00,20,30,Npc_GetNearestWP(GorH));
TA_Guard (20,30,08,00,Npc_GetNearestWP(GorH));
};[/codebox]
niech ktos poda jak zrobic, aby npc nas bronił przed innymi