Rutyna walk na arenie 2836 0

O temacie

Autor Liberty

Zaczęty 11.08.2019 roku

Wyświetleń 2836

Odpowiedzi 0

Liberty

Liberty

Użytkownicy
posty39
Propsy12
ProfesjaSkrypter
  • Użytkownicy
Witam, z nudów napisałem rutynę walk na arenie dla G1, nie działa w G2 - trzeba przerobić niektóre funkcje.

Przejdź do Scripts/Content/Story/ZS/ i utwórz plik ZS_ArenaFight.d, w środku pliku wklej to:
func void ZS_ArenaFight()
{
B_SetPerception (self);
AI_SetWalkmode (self, NPC_WALK);
if !(Hlp_StrCmp (Npc_GetNearestWP (self), self.wp))
{
AI_GotoWP (self, self.wp);
}
else
{
AI_GotoWP (self, self.wp);
AI_AlignToWP (self);
};
};

func void ZS_ArenaFight_Loop()
{
if (Hlp_StrCmp (Npc_GetNearestWP (self), self.wp))
{
var c_npc Attack; Attack = Hlp_GetNpc(self.aivar[43]);
if (Attack)
{
Npc_SetTarget (self, Attack);
AI_StartState (self, ZS_ATTACK, 1, "");
};
}
else
{
AI_SetWalkmode (self, NPC_RUN); // Zeby npc nie zaczął uciekać przed drugim
AI_GotoWP (self, self.wp); //****** lub żeby nie wyszli poza arene
};
};

func void ZS_ArenaFight_End()
{
B_SetPerception (self);
AI_SetWalkmode (self, NPC_WALK);
};

INSTANCE ItMw_Arena_Sword (C_Item)
{
name = "Ostrze areny";

mainflag = ITEM_KAT_NF;
flags = ITEM_AXE;
material = MAT_METAL;

value = 4;

damageTotal = -25;
damagetype = DAM_EDGE;
range    100;

cond_atr[2]    = ATR_STRENGTH;
cond_value[2]  = 70;
visual = "ItMw_1H_Sword_01.3DS";

description = name;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Str_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_OneHanded;
TEXT[5] = NAME_Value; COUNT[5] = value;
};

Na sam dół TA.d dodaj to:
func void TA_ArenaFight (var int start_h, var int start_m, var int stop_h, var int stop_m, VAR string waypoint) {TA_Min (self,  start_h,start_m, stop_h, stop_m, ZS_ArenaFight, waypoint);};
Rutyna jest gotowa, żeby zrobić walkę na arenie należy do postaci dodać to:
W instance:
self.aivar[43] = Instancja NPC z którym ma walczyć dany NPC;

W rutynie:
TA_ArenaFight (19,00,19,30,"OCR_ARENABATTLE_TRAIN2");

Jeżeli NPC zadaje zbyt dużo obrażeń dodaj to:
EquipItem (self, ItMw_Arena_Sword);
Wielkie podziękowania dla @bogu9821 bez którego ten skrypt by nie powstał

Dziękuje za uwagę, odmeldowuje się! :P
 


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