Pokaż wiadomości

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.


Wiadomości - Aidano

Strony: [1]
1
Skrypty / Co w tym dialogu jest nie tak?
« dnia: 2016-05-19, 00:49 »
Trzeci człon rutyny CHYBA powinien być ID postaci. Właśnie dlatego CHYBA w dialogach przy zmianie rutyny jest tylko środkowy człon.
Spróbuj. Daj znać. A jak się nie uda, to nie wiem.

Racja, dzięki stary. trochę było z tym je***ia bo musiałem przy okazji zmienić instancje każdego NPC :trollface:, ale twoja rada pomogła. Dziękuję ślicznie, problem został rozwiązany :D

2
Skrypty / Co w tym dialogu jest nie tak?
« dnia: 2016-05-18, 12:19 »
hmm... nie wpadłem na to, bo w oryginalnych skryptach nazwy rutyn w dialogach pisze sie bez _nr dam znać jak poszło



Post połączony: 2016-05-18, 12:29
Nie, nadal wygląda to tak samo.

3
Skrypty / Co w tym dialogu jest nie tak?
« dnia: 2016-05-18, 12:07 »
Godzine zmieniałem już, probowalem chyba wszystkiego ale nie mam juz pomysłów.

Oto skrypt postaci

instance GLA_1_Boromir (Npc_Default) // instancja postaci
{
// ------ NSC ------
name = "Boromir"; //imie
guild = GIL_NONE; // gildia
id = 1; // ID - takie jak w instancji
voice = 1; // glos postaci
level = 20;
flags       = 0; //0= smiertelna postac 1= niesmiertelna
npctype = NPCTYPE_MAIN;  // rodzaj npc wrogi, przyjazny itp

// ------ Attribute ------
attribute[ATR_STRENGTH] = 60;
attribute[ATR_DEXTERITY] = 100;
attribute[ATR_MANA_MAX] = 10;
attribute[ATR_MANA] = 10;
attribute[ATR_HITPOINTS_MAX] = 200;
attribute[ATR_HITPOINTS] = 200;

// ------ Kampf-Taktik ------
fight_tactic = FAI_HUMAN_STRONG; // MASTER / STRONG / COWARD / MAGE --- Styl walki

// ------ Equippte Waffen ------ //Munition wird automatisch generiert, darf aber angegeben werden
EquipItem (self, ItMw_1h_Mil_Sword);    // przedmiot, ktory postac bedzie miala na sobie

// ------ Inventory ------
B_CreateAmbientInv (self);  //inwentarz losowy postaci

// ------ visuals ------ //Muss NACH Attributen kommen, weil in B_SetNpcVisual die Breite abh. v. STR skaliert wird
B_SetNpcVisual (self, MALE, "Hum_Head_FatBald", Face_N_Normal16, BodyTex_N, ITAR_DJG_Crawler);
Mdl_SetModelFatness (self, 2);
Mdl_ApplyOverlayMds (self, "Humans_Militia.mds"); // Tired / Militia / Mage / Arrogance / Relaxed

// ------ NSC-relevante Talente vergeben ------
B_GiveNpcTalents (self);

// ------ Kampf-Talente ------ //Der enthaltene B_AddFightSkill setzt Talent-Ani abhängig von TrefferChance% - alle Kampftalente werden gleichhoch gesetzt
B_SetFightSkills (self, 60); //Grenzen für Talent-Level liegen bei 30 und 60 // Talent walki w %

//-------- Talente --------   //jego umiejętności, czerwona cyfra odpowiada za poziom umiejętności
    Npc_SetTalentSkill (self, NPC_TALENT_2H,2);// broń 2h, mistrz 
    Npc_SetTalentSkill (self, NPC_TALENT_1H,2);// broń 1h, mistrz
    Npc_SetTalentSkill (self, NPC_TALENT_BOW,2);// łuk, mistrz
   Npc_SetTalentSkill (self, NPC_TALENT_CROSSBOW,2);//kusza, mistrz
   Npc_SetTalentSkill   (self, NPC_TALENT_MAGE,      6);// 6 krąg magii

// ------ TA anmelden ------
daily_routine = Rtn_Start_1000; // nazwa Rutyny startowej
};

FUNC VOID Rtn_Start_1000 () // rutyna
{
TA_Stand_Guarding (12,00,21,00,"BOROMIR_STRAZ");
    TA_Stand_Guarding (21,00,12,00,"BOROMIR_STRAZ");
};

FUNC VOID Rtn_Polowanie_1 () // rutyna
{
TA_Guide_Player (05,00,20,00,"SCIERWA");
TA_Guide_Player (20,00,05,00,"SCIERWA");
};

FUNC VOID Rtn_Koniec_2 () // rutyna
{
TA_Sit_Campfire (05,00,20,00,"CAMP_BOROMIR");
TA_Sit_Campfire (20,00,05,00,"CAMP_BOROMIR");
};

4
Skrypty / Co w tym dialogu jest nie tak?
« dnia: 2016-05-18, 11:23 »
zwiekszałem już odległość i działało trochę lepiej ale NPC i tak nie zmienił rutyny tak jak kazałem w skrypcie. po oddaniu łuku ma iść do ogniska i siedzieć tam ale nie robi tego. stoi i gapi sie caly czas tak samo z tą różnicą, że zadanie zostało wykonane.


Post połączony: 2016-05-18, 11:58
zaktualizowałem skrypt i opis problemu

5
Skrypty / Co w tym dialogu jest nie tak?
« dnia: 2016-05-18, 11:17 »
Zrobiłem questa z odzyskaniem łuku jednego myśliwego, jest to pierwszy quest jaki dostaje się w modzie i ma on pełnić rolę podexpienia odrobinę naszej postaci, npc zgubił łuk i prowadzi nas do miejsca w którym ten łuk zgubił. Problem polega na tym, że po doprowadzeniu nas na miejsce, stoi i gapi się na nasza postać, a mam wpisane w skrypcie żeby postać zagadała do nas gdy będziemy w promieniu 60 jednostek długości od WP do którego ma nas zaprowadzić, party się zamknęło quest został zaliczony i żeby dało expa ale nic z tego się nie dzieje. NPC nawet się nie odzywa tylko stoi i się gapi na Bezia. Nie ważne z jakiej strony się stanie, NPC zawsze jest zwrócony w stronę bezia i gapi się nie wiedząc co zrobić. Nawet gdy podniesie się ten łuk z ziemi to i tak nic nie zmienia.

Zamieszczam fragment skryptu odpowiadający za ten quest

//========================================
//-----------------> HELLO5
//========================================

INSTANCE DIA_Boromir_HELLO5 (C_INFO)
{
   npc          = GLA_1_Boromir;
   nr           = 5;
   condition    = DIA_Boromir_HELLO5_Condition;
   information  = DIA_Boromir_HELLO5_Info;
   permanent = FALSE;
   description = "Może mógłbym ci pomóc?";
};

FUNC INT DIA_Boromir_HELLO5_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Boromir_HELLO4))
    {
    return TRUE;
    };
};


FUNC VOID DIA_Boromir_HELLO5_Info()
{
    AI_Output (other, self ,"DIA_Boromir_HELLO5_15_01"); //Może pomogę ci odzyskać twój łuk?
    AI_Output (self, other ,"DIA_Boromir_HELLO5_03_02"); //Hmm... Wiesz co? To nie jest głupi pomysł.
    AI_Output (self, other ,"DIA_Boromir_HELLO5_03_03"); //Sam nie mogę się tam wybrać, bez łuku. Ale z twoją pomocą...
    AI_Output (self, other ,"DIA_Boromir_HELLO5_03_04"); //I możemy przy okazji sobie zapolować...
    AI_Output (self, other ,"DIA_Boromir_HELLO5_03_05"); //No dobrze, niech będzie. Przyjdz do mnie jak będziesz gotowy do drogi.

    MIS_Polowanie = LOG_RUNNING;

    Log_CreateTopic            (TOPIC_Polowanie, LOG_MISSION);
    Log_SetTopicStatus       (TOPIC_Polowanie, LOG_RUNNING);
    B_LogEntry                     (TOPIC_Polowanie,"Boromir stracił swój łuk, postanowiłem, że pomogę mu go odzyskać.");
};

//========================================
//-----------------> HELLO6
//========================================

INSTANCE DIA_Boromir_HELLO6 (C_INFO)
{
   npc          = GLA_1_Boromir;
   nr           = 6;
   condition    = DIA_Boromir_HELLO6_Condition;
   information  = DIA_Boromir_HELLO6_Info;
   permanent = FALSE;
   description = "Chodźmy zapolować!";
};

FUNC INT DIA_Boromir_HELLO6_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Boromir_HELLO5))
    {
    return TRUE;
    };
};


FUNC VOID DIA_Boromir_HELLO6_Info()
{
    AI_Output (other, self ,"DIA_Boromir_HELLO6_15_01"); //Chodźmy zapolować!
    AI_Output (self, other ,"DIA_Boromir_HELLO6_03_02"); //Dobrze, chodź za mną.
    AI_Output (self, other ,"DIA_Boromir_HELLO6_03_03"); //I weź tę broń, przyda ci się.
    CreateInvItems (self, ItMw_1H_Mace_L_03, 1);
    B_GiveInvItems (self, other, ItMw_1H_Mace_L_03, 1);
    self.aivar[AIV_PARTYMEMBER] = TRUE;
    Npc_ExchangeRoutine (self, "Polowanie");
    AI_StopProcessInfos (self);
};

//========================================
//-----------------> HELLO7
//========================================

INSTANCE DIA_Boromir_HELLO7 (C_INFO)
{
   npc          = GLA_1_Boromir;
   nr           = 7;
   condition    = DIA_Boromir_HELLO7_Condition;
   information  = DIA_Boromir_HELLO7_Info;
   permanent = FALSE;
   Important    = TRUE;
};

FUNC INT DIA_Boromir_HELLO7_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Boromir_HELLO6))
    && (Npc_GetDistToWP (other, "SCIERWA") < 500)
    {
    return TRUE;
    };
};


FUNC VOID DIA_Boromir_HELLO7_Info()
{
    AI_Output (self, other ,"DIA_Boromir_HELLO7_03_01"); //No i po wszystkim. Teraz poszukaj tego łuku. Będę czekał gdzieś w okolicy.

self.aivar[AIV_PARTYMEMBER] = FALSE;

    Npc_ExchangeRoutine (self, "Koniec");
    AI_StopProcessInfos (self);

};

//========================================
//-----------------> HELLO8
//========================================

INSTANCE DIA_Boromir_HELLO8 (C_INFO)
{
   npc          = GLA_1_Boromir;
   nr           = 8;
   condition    = DIA_Boromir_HELLO8_Condition;
   information  = DIA_Boromir_HELLO8_Info;
   permanent = FALSE;
   description = "Znalazłem twój łuk.";
};

FUNC INT DIA_Boromir_HELLO8_Condition()
{
    if (Npc_KnowsInfo (other, DIA_Boromir_HELLO7))
    && (Npc_HasItems (other, ItRw_Bow_M_03) >=1)
    {
    return TRUE;
    };
};


FUNC VOID DIA_Boromir_HELLO8_Info()
{
    AI_Output (other, self ,"DIA_Boromir_HELLO8_15_01"); //Znalazłem twój łuk.
    AI_Output (other, self ,"DIA_Boromir_HELLO8_15_02"); //Prosze, weź go.
    AI_Output (self, other ,"DIA_Boromir_HELLO8_03_03"); //Dziękuję, równy z ciebie chłop. Powinieneś stawić się w naszym obozie. Z pewnością znalazłoby się u nas miejsce dla kogoś takiego.
    AI_Output (other, self ,"DIA_Boromir_HELLO8_15_04"); //Może kiedyś.
    AI_Output (self, other ,"DIA_Boromir_HELLO8_03_05"); //Jak byś czegoś potrzebował, będę polował w okolicy.
    AI_Output (other, self ,"DIA_Boromir_HELLO8_15_06"); //Dzięki.
    AI_Output (self, other ,"DIA_Boromir_HELLO8_03_07"); //Trzymaj się.
   
B_GiveInvItems (other, self, ItRw_Bow_M_03, 1);
B_UseItem (self, ItRw_Bow_M_03);
    CreateInvItems (self, ItRw_Arrow, 30);
        B_LogEntry                     (TOPIC_Polowanie,"Oddałem łuk do rąk własnych.");
    Log_SetTopicStatus       (TOPIC_Polowanie, LOG_SUCCESS);
    MIS_Polowanie = LOG_SUCCESS;

    B_GivePlayerXP (100);
};

Zaktualizowałem skrypt. Teraz postać normalnie do nas zagaduje po dojściu do WP ale po tym jak mówi "No i po wszystkim. Teraz poszukaj tego łuku. Będę czekał gdzieś w okolicy." Powien zmienić rutyne, a zamiast tego stoi i gapi się tak, jak pisałem wcześniej. Coś napisałem nie tak? Dodam jeszcze, że w grze kiedy wpisałem na tym NPC w konsoli "edit focus" i zmieniłem WP na inny to npc zaczął biec do tego WP i stał przy nim gapiąc się tak samo jak wcześniej

Strony: [1]
Do góry