[G2NK] Quickloot zdejmuje zbroje z NPC 4890 3

O temacie

Autor Khantor

Zaczęty 22.05.2021 roku

Wyświetleń 4890

Odpowiedzi 3

Khantor

Khantor

Użytkownicy
posty59
Propsy12
Profesjabrak
  • Użytkownicy
Dzień dobry. Napisałem funkcję która ma przeszukiwać ciała pobitych/zabitych NPC.

func void Remove_Focused_Empty_Body()
{
        var int index; index = 0;
var int loopStart; loopStart = MEM_StackPos.position;

if((Hlp_GetInstanceID(trgt))
&& (Hlp_Is_oCNpc(her.focus_vob))
&& ((MEM_KeyState(MOUSE_BUTTONRIGHT) == KEY_PRESSED)
|| (MEM_KeyState(MOUSE_BUTTONRIGHT) == KEY_HOLD))
&& (((Npc_GetBodyState(trgt) == BS_UNCONSCIOUS)
|| (Npc_GetBodyState(trgt) ==  BS_DEAD))
|| (trgt.attribute[ATR_HITPOINTS] < 1))
&& (Npc_GetInvItemBySlot (trgt, 0, index) != 0))
{
var C_Item meelee; meelee = Npc_GetEquippedMeleeWeapon(trgt);
var C_Item rangee; rangee = Npc_GetEquippedRangedWeapon(trgt);

if ((item.mainflag & (ITEM_KAT_ARMOR))
|| (Hlp_GetInstanceId(meelee) == Hlp_GetInstanceId(item))
|| (Hlp_GetInstanceId(rangee) == Hlp_GetInstanceId(item)))
{
index += 1;
MEM_StackPos.position = loopStart;
}
else if (Npc_GetInvItemBySlot (trgt, 0, index) != 0)
{
var int amount2; amount2 = Npc_GetInvItemBySlot (trgt, 0, index);

CreateInvItems (hero, Hlp_GetInstanceID (item), amount2);
NPC_RemoveInvItems (trgt, Hlp_GetInstanceID (item), amount2);

var string concatText;
concatText = concatstrings("Zebrano: ", item.description);
concatText = concatstrings(concatText, " x ");
concatText = concatstrings(concatText, inttostring(amount2));
InfoBox_Create(concatText, TRUE, FONT_ScreenSmall, RGBA(255, 255, 255, 255), InfoBox_DefaultTexture);

index += 1;
MEM_StackPos.position = loopStart;
};
};
};

Podpiąłem ją do FrameFunction

        if (!FF_Active (Remove_Focused_Empty_Body))
{
FF_ApplyOnceExt (Remove_Focused_Empty_Body, 0, -1);
};

 i działa z tym, że czasami przy przeszukiwaniu NPCa, pomimo wstawionego warunku zabiera mu też zbroję. Nie zawsze tak się dzieje i nie zauważyłem nawet żadnej reguły, która pomogłaby mi namierzyć problem. Co może być tego przyczyną i jak temu zaradzić?



Swoją drogą jest jakaś dostępna zwykłemu śmiertelnikowi metoda na zrobienie quickloota dla skrzyń?
 

Yetem12

Yetem12

Użytkownicy
posty214
Propsy50
Profesjabrak
  • Użytkownicy
Na unionie spróbuj.
 

Khantor

Khantor

Użytkownicy
posty59
Propsy12
Profesjabrak
  • Użytkownicy
Na unionie się nie znam kompletnie, dlatego chciałem to zrobić Ikarusem.
 

Woad

Woad

Użytkownicy
posty82
Propsy11
ProfesjaProgramista
  • Użytkownicy
To może w ramach debugowania wyświetl na ekran kategorie podniesionych itemów podczas podnoszenia. Wtedy zobaczysz, czy problem jest z kategorią podniesionej zbroi, czy z kodem.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry