[g2 nk] Problem z nakładaniem się dwóch funkcji itemów 1487 5

O temacie

Autor Graveir

Zaczęty 28.07.2015 roku

Wyświetleń 1487

Odpowiedzi 5

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Siema. Grając w swojego moda zauważyłem bug/problem, że nałożyły mi się funkcje itemów na siebie. Konkretnie dotyczy to zwoju gotowania i runy multiteleportacyjnej. Chodzi o to, że w zwoju gotowania mam do wyboru miejsca teleportacyjne z runy multiteleportu, a w runie multiteleportu mam opcję gotowania(czyli używając runy mam możliwość gotowania i teleportacji, tak samo w przypadku zwoju gotowania). Z tego co przyuważyłem, to problem zaczyna się w momencie, kiedy porozmawiam z jakąś nowo dodaną postacią. Ma ktoś jakiś pomysł, co mogło się "zepsuć"? Skrypty teleporta i zwoju mogę podrzucić, jeśli to coś zmieni.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
prawdopodobnie te dialogi od teleportu i gotowania (monologi) maja źle zaprogramowana funkcje condition. Wrzucenie kodu tutaj na pewno ułatwi rozwiązanie problemu.
 


Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Skrypt dialogu(związanego z gotowaniem):
Spoiler
///////////////////////////////////////////////////////////////////////
//    Info EXIT
///////////////////////////////////////////////////////////////////////
INSTANCE DIA_PC_Hero_Cooking_EXIT   (C_INFO)
{
    npc         = PC_Hero;
    nr          = 999;
    condition   = DIA_PC_Hero_Cooking_Condition;
    information = DIA_PC_Hero_Cooking_Info;
    permanent   = TRUE;
    description = "Zakończ gotowanie";
};

FUNC INT DIA_PC_Hero_Cooking_Condition()
{
    if (Kucharzyna == 1)
    {    
        return TRUE;
    };
};

FUNC VOID DIA_PC_Hero_Cooking_Info()
{
    AI_StopProcessInfos (self);
    Kucharzyna = 0;
};

///////////////////////////////////////////////////////////////////////
//    Smażenie sztuki mięsa
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_OneMeat        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     1;
    condition     =     DIA_PC_Hero_Cooking_OneMeat_Condition;
    information     =     DIA_PC_Hero_Cooking_OneMeat_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Usmaż sztukę mięsa";
};

func int DIA_PC_Hero_Cooking_OneMeat_Condition ()
{
    if (Kucharzyna == 1)
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_OneMeat_Info ()
{
    if (Npc_HasItems (self, ItFoMuttonRaw) >= 1)
    {
        Npc_RemoveInvItems (self, ItFoMuttonRaw,1);        
        PrintScreen ("Usmażyłeś sztukę mięsa!", -1, -1, FONT_ScreenSmall, 2);
        CreateInvItems (self, ItFoMutton,1);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};

///////////////////////////////////////////////////////////////////////
//    Smażenie 10 sztuk mięsa
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_TenMeat        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     2;
    condition     =     DIA_PC_Hero_Cooking_TenMeat_Condition;
    information     =     DIA_PC_Hero_Cooking_TenMeat_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Usmaż 10 sztuk mięsa";
};

func int DIA_PC_Hero_Cooking_TenMeat_Condition ()
{
    if (Kucharzyna == 1)
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_TenMeat_Info ()
{
    if (Npc_HasItems (self, ItFoMuttonRaw) >= 10)
    {
        Npc_RemoveInvItems (self, ItFoMuttonRaw,10);        
        PrintScreen ("Usmażyłeś 10 sztuk mięsa!", -1, -1, FONT_ScreenSmall, 2);
        CreateInvItems (self, ItFoMutton,10);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};

///////////////////////////////////////////////////////////////////////
//    Smażenie całego mięsa
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_AllMeat        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     3;
    condition     =     DIA_PC_Hero_Cooking_AllMeat_Condition;
    information     =     DIA_PC_Hero_Cooking_AllMeat_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Usmaż całe mięso";
};

func int DIA_PC_Hero_Cooking_AllMeat_Condition ()
{
    if (Kucharzyna == 1)
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_AllMeat_Info ()
{
    Qucharz = Npc_HasItems(other, ItFoMuttonRaw);
    if (Qucharz)
    {
    Npc_RemoveInvItems (other, ItFoMuttonRaw,Npc_HasItems (other, ItFoMuttonRaw));    
    PrintScreen ("Usmażyłeś cały zapas mięsa!", -1, -1, FONT_ScreenSmall, 2);
    CreateInvItems (other, ItFoMutton, Qucharz);
    AI_StopProcessInfos (self);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};

///////////////////////////////////////////////////////////////////////
//    Rosół
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_Rosolek        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     4;
    condition     =     DIA_PC_Hero_Cooking_Rosolek_Condition;
    information     =     DIA_PC_Hero_Cooking_Rosolek_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Ugotuj rosół";
};

func int DIA_PC_Hero_Cooking_Rosolek_Condition ()
{
    if (Kucharzyna == 1)
    && (Npc_GetTalentSkill (other,NPC_TALENT_COOKING) == 1)
    && (RosolDrobiowy == TRUE)    
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_Rosolek_Info ()
{
    if (Npc_HasItems (self, ItFoMuttonRaw) >= 2)
    && (Npc_HasItems (self, ItPl_Health_Herb_01) >= 2)
    && (Npc_HasItems (self, ItFo_Water) >= 1)
    {
        Npc_RemoveInvItems (self, ItFoMuttonRaw,2);
        Npc_RemoveInvItems (self, ItPl_Health_Herb_01,2);
        Npc_RemoveInvItems (self, ItFo_Water,1);        
        PrintScreen ("Dobry rosół nie jest zły", -1, -1, FONT_ScreenSmall, 2);
        CreateInvItems (self, ItFo_Rosol,1);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};

///////////////////////////////////////////////////////////////////////
//    Zupa z roślin
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_ZupaRoslinna        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     5;
    condition     =     DIA_PC_Hero_Cooking_ZupaRoslinna_Condition;
    information     =     DIA_PC_Hero_Cooking_ZupaRoslinna_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Zupa z roślin";
};

func int DIA_PC_Hero_Cooking_ZupaRoslinna_Condition ()
{
    if (Kucharzyna == 1)
    && (Npc_GetTalentSkill (other,NPC_TALENT_COOKING) == 1)
    && (Zielenina == TRUE)    
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_ZupaRoslinna_Info ()
{
    if (Npc_HasItems (self, ItPl_Health_Herb_01) >= 1)
    && (Npc_HasItems (self, ItPl_Health_Herb_02) >= 1)
    && (Npc_HasItems (self, ItPl_Mana_Herb_01) >= 1)
    && (Npc_HasItems (self, ItPl_Mana_Herb_02) >= 1)
    && (Npc_HasItems (self, ItFo_Water) >= 1)
    {
        Npc_RemoveInvItems (self, ItPl_Health_Herb_01,1);
        Npc_RemoveInvItems (self, ItPl_Health_Herb_02,1);
        Npc_RemoveInvItems (self, ItFo_Water,1);
        Npc_RemoveInvItems (self, ItPl_Mana_Herb_01,1);    
        Npc_RemoveInvItems (self, ItPl_Mana_Herb_02,1);            
        PrintScreen ("Coś dla wegetarian", -1, -1, FONT_ScreenSmall, 2);
        CreateInvItems (self, ItFo_ZupaRoslinna,1);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};

///////////////////////////////////////////////////////////////////////
//    Gigantyczny tost
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_Tost        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     6;
    condition     =     DIA_PC_Hero_Cooking_Tost_Condition;
    information     =     DIA_PC_Hero_Cooking_Tost_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Chleb tostowy";
};

func int DIA_PC_Hero_Cooking_Tost_Condition ()
{
    if (Kucharzyna == 1)
    && (Npc_GetTalentSkill (other,NPC_TALENT_COOKING) == 1)
    && (Toscik == TRUE)
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_Tost_Info ()
{
    if (Npc_HasItems (self, ItFo_Cheese) >= 1)
    && (Npc_HasItems (self, ItFo_Bread) >= 1)
    {
        Npc_RemoveInvItems (self, ItFo_Cheese,1);
        Npc_RemoveInvItems (self, ItFo_Bread,1);        
        PrintScreen ("Chleb z serem, czyli popularny tost", -1, -1, FONT_ScreenSmall, 2);
        CreateInvItems (self, ItFo_BreadAndCheese,1);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};

///////////////////////////////////////////////////////////////////////
//    Zupa z roślin
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_ZupaRybna        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     7;
    condition     =     DIA_PC_Hero_Cooking_ZupaRybna_Condition;
    information     =     DIA_PC_Hero_Cooking_ZupaRybna_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Zupa rybna";
};

func int DIA_PC_Hero_Cooking_ZupaRybna_Condition ()
{
    if (Kucharzyna == 1)
    && (Npc_GetTalentSkill (other,NPC_TALENT_COOKING) == 1)
    && (ZupkaRybna == TRUE)
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_ZupaRybna_Info ()
{
    if (Npc_HasItems (self, ItFo_Fish) >= 1)
    && (Npc_HasItems (self, ItFo_Water) >= 1)
    {
        Npc_RemoveInvItems (self, ItFo_Fish,1);
        Npc_RemoveInvItems (self, ItFo_Water,1);        
        PrintScreen ("Smacznego życzy rybka 'Udław się'", -1, -1, FONT_ScreenSmall, 2);
        CreateInvItems (self, ItFo_FishSoup,1);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};

///////////////////////////////////////////////////////////////////////
//    Zupa z roślin
///////////////////////////////////////////////////////////////////////
instance DIA_PC_Hero_Cooking_PrzepisSnafa        (C_INFO)
{
    npc         =     PC_Hero;
    nr         =     8;
    condition     =     DIA_PC_Hero_Cooking_PrzepisSnafa_Condition;
    information     =     DIA_PC_Hero_Cooking_PrzepisSnafa_Info;
    permanent     =     TRUE;
    Important = 0;
    description     =     "Potrawka z chrząszcza a'la Snaf";
};

func int DIA_PC_Hero_Cooking_PrzepisSnafa_Condition ()
{
    if (Kucharzyna == 1)
    && (Npc_GetTalentSkill (other,NPC_TALENT_COOKING) == 1)
    && (PrzepisSnafa == TRUE)
    {
        return TRUE;
    };
};

func void DIA_PC_Hero_Cooking_PrzepisSnafa_Info ()
{
    if (Npc_HasItems (self, ItAt_Meatbugflesh) >= 3)
    && (Npc_HasItems (self, ItPl_Mushroom_02) >= 3)
    {
        Npc_RemoveInvItems (self, ItAt_Meatbugflesh,3);
        Npc_RemoveInvItems (self, ItPl_Mushroom_02,3);        
        PrintScreen ("Popisowe danie Snafa", -1, -1, FONT_ScreenSmall, 2);
        CreateInvItems (self, ItFo_MeatbugSoup,1);
    }
    else
    {
        PrintScreen ("Brak składników!", -1, -1, FONT_ScreenSmall, 2);
        B_ENDPRODUCTIONDIALOG ();
    };
};
Skrypt runy teleportacyjnej(odpowiadający za wybór miejsca, do którego chcemy się teleportować):
Spoiler

var int placteleportacyjny;

func void MultiTeleport()
{
    if(PLACTELEPORTACYJNY == 1)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_CASTLEMINE_PATH_03");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Wieża Dextera!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 2)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_FARM3_PATH_01");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Właścicielem farmy jest Bengar!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 3)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_BIGFARM_HUT_02");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Nie zapomnij porozmawiać z Busterem!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 4)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_BIGFARM_PATH_03");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Witamy na farmie Onara!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 5)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_TO_PASS_01");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Uważaj, ten teren jest niebezpieczny!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 6)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_CITY_BEER_05");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Nie zapomnij odebrać darmowego piwa!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 7)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_TAVERNE_05");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Orlan zaprasza do swej tawerny!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 8)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_XARDAS_TOWER_PATH_01_B");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Widać, że interesuje cię czarna magia!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 9)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_MONASTERY_ENTRY_01");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Innosie obdarz mnie swą łaską!",-1,-1,"font_old_20_white.tga",3);
    }
    else if(PLACTELEPORTACYJNY == 10)
    {
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_Teleport(hero,"NW_TROLLAREA_PORTALTEMPEL_40");
    PLACTELEPORTACYJNY = 0;
    PrintScreen("Te piramidy kryją wiele tajemnic!",-1,-1,"font_old_20_white.tga",3);
    };
};

func void teleportacja()
{
    if (Npc_IsPlayer(hero))
    {
    PLAYER_MOBSI_PRODUCTION  =  MOBSI_TELEPORT;
    self.aivar[AIV_INVINCIBLE] = FALSE;
    AI_ProcessInfos(hero);
    };
};


instance NOTELEPORT(C_Info)
{
    npc = PC_Hero;
    nr = 1;
    condition = noteleport_condition;
    information = noteleport_info;
    important = 0;
    permanent = 1;
    description = DIALOG_ENDE;
};

func int noteleport_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
{
return 1;
};
};

func void noteleport_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 0;
};


instance TOBANDIT(C_Info)
{
    npc = PC_Hero;
    condition = tobandit_condition;
    information = tobandit_info;
    important = 0;
    permanent = 1;
    description = "Bandyci Dextera";
};


func int tobandit_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (DexterTeleport == TRUE)
{
return 1;
};
};

func void tobandit_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 1;
    MultiTeleport();
};

instance TOBENGAR(C_Info)
{
    npc = PC_Hero;
    condition = tobengar_condition;
    information = tobengar_info;
    important = 0;
    permanent = 1;
    description = "Do Bengara";
};


func int tobengar_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (BengarTeleport == TRUE)
{
return 1;
};
};

func void tobengar_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 2;
    MultiTeleport();
};

instance TOBUSTER(C_Info)
{
    npc = PC_Hero;
    condition = tobuster_condition;
    information = tobuster_info;
    important = 0;
    permanent = 1;
    description = "Do Bustera";
};


func int tobuster_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (ErolTeleport == TRUE)
{
return 1;
};
};

func void tobuster_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 3;
    MultiTeleport();
};

instance TOONARFARM(C_Info)
{
    npc = PC_Hero;
    condition = toonarfarm_condition;
    information = toonarfarm_info;
    important = 0;
    permanent = 1;
    description = "Farma Onara";
};


func int toonarfarm_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (NajemnikTeleport == TRUE)
{
return 1;
};
};

func void toonarfarm_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 4;
    MultiTeleport();
};

instance TOWAYOLDWORLD(C_Info)
{
    npc = PC_Hero;
    condition = towayoldworld_condition;
    information = towayoldworld_info;
    important = 0;
    permanent = 1;
    description = "Przełęcz Khorinis";
};


func int towayoldworld_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (PrzeleczTeleport == TRUE)
{
return 1;
};
};

func void towayoldworld_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 5;
    MultiTeleport();
};

instance TOMARKETPLACE(C_Info)
{
    npc = PC_Hero;
    condition = tomarketplace_condition;
    information = tomarketplace_info;
    important = 0;
    permanent = 1;
    description = "Browar";
};


func int tomarketplace_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (PiwoTeleport == TRUE)
{
return 1;
};
};

func void tomarketplace_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 6;
    MultiTeleport();
};

instance TOTAVERNE(C_Info)
{
    npc = PC_Hero;
    condition = totaverne_condition;
    information = totaverne_info;
    important = 0;
    permanent = 1;
    description = "Tawerna";
};


func int totaverne_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (OrlanTeleport == TRUE)
{
return 1;
};
};

func void totaverne_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 7;
    MultiTeleport();
};

instance TOXARDAS(C_Info)
{
    npc = PC_Hero;
    condition = toxardas_condition;
    information = toxardas_info;
    important = 0;
    permanent = 1;
    description = "Nekromanta";
};


func int toxardas_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (XardasNekromanta == TRUE)
{
return 1;
};
};

func void toxardas_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 8;
    MultiTeleport();
};

instance TOMONASTERY(C_Info)
{
    npc = PC_Hero;
    condition = tomonastery_condition;
    information = tomonastery_info;
    important = 0;
    permanent = 1;
    description = "Do klasztoru Innosa";
};


func int tomonastery_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (KlasztorTeleport == TRUE)
{
return 1;
};
};

func void tomonastery_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 9;
    MultiTeleport();
};

instance TOWATERMAGE(C_Info)
{
    npc = PC_Hero;
    condition = towatermage_condition;
    information = towatermage_info;
    important = 0;
    permanent = 1;
    description = "Do piramid";
};


func int towatermage_condition()
{
if (PLAYER_MOBSI_PRODUCTION  ==  MOBSI_TELEPORT)
&& (PiramidyTeleport == TRUE)
{
return 1;
};
};

func void towatermage_info()
{
    AI_StopProcessInfos(hero);
    PLACTELEPORTACYJNY = 10;
    MultiTeleport();
};
Na koniec skrypt zwoju gotowania:
//**********************************************************************************
//    Magiczny Zwój Gotowania
//**********************************************************************************

INSTANCE ZwojGotowania        (C_Item)
{
    name                 =    "Zwój magicznego gotowania";

    mainflag             =    ITEM_KAT_DOCS;
    flags                 =    ITEM_MISSION;

    value                 =    0;

    visual                 =    "ItWr_Scroll_02.3DS";
    material             =    MAT_LEATHER;
    on_state[0]            =   UseZwojGotowania;
    scemeName            =    "MAP";
    description            =     name;
};
func void UseZwojGotowania ()
{
Kucharzyna = 1;
Ai_ProcessInfos (PC_HERO);
};
Czegoś jeszcze zapomniałem dodać?
 
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
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Mark56

Mark56

Moderator
som veľký magič
posty1632
Propsy1846
ProfesjaAnimator
  • Moderator
  • som veľký magič
Nie było mnie. Dobrze ze odświeżyłeś. A wiec tak.
Twój problem to ze za każdym użyciem teleportu ostaje zmienna PLAYER_MOBSI_PRODUCTION ustawiona na MOBSI_TELEPORT (nie wiem jaka liczbę dałeś tej konstancie ) a wiec opcje teleportowania, sie zawsze pokazują.
Drugie to funkcja  B_ENDPRODUCTIONDIALOG (); nie wiem co robi nie pokazałeś.
Trzecie to nie potrzebnie zrobiłeś zmienna Kucharzyna, mogłeś zrobić konstantę MOBSI_KUCHARZYNA i w razie gotowania sprawdzać czy zmienna PLAYER_MOBSI_PRODUCTION na wartość  MOBSI_KUCHARZYNA. Wtedy na pewno by ci sie nie mieszały dialogi. W takim razie funkcja B_ENDPRODUCTIONDIALOG (); ustawiała by zmienna PLAYER_MOBSI_PRODUCTION na 0 co oznaczało wyłączenie monologu.  :)
 


Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
const int MOBSI_TELEPORT = 666;
Ta opcja B_ENDPRODUCTIONDIALOG (); zamyka monolog gotowania(tak jak to jest w alchemii, kowalstwie itp).
Aktualnie zmieniłem zmienną na tego consta, co poradziłeś i teksty obu się nie nakładają na siebie(sprawdzałem na szybko używając kodów, więc nie wiem, czy później ten problem nie wróci). Ale póki co props dla ciebie, bo teoretycznie użycie consta rozwiązało problem, a trochę pogram i dam znać, co wyszło.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti


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