Показать сообщение отдельно
Старый 13.09.2011, 13:17   #2483
Dimus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ElderGamer:
Старая монета добавляется в инвентарь убитого NPC в функции B_KillNpc():
Cпойлер(щелкните, чтобы прочесть):
func void B_KillNpc(var int npcInstance)
{
* * *var C_Npc npc;
* * *var int itemInstance;
* * *PrintDebugNpc(PD_ZS_DETAIL,"B_KillNpc");
* * *npc = Hlp_GetNpc(npcInstance);
* * *npc.flags = 0;
* * *CreateInvItem(npc,ItMi_Stuff_OldCoin_02);
* * *Npc_ChangeAttribute(npc,ATR_HITPOINTS,-npc.attribute[ATR_HITPOINTS_MAX]);
* * *if(Npc_GetInvItemBySlot(npc,INV_WEAPON,1))
* * *{
* * * * * *PrintDebugNpc(PD_ZS_DETAIL,"...Waffe in Slot 1 gefunden!");
* * * * * *itemInstance = Hlp_GetInstanceID(item);
* * * * * *Npc_RemoveInvItem(npc,itemInstance);
* * *};
* * *if(Npc_GetInvItemBySlot(npc,INV_WEAPON,2))
* * *{
* * * * * *PrintDebugNpc(PD_ZS_DETAIL,"...Waffe in Slot 2 gefunden!");
* * * * * *itemInstance = Hlp_GetInstanceID(item);
* * * * * *Npc_RemoveInvItem(npc,itemInstance);
* * *};
};

Это сделано для того, чтобы труп не исчезал, т.к. монета является квестовым предметом (флаг ITEM_MISSION). Если же нужно, чтобы труп исчез, напишите функцию, которая сначала чистит инвентарь непися, а затем обнуляет у него атрибут "HITPOINTS".
Ответить с цитированием