Показать сообщение отдельно
Старый 28.12.2011, 14:51   #2518
Skaarj

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

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

Объясните пож-ста, если нужно выполнить проверку условия:

if((Hlp_GetInstanceID(self) == Hlp_GetInstanceID(LordHagen)) || (Hlp_GetInstanceID(self) == Hlp_GetInstanceID(Parcival)))

1. можно ли заменить этот блок на условие:

if(self.id == (LordHagen.id | Parcival.id))

2. почему GS выдает ошибку "нельзя пребразовать тип instance в int" , если условие в виде

if((Hlp_GetInstanceID(self) == (Hlp_GetInstanceID(LordHagen)) | Hlp_GetInstanceID(Parcival))

или

if((Hlp_GetInstanceID(self) == (LordHagen.id | Parcival.id))



Добавление от 12/28/11, в 15:11:16
Как присвоить глобальной переменной var C_Item значение, переданное в функцию через внутр. переменную?

Cпойлер(щелкните, чтобы прочесть):
var C_Item itmpick;

func int C_Beklauen(var C_Item itm,var int TheftGold)
{
     if((Npc_GetTalentSkill(other,NPC_TALENT_PICKPOCKE T) == TRUE) && (self.aivar[AIV_PlayerHasPickedMyPocket] == FALSE) && (NpcObsessedByDMT == FALSE))
     {
           TheftGoldGlob = 0;
           if((Npc_IsInState(self,ZS_Talk)) && (Hlp_IsValidItem(itm)))
           {
                 if((Hlp_IsItem(itm,ItMi_Gold)) || (Hlp_IsItem(itm,ItRw_Arrow)))
                 {
                       TheftGoldGlob = 25 + Hlp_Random(TheftGold);
                 };
                 if(Hlp_IsItem(itm,ItMi_Nugget))
                 {
                       TheftGoldGlob = 1 + Hlp_Random(TheftGold);
                 };
                 if((Npc_HasItems(self,itm) == 0) && (TheftGold < 0))
                 {
                       TheftGoldGlob = 1;
                 };
                 if((TheftGoldGlob > 0) || (Npc_HasItems(self,itm) > 0))
                 {
                       itmpick = Npc_GetInvItem(self,itm);
                       return TRUE;
                 };
                 return FALSE;
           };
     };
     return FALSE;
};
Ответить с цитированием