1
Pytania i problemy / Problem z NPC
« dnia: 2010-08-24, 20:18 »
Spacer (zwłaszcza do G1) potrafi być kapryśny ;p . Ściągnij inną wersję, próbuj do skutku...
Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.
A jeśli mam dwa way to jak wpisać ?Jakikolwiek. Może być nawet waypoint, którego postać nigdy nie zwiedza, bo to po prostu miejsce spawnu. NPC, i tak później pójdzie do miejsca, wyznaczonego w rutynie. Dla bezpieczeństwa, wpisz jeden z waypointów zawartych w rutynie.
Uruchom spacer znajdujący sie w Gothic/system/Najpierw musi go pobrać... Zajrzyj TUTAJ.
Wld_InsertNpc (NON_2001_Sitak, "tu ma być waypoint, a nie rutyna");
EquipItem (self, INSTANCE_BRONI);
A żeby miał broń (lub jakikolwiek inny item) w ekwipunku, ale niezałożony to: CreateInvItems (self, INSTANCE_BRONI, ILOSC);
6. Musisz mieć stworzony plik z ikonką *.ico. Potem w pliku *.ini moda, dopisujesz (lub zmieniasz) to:Icon=nazwa_ikonki.ico
INSTANCE Ore_Armor_M (C_Item)
{
name = "Wzmocniona zbroja magiczna";
mainflag = ITEM_KAT_ARMOR;
flags = 0;
protection [PROT_EDGE] = 70;
protection [PROT_BLUNT] = 70;
protection [PROT_POINT] = 70;
protection [PROT_FIRE] = 100;
protection [PROT_MAGIC] = 80;
value = 5000;
wear = WEAR_TORSO;
visual = "MAGIE.3DS";
visual_change = "Hum_Magie_Armor.asc";
visual_skin = 0;
material = MAT_LEATHER;
cond_atr[2] = ATR_MANA;
cond_value[2] = 100;
description = name;
TEXT[0] = NAME_Mana_needed; COUNT[0] = cond_value[2];
TEXT[1] = NAME_Prot_Edge;
COUNT[1] = protection [PROT_EDGE];
TEXT[2] = NAME_Prot_Point;
COUNT[2] = protection [PROT_POINT];
TEXT[3] = NAME_Prot_Fire;
COUNT[3] = protection [PROT_FIRE];
TEXT[4] = NAME_Prot_Magic;
COUNT[4] = protection [PROT_MAGIC];
TEXT[5] = NAME_Value;
COUNT[5] = value;
};
//========================================
//-----------------> Jedzenie
//========================================
INSTANCE DIA_Kwatermistrz_Jedzenie (C_INFO)
{
npc = MIL_2000006_Kwatermistrz;
nr = 1;
condition = DIA_Kwatermistrz_Jedzenie_Condition;
information = DIA_Kwatermistrz_Jedzenie_Info;
permanent = FALSE;
description = "Mam Jedzenie.";
};
FUNC INT DIA_Kwatermistrz_Jedzenie_Condition()
{
if (jedzonko < 60)
&& (Npc_HasItems (other, ItFoMuttonRaw) >=15)
{
return 1;
};
};
FUNC VOID DIA_Kwatermistrz_Jedzenie_Info()
{
AI_Output (other, self ,"DIA_Kwatermistrz_Jedzenie_15_01"); //Mam Jedzenie.
AI_Output (self, other ,"DIA_Kwatermistrz_Jedzenie_03_02"); //Ile chcesz mi dać?
Info_ClearChoices (DIA_Kwatermistrz_Jedzenie);
Info_AddChoice (DIA_Kwatermistrz_Jedzenie, "15 sztuk surowego mięsa.", DIA_Kwatermistrz_Jedzenie_pient);
Info_AddChoice (DIA_Kwatermistrz_Jedzenie, "30 sztuk surowego mięsa.", DIA_Kwatermistrz_Jedzenie_ty);
};
FUNC void DIA_Kwatermistrz_Jedzenie_pient()
{
if (Npc_HasItems (other, ItFoMuttonRaw) >=15)
{
AI_Output (other, self ,"DIA_Kwatermistrz_Jedzenie_pient_15_01"); //15 sztuk surowego mięsa.
AI_Output (self, other ,"DIA_Kwatermistrz_Jedzenie_pient_03_02"); //Jak będziesz miał więcej to wpadnij.
B_GiveInvItems (other, self, ItFoMuttonRaw, 15);
jedzonko = jedzonko + 15;
AI_StopProcessInfos (self);
};
};
FUNC void DIA_Kwatermistrz_Jedzenie_ty()//BŁĘDY ZACZYNAJĄ SIĘ TU
{
if (Npc_HasItems (other, ItFoMuttonRaw) >=30)
&& (jedzonko <= 30)
{
AI_Output (other, self ,"DIA_Kwatermistrz_Jedzenie_trzy_15_01"); //30 sztuk surowego mięsa.
AI_Output (self, other ,"DIA_Kwatermistrz_Jedzenie_trzy_03_02"); //Jak będziesz miał więcej to wpadnij.
B_GiveInvItems (other, self, ItFoMuttonRaw, 30);
jedzonko = jedzonko +30;
AI_StopProcessInfos (self);
};
};
FUNC void DIA_Kwatermistrz_Jedzenie_ty()
{
if (Npc_HasItems (other, ItFoMuttonRaw) >= 30)
&& (jedzonko <= 30)
{
AI_Output (other, self ,"DIA_Kwatermistrz_Jedzenie_trzy_15_01"); //30 sztuk surowego mięsa.
AI_Output (self, other ,"DIA_Kwatermistrz_Jedzenie_trzy_03_02"); //Jak będziesz miał więcej to wpadnij.
B_GiveInvItems (other, self, ItFoMuttonRaw, 30);
jedzonko = jedzonko + 30;
AI_StopProcessInfos (self);
};
else
{
AI_Output (self, other ,"DIA_Kwatermistrz_Jedzenie_trzy_03_03"); //Gdzie jest to mięso? Chyba wszystkiego nie zeżarłeś, prawda?
Info_ClearChoices (DIA_Kwatermistrz_Jedzenie);
};
};
func void ucieczka()
{
if(NONE_9999_test.level < PC_Hero.level)
{
AI_StartState(NONE_9999_test,ZS_Flee,0,"");
};
};
Tak jak w tytule. Mój NPC ma ustawione FAI = FAI_HUMAN_COWARD,
if (Npc_GetDistToNpc (slf, oth) > 200)
&& (Npc_IsInFightMode (oth, FMODE_NONE))
&& (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(NONE_9999_test))
{
return TRUE;
};