[G2:NK]Acess Violation przy oddawaniu zadania 10238 33

O temacie

Autor Graveir

Zaczęty 15.02.2011 roku

Wyświetleń 10238

Odpowiedzi 33

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Witam.Mam taki problem,że jak oddaje zadanie to za każdym razem wyskakuje mi acess violation.Screen:
Błąd
Skrypt dialogu(część,która powoduje wywalanie błędu):
//========================================
//-----------------> HELLO8
//========================================

INSTANCE DIA_Artemid_HELLO8 (C_INFO)
{
   npc          = VLK_4305_Artemid;
   nr           = 8;
   condition    = DIA_Artemid_HELLO8_Condition;
   information  = DIA_Artemid_HELLO8_Info;
   permanent = FALSE;
   description = "Wszystkie potwory nie żyją.";
};

FUNC INT DIA_Artemid_HELLO8_Condition()
{
    var C_NPC whodie0; whodie0 = Hlp_GetNpc(YWolf);
    var C_NPC whodie1; whodie1 = Hlp_GetNpc(YGobbo_Green);
    var C_NPC whodie2; whodie2 = Hlp_GetNpc(YGiant_Bug);
    if (MIS_Polowanie_na_bestie == LOG_RUNNING)
    && (Npc_IsDead(whodie0))
    && (Npc_IsDead(whodie1))
    && (Npc_IsDead(whodie2))
    {
    return TRUE;
    };
};


FUNC VOID DIA_Artemid_HELLO8_Info()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_15_01"); //Wszystkie potwory nie żyją.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_03_02"); //Świetnie.Zgodnie z umową wybierz sobie nagrodę.
    B_LogEntry                     (TOPIC_Polowanie_na_bestie,"Wykonałem zadanie.Teraz pozostaje mi tylko wybrać nagrodę.");
    Log_SetTopicStatus       (TOPIC_Polowanie_na_bestie, LOG_SUCCESS);
    MIS_Polowanie_na_bestie = LOG_SUCCESS;

    B_GivePlayerXP (150);
    Wld_RemoveNpc (VLK_4305_Artemid);  
    AI_StopProcessInfos (self);

    Info_ClearChoices (DIA_Artemid_HELLO8);
    Info_AddChoice (DIA_Artemid_HELLO8, "Daj mi jakąś runę.", DIA_Artemid_HELLO8_WezmeRune);
    Info_AddChoice (DIA_Artemid_HELLO8, "Wezmę eliksir zręczności.", DIA_Artemid_HELLO8_WybieramEliksir);
    Info_AddChoice (DIA_Artemid_HELLO8, "Wezmę złoto.", DIA_Artemid_HELLO8_Zloto);
};
Błąd wyskakuje,gdy wybiorę description(czyli opcję wszystkie potwory nie żyją).
A co do pytania o tekstury-to jak przerobiłem jakąś teksturę(np.płaszcz poszukiwacza zmieniłem na kolor zielony,ale zachowałem oryginał[czyli dwie różne tekstury są w grze]to czy muszę ją wrzucać do paczki z modem?
Proszę o odpowiedzi,bo bez tego nie mogę ruszyć z pracą nad postaciami.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
a spróbuj usunąć to
   MIS_Polowanie_na_bestie = LOG_SUCCESS;;)
a i ważna rzecz błąd przy testowaniu w Gothicu czy w Spacerze ?? :D

chyba ze źle mówisz ze przy "oddawaniu zadania" lecz przy próbie stworzenia Choices ponieważ zamykasz dialog
   AI_StopProcessInfos (self);usuń tą linijkę zamykania dialogu z kodu :)
czyli tak

Spoiler
FUNC VOID DIA_Artemid_HELLO8_Info()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_15_01"); //Wszystkie potwory nie żyją.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_03_02"); //Świetnie.Zgodnie z umową wybierz sobie nagrodę.
    B_LogEntry                     (TOPIC_Polowanie_na_bestie,"Wykonałem zadanie.Teraz pozostaje mi tylko wybrać nagrodę.");
    Log_SetTopicStatus       (TOPIC_Polowanie_na_bestie, LOG_SUCCESS);
    MIS_Polowanie_na_bestie = LOG_SUCCESS;

    B_GivePlayerXP (150);
    Wld_RemoveNpc (VLK_4305_Artemid);  
    //AI_StopProcessInfos (self);

    Info_ClearChoices           (DIA_Artemid_HELLO8);
    Info_AddChoice              (DIA_Artemid_HELLO8, "Daj mi jakąś runę.", DIA_Artemid_HELLO8_WezmeRune);
    Info_AddChoice              (DIA_Artemid_HELLO8, "Wezmę eliksir zręczności.", DIA_Artemid_HELLO8_WybieramEliksir);
    Info_AddChoice              (DIA_Artemid_HELLO8, "Wezmę złoto.", DIA_Artemid_HELLO8_Zloto);
};

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Koniec
//========================================
//-----------------> OPCJA *KONIEC*
//========================================

INSTANCE DIA_Artemid_EXIT(C_INFO)
{
npc             = VLK_4305_Artemid;
nr              = 999;
condition = DIA_Artemid_EXIT_Condition;
information = DIA_Artemid_EXIT_Info;
permanent = TRUE;
description     = "KONIEC";
};

FUNC INT DIA_Artemid_EXIT_Condition()
{
return TRUE;
};

FUNC VOID DIA_Artemid_EXIT_Info()
{
AI_StopProcessInfos (self);
};
Tam gdzie wywala błąd
//========================================
//-----------------> HELLO8
//========================================

INSTANCE DIA_Artemid_HELLO8 (C_INFO)
{
   npc          = VLK_4305_Artemid;
   nr           = 8;
   condition    = DIA_Artemid_HELLO8_Condition;
   information  = DIA_Artemid_HELLO8_Info;
   permanent = FALSE;
   description = "Wszystkie potwory nie żyją.";
};

FUNC INT DIA_Artemid_HELLO8_Condition()
{
    var C_NPC whodie0; whodie0 = Hlp_GetNpc(YWolf);
    var C_NPC whodie1; whodie1 = Hlp_GetNpc(YGobbo_Green);
    var C_NPC whodie2; whodie2 = Hlp_GetNpc(YGiant_Bug);
    if (MIS_Polowanie_na_bestie == LOG_RUNNING)
    && (Npc_IsDead(whodie0))
    && (Npc_IsDead(whodie1))
    && (Npc_IsDead(whodie2))
    {
    return TRUE;
    };
};


FUNC VOID DIA_Artemid_HELLO8_Info()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_15_01"); //Wszystkie potwory nie żyją.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_03_02"); //Świetnie.Zgodnie z umową wybierz sobie nagrodę.
    B_LogEntry                     (TOPIC_Polowanie_na_bestie,"Wykonałem zadanie.Teraz pozostaje mi tylko wybrać nagrodę.");
    Log_SetTopicStatus       (TOPIC_Polowanie_na_bestie, LOG_SUCCESS);
    MIS_Polowanie_na_bestie = LOG_SUCCESS;

    B_GivePlayerXP (150);  
   
    Info_ClearChoices (DIA_Artemid_HELLO8);
    Info_AddChoice (DIA_Artemid_HELLO8, "Daj mi jakąś runę.", DIA_Artemid_HELLO8_WezmeRune);
    Info_AddChoice (DIA_Artemid_HELLO8, "Wezmę eliksir zręczności.", DIA_Artemid_HELLO8_WybieramEliksir);
    Info_AddChoice (DIA_Artemid_HELLO8, "Wezmę złoto.", DIA_Artemid_HELLO8_Zloto);
};

FUNC VOID DIA_Artemid_HELLO8_WezmeRune()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_WezmeRune_15_01"); //Daj mi jakąś runę.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_WezmeRune_03_02"); //Niech ta runa spopieli twoich wrogów.
    CreateInvItems (self, ItRu_InstantFireball, 1);
    B_GiveInvItems (self, other, ItRu_InstantFireball, 1);
    Info_ClearChoices (DIA_Artemid_HELLO8);
    Wld_RemoveNpc (VLK_4305_Artemid);
    AI_StopProcessInfos (self);
};

FUNC VOID DIA_Artemid_HELLO8_WybieramEliksir()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_WybieramEliksir_15_01"); //Wezmę eliksir zręczności.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_WybieramEliksir_03_02"); //Niech się zwiększy twój spryt.
    CreateInvItems (self, ItPo_Perm_DEX, 1);
    B_GiveInvItems (self, other, ItPo_Perm_DEX, 1);
    Info_ClearChoices (DIA_Artemid_HELLO8);
    Wld_RemoveNpc (VLK_4305_Artemid);
    AI_StopProcessInfos (self);
};

FUNC VOID DIA_Artemid_HELLO8_Zloto()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_Zloto_15_01"); //Wezmę złoto.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_Zloto_03_02"); //Masz.Tylko nie daj się okraść!
    CreateInvItems (self, ItMi_Gold, 100);
    B_GiveInvItems (self, other, ItMi_Gold, 100);
    Info_ClearChoices (DIA_Artemid_HELLO8);
    Wld_RemoveNpc (VLK_4305_Artemid);
    AI_StopProcessInfos (self);
};
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
INSTANCE DIA_Artemid_HELLO8 (C_INFO)
{
   npc          = VLK_4305_Artemid;
   nr           = 8;
   condition    = DIA_Artemid_HELLO8_Condition;
   information  = DIA_Artemid_HELLO8_Info;
   permanent = FALSE;
   description = "Wszystkie potwory nie żyją.";
};

FUNC INT DIA_Artemid_HELLO8_Condition()
{
    var C_NPC whodie0; whodie0 = Hlp_GetNpc(YWolf);
    var C_NPC whodie1; whodie1 = Hlp_GetNpc(YGobbo_Green);
    var C_NPC whodie2; whodie2 = Hlp_GetNpc(YGiant_Bug);
    if (MIS_Polowanie_na_bestie == LOG_RUNNING)
    && (Npc_IsDead(whodie0))
    && (Npc_IsDead(whodie1))
    && (Npc_IsDead(whodie2))
    {
    return TRUE;
    };
};


FUNC VOID DIA_Artemid_HELLO8_Info()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_15_01"); //Wszystkie potwory nie żyją.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_03_02"); //Świetnie.Zgodnie z umową wybierz sobie nagrodę.
    B_LogEntry                     (TOPIC_Polowanie_na_bestie,"Wykonałem zadanie.Teraz pozostaje mi tylko wybrać nagrodę.");
    Log_SetTopicStatus       (TOPIC_Polowanie_na_bestie, LOG_SUCCESS);
    MIS_Polowanie_na_bestie = LOG_SUCCESS;

    B_GivePlayerXP (150);  
   
    Info_ClearChoices (DIA_Artemid_HELLO8);
    Info_AddChoice (DIA_Artemid_HELLO8, "Daj mi jakąś runę.", DIA_Artemid_HELLO8_WezmeRune);
    Info_AddChoice (DIA_Artemid_HELLO8, "Wezmę eliksir zręczności.", DIA_Artemid_HELLO8_WybieramEliksir);
    Info_AddChoice (DIA_Artemid_HELLO8, "Wezmę złoto.", DIA_Artemid_HELLO8_Zloto);
};

FUNC VOID DIA_Artemid_HELLO8_WezmeRune()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_WezmeRune_15_01"); //Daj mi jakąś runę.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_WezmeRune_03_02"); //Niech ta runa spopieli twoich wrogów.
    CreateInvItems (self, ItRu_InstantFireball, 1);
    B_GiveInvItems (self, other, ItRu_InstantFireball, 1);
    Info_ClearChoices (DIA_Artemid_HELLO8);
    AI_StopProcessInfos (self);
    Wld_RemoveNpc (VLK_4305_Artemid);
};

FUNC VOID DIA_Artemid_HELLO8_WybieramEliksir()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_WybieramEliksir_15_01"); //Wezmę eliksir zręczności.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_WybieramEliksir_03_02"); //Niech się zwiększy twój spryt.
    CreateInvItems (self, ItPo_Perm_DEX, 1);
    B_GiveInvItems (self, other, ItPo_Perm_DEX, 1);
    Info_ClearChoices (DIA_Artemid_HELLO8);
    AI_StopProcessInfos (self);
    Wld_RemoveNpc (VLK_4305_Artemid);
};

FUNC VOID DIA_Artemid_HELLO8_Zloto()
{
    AI_Output (other, self ,"DIA_Artemid_HELLO8_Zloto_15_01"); //Wezmę złoto.
    AI_Output (self, other ,"DIA_Artemid_HELLO8_Zloto_03_02"); //Masz.Tylko nie daj się okraść!
    CreateInvItems (self, ItMi_Gold, 100);
    B_GiveInvItems (self, other, ItMi_Gold, 100);
    Info_ClearChoices (DIA_Artemid_HELLO8);
    AI_StopProcessInfos (self);
    Wld_RemoveNpc (VLK_4305_Artemid);

};
musiałeś najpierw zatrzymać dialog
    AI_StopProcessInfos   (self);
a dopiero potem usunąć postać
    Wld_RemoveNpc (VLK_4305_Artemid);
jak nie bedzie działać to moze przeteleportuj postac za mape ;)

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
No więc w tej części problem powodował RemoveNpc.I w związku z tym mam dwa pytania:
1)Jak usunąć postać po dialogu?
2)Czemu nie chce mi zaliczyć zadania z zabiciem potworów?Bo zabijam goblina z okolic jeziora wieży xardasa,2 młode polne bestie z jaskini i tego wilka co kręci się niedaleko Cavalorna.Ale jak przyzwę kodem(czyli insert ywolf,ygobbo_green i ygiant_bug)i je zabiję to dopiero wtedy mi zalicza zadanie-.-
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Odświeżam
Skrypt:
//========================================
//-----------------> HELLO8
//========================================

INSTANCE DIA_Artemid_HELLO8 (C_INFO)
{
   npc          = VLK_4305_Artemid;
   nr           = 8;
   condition    = DIA_Artemid_HELLO8_Condition;
   information  = DIA_Artemid_HELLO8_Info;
   permanent    = FALSE;
   description  = Wszystkie potwory nie żyją.;
};
 
FUNC INT DIA_Artemid_HELLO8_Condition()
{
    var C_NPC whodie0;  whodie0 = Hlp_GetNpc(YWolf);
    var C_NPC whodie1;  whodie1 = Hlp_GetNpc(YGobbo_Green);
    var C_NPC whodie2;  whodie2 = Hlp_GetNpc(YGiant_Bug);
    if (MIS_Polowanie_na_bestie == LOG_RUNNING)
    && (Npc_IsDead(whodie0))
    && (Npc_IsDead(whodie1))
    && (Npc_IsDead(whodie2))
    {
    return TRUE;
    };
};
 
 
FUNC VOID DIA_Artemid_HELLO8_Info()
{
    AI_Output (other, self ,DIA_Artemid_HELLO8_15_01); //Wszystkie potwory nie żyją.
    AI_Output (self, other ,DIA_Artemid_HELLO8_03_02); //Świetnie.Zgodnie z umową wybierz sobie jedną nagrodę.
    B_LogEntry                     (TOPIC_Polowanie_na_bestie,Wykonałem zadanie.Teraz pozostaje mi tylko wybrać nagrodę.);
    Log_SetTopicStatus       (TOPIC_Polowanie_na_bestie, LOG_SUCCESS);
    MIS_Polowanie_na_bestie = LOG_SUCCESS;
 
    B_GivePlayerXP (150);    
     
    Info_ClearChoices           (DIA_Artemid_HELLO8);
    Info_AddChoice              (DIA_Artemid_HELLO8, Daj mi jakąś runę., DIA_Artemid_HELLO8_WezmeRune);
    Info_AddChoice              (DIA_Artemid_HELLO8, Wezmę eliksir zręczności., DIA_Artemid_HELLO8_WybieramEliksir);
    Info_AddChoice              (DIA_Artemid_HELLO8, Wezmę złoto., DIA_Artemid_HELLO8_Zloto);
};
 
FUNC VOID DIA_Artemid_HELLO8_WezmeRune()
{
    AI_Output (other, self ,DIA_Artemid_HELLO8_WezmeRune_15_01); //Daj mi jakąś runę.
    AI_Output (self, other ,DIA_Artemid_HELLO8_WezmeRune_03_02); //Niech ta runa spopieli twoich wrogów.
    CreateInvItems (self, ItRu_InstantFireball, 1);
    B_GiveInvItems (self, other, ItRu_InstantFireball, 1);
    Info_ClearChoices           (DIA_Artemid_HELLO8);
    AI_StopProcessInfos (self);
};
 
FUNC VOID DIA_Artemid_HELLO8_WybieramEliksir()
{
    AI_Output (other, self ,DIA_Artemid_HELLO8_WybieramEliksir_15_01); //Wezmę eliksir zręczności.
    AI_Output (self, other ,DIA_Artemid_HELLO8_WybieramEliksir_03_02); //Niech się zwiększy twój spryt.
    CreateInvItems (self, ItPo_Perm_DEX, 1);
    B_GiveInvItems (self, other, ItPo_Perm_DEX, 1);
    Info_ClearChoices           (DIA_Artemid_HELLO8);
    AI_StopProcessInfos (self);
};
 
FUNC VOID DIA_Artemid_HELLO8_Zloto()
{
    AI_Output (other, self ,DIA_Artemid_HELLO8_Zloto_15_01); //Wezmę złoto.
    AI_Output (self, other ,DIA_Artemid_HELLO8_Zloto_03_02); //Masz.Tylko nie daj się okraść!
    CreateInvItems (self, ItMi_Gold, 100);
    B_GiveInvItems (self, other, ItMi_Gold, 100);
    Info_ClearChoices           (DIA_Artemid_HELLO8);
    AI_StopProcessInfos (self);  
};
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Odświeżam po raz 3.Teraz mam tylko problem z tym,że nie wiem jak usunąć postać po dialogu/przeteleportować ją gdzieś.
I problem z tym oddaniem zadania-że normalnie zabijam to nie zalicza.Przyzwę kodem i zalicza...
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Bucik

Bucik

Użytkownicy
posty182
Propsy128
Profesjabrak
  • Użytkownicy
Te potworki, które są w świecie od razu mają dokładnie taką instancję jak w kodzie?
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Biorąc instancje potworów do zadania patrzyłem na startup:
Wld_InsertNpc (YGobbo_Green, "NW_XARDAS_TOWER_WATERFALL_CAVE_ENTRANCE_05");
Wld_InsertNpc (YGiant_Bug, "NW_XARDAS_TOWER_WATERFALL_CAVE_SIDE_02");
Wld_InsertNpc (YWolf, "NW_XARDAS_VALLEY_03");
Czyli instancje dobrze dałem...
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Bucik

Bucik

Użytkownicy
posty182
Propsy128
Profesjabrak
  • Użytkownicy
Pomiędzy wpisaniem kodu a automatycznym spawnem potworów nie powinno byc roznicy w tym kontekście - sprawdź dobrze instancje tych domyślnych potworków (wejdź w potwora klawiszem 'o') i upewnij się na 100% że to są te potworki, które znalazłeś w startup'ie.
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis

EdekSumo
Wyspa Khorinis

[G2:NK]Acess Violation przy oddawaniu zadania
#10 2011-02-17, 20:00(Ostatnia zmiana: 2011-02-17, 20:00)
nie będzie działać bo w świecie jest co najmniej kilka stworów  o takich instancjach i musiał byś je wszystkie zabić musisz zrobić "nowe stwory" z nowymi instancjami np wolf_mod_01 itp
 

Bucik

Bucik

Użytkownicy
posty182
Propsy128
Profesjabrak
  • Użytkownicy
hmmm... a tak racja - potwory, które sa uwzględniane w zadaniach zawsze mają własne, unikalne instancje.

PS - Trochę jednak dziwne jest to że wpisanie kodu coś daje... Najprawdopodobniej każdy NPC w grze jest umieszczony na liście (tablicy) która jest w jakis konkretny sposób uporządkowana. Może tak być, że wpisanie kodu powiększa liste i dodaje potworka na koniec listy. Funkcja IsDead sprawdza właśnie ostatni element listy, stąd taki rezultat. Także prócz sposobu na rozwiązanie problemu masz jego przyczyne :P
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Czyli muszę skopiować np.skrypt prototype wolf i zmienić instance np.na prototype wilczek?
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Bucik

Bucik

Użytkownicy
posty182
Propsy128
Profesjabrak
  • Użytkownicy
Nie, skopiować skrypt (INSTANCJĘ klasy C_NPC, nie prototyp) jakiegoś wilka czy jakiego ty tam stwora chcesz i zmienić mu instancje.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Pytałem się go kilka razy na gg czy te potwory są na świecie unikatowe, czy na pewno nie ma innych o takich samych instance, bo wtedy funkcja sprawdzająca czy zostały zabite może generować błędy gdyby jakieś kopie nadal żyły...

Cytuj
Avallach, 2011-02-17 11:48:42:
czy każdy z nich na bank występuje tylko raz na całym świecie?
Cytuj
Avallach, 2011-02-17 19:14:18:
czy na pewno nigdzie nuie masz kopii któregoś z tych npc?

Avallach, 19:14:28:
bo wydaje mi się że każdy może być tylko raz na cały świat

Avallach, 19:14:39:
bo gdyby jednego zabić a drugiego nie mógłby się wywołać błą

bezihero.tm, 19:16:39:
Nie mam żadnych

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Ale nie mogę stworzyć osobnego skryptu,tylko muszę zeedytować w MST_WOLF?Bo jak zrobię osobny to wyskakuje dużo błędów...
Edit:Stworzyłem skrypt potwora i normalnie się pojawia w grze.I w związku z tym mam pytanie-gdzie mogę ustawić doświadczenie za exp z niego?
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Bucik

Bucik

Użytkownicy
posty182
Propsy128
Profesjabrak
  • Użytkownicy
OMG

INSTANCE Twoja_Nowa_Instancja (Mst_Default_Wolf)
{
level = 3;
name = "Twój zajebisty wilk";
//----- Attribute ----
attribute [ATR_STRENGTH] = 10;
attribute [ATR_DEXTERITY] = 10;
attribute [ATR_HITPOINTS_MAX] = 20;
attribute [ATR_HITPOINTS] = 20;

//----- Protections ----
protection [PROT_BLUNT] = 10;
protection [PROT_EDGE] = 10;
protection [PROT_POINT] = 0;
protection [PROT_FIRE] = 10;
protection [PROT_FLY] = 10;

//----- Kampf-Taktik ----
fight_tactic = FAI_MONSTER_COWARD;

B_SetVisuals_Wolf();
Npc_SetToFistMode(self);
CreateInvItems (self, ItFoMuttonRaw, 1);
};

Skopiuj to i wklei na końcu pliku content\Story\NPC\Monster\MST_Wolf.d

//EDIT
Uprzedzając pytanie - tak, musisz jeszcze tego nowego potworka dodać w startup.d

//EDIT
Pisz normalnie, bo ja musze edytowac post bez przerwy bo będzie double
Jesli chodzi o doświadczenie za zabicie wszystkich potworow no to chyba najlepiej w dialogu po wykonaniu zadania. Jeśli jednak chodzi ci o wyższego expa za samo zabicie potwora to albo zwiększ mu level albo pogrzeb w skryptach odpowiedzialnych za sam moment ataku.
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Dobra mam skrypt potwora sprawny.I pytanie w związku z tym(trochę głupie).Czy mogę dać "do potwora"np.chleb?Czyli,że zabijemy wilka i mamy z niego surowe mięso i chleb.Wiem,że idiotyczne,no ale...xD
Edit:Nie miałem zamiaru o to pytać-taka rzecz jest dla mnie oczywista po wydaniu dwóch mini modów^^
Edit2:Teraz możesz dać szybką odpowiedź,bo nie będzie dubla.Czyli teoretycznie,jeśli zmniejszę/zwiększe mu poziom to wraz z tym wzrasta/maleje exp za niego?I co z tymi przedmiotami?Mogę dać chleb do tego potworka,czy raczej nie?
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Bucik

Bucik

Użytkownicy
posty182
Propsy128
Profesjabrak
  • Użytkownicy
if (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(InstancjaWIlka))
{
CreateInvItems (slf, InstancjaPrzedmiotu, 1); // 1 to ilośc przedmiotów
};

Dodaj to do pliku content\Story\B_Story\B_GiveDeathInv.d przed frazę:


slf.aivar[AIV_DeathInvGiven] = TRUE;


};
Która znajduje się na samym końcu skryptu. Powinno zadziałać.


//EDIT
A myślisz, że dlaczego przyzwany wilk ma level = 0 ?
 

EdekSumo

EdekSumo

Wyspa Khorinis
posty1739
Propsy925
ProfesjaLvl designer
  • Wyspa Khorinis
Możesz dać chleb a nawet w gniew beliara go uzbroić i im wyższy poziom tym więcej expa (poziom*10= dostawany exp)
 


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