Zdefiniowanie NPC 2746 3

O temacie

Autor TheKetrab

Zaczęty 16.03.2017 roku

Wyświetleń 2746

Odpowiedzi 3

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Witam,

napisałem sobie czar leczenia grupowego, który opiera się na leczeniu tych, którzy mają partymember true;

func void GroupHealPlus (var C_NPC kto) //dodawanie HP w drużynie
{
if(kto.aivar[AIV_PARTYMEMBER]==TRUE){
Npc_ChangeAttribute (kto,ATR_HITPOINTS, +100);
};

};


func void Spell_Cast_GroupHeal()
{
if ( Npc_GetActiveSpell(self) == SPL_GroupHeal )
{
if (Npc_GetActiveSpellIsScroll(self))
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
}
else
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_GroupHeal;
};
Npc_ChangeAttribute (self,ATR_HITPOINTS, +SPL_Heal_GroupHeal);

  var C_NPC uzdrawiany;

if (StanDruzyny > 1) {
PrintScreen ("UZDROWIONY", -1,-1, FONT_ScreenSmall,3);
GroupHealPlus (uzdrawiany);
};
return;
};

self.aivar[AIV_SelectSpell] += 1;
};

Niestety funkcja GroupHealPlus nie wywołuje się na NPC, który jest z nami w drużynie.

*zrobiłem już coś takiego, że można rzucić czar na jedną konkretną osobę - działa, ale nie o to mi chodzi.

Jak zdefiniować NPC tak, że jeśli jest ze mną w drużynie, to go uzdrawiam?
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Musisz użyć jednej z opcji:
1. Dodać wszystkich npc znajdujących się w zasięgu do State (SetNpcsToState), po czym sprawdzić czy mają aivar na true i ich uleczyć.
2. Użyć voblisty z aktywnymi (nie wszystkimi) npc i uleczać wszystkich którzy mają aivar na true.

Jeśli nie ogarniasz Ikarusa, polecam opcję 1.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
2) Wystarczy użyć BroadCast'a.
func void UleczIch(var c_npc slf)
{
         if(slf.aivar[AIV_PARTYMEMBER]==TRUE)
        {
Npc_ChangeAttribute (slf,ATR_HITPOINTS, +100);
};
};
//Wywołanie w zaklęciu
DoForSphere(UleczIch);
I tyle :D Broadcast
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Broadcast to identycznie to samo co active voblist.
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.


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