MakeRune.d Problemy z nowymi runami 3448 5

O temacie

Autor chemik

Zaczęty 6.08.2010 roku

Wyświetleń 3448

Odpowiedzi 5

chemik

chemik

Użytkownicy
posty33
  • Użytkownicy
Nad tym skryptem męczyłem się trzy dni, a pod koniec taka przykra niespodzianka, Błąd:
U:PAR: CONTENT\STORY\DIALOG_MOBSIS\MAKERUNE.D: Unknown identifier: PC_TRF1CIRCLE
Co tu jest żle?

Oto fragment skryptu(nie zżynać :D  ):

Cytuj
//#######################################
//      MOD
//#######################################

INSTANCE PC_Rune_Transform (C_Info)
{
   npc            = PC_Hero;
   nr      = 998;
   condition      = PC_Rune_Transform_Condition;
   information      = PC_Rune_Transform_Info;
   permanent      = TRUE;
   description      = "Twórz runy przemian";
};

FUNC INT PC_Rune_Transform_Condition ()
{
   if( (PLAYER_MOBSI_PRODUCTION   ==   MOBSI_MAKERUNE)
   && ((PLAYER_TALENT_RUNES[SPL_TrfDragonSnapper] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfGiantRat] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfGiantBug] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfWolf] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfWaran] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfSnapper] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfWarg] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfFireWaran] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfLurker] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfShadowbeast   ] == TRUE) ) )
   {   
      return TRUE;
   };
};

FUNC VOID PC_Rune_Transform_Info()
{
   Info_ClearChoices (PC_Rune_Transform);
   
   Info_AddChoice      (PC_Rune_Transform,DIALOG_BACK,PC_Rune_Transform_BACK);
   if (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy pierwszego Kręgu",PC_Trf1Circle_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfGiantRat] == TRUE)
   || (PLAYER_TALENT_RUNES[SPL_TrfGiantBug] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy drugiego Kręgu",PC_Trf2Circle_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfWolf] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfWaran] == TRUE)
   || (PLAYER_TALENT_RUNES[SPL_TrfLurker] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy trzeciego Kręgu",PC_Trf3Circle_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfWarg] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfFireWaran] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy czwartego Kręgu",PC_Trf4Circle_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfSnapper] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfDragonSnapper] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy piątego Kręgu",PC_Trf5Circle_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfShadowbeast] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy szóstego Kręgu",PC_Trf6Circle_Info);
   };
   
};
FUNC VOID PC_Rune_Transform_BACK()
{
   Info_ClearChoices (PC_Rune_Transform);
};

FUNC VOID PC_Trf1Circle_Info ()
{
   Info_ClearChoices (PC_Trf1Circle);
   
   Info_AddChoice      (PC_Trf1Circle,DIALOG_BACK,PC_Trf1Circle_BACK);
   if (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
   {
      Info_AddChoice      (PC_Trf1Circle,"Przemiana w owcę",PC_ItRu_SheepTrf_Info);
   };
   
};

FUNC VOID PC_Trf1Circle_BACK()
{
   Info_ClearChoices (PC_Trf1Circle);
};

//****************************************************************************************************

FUNC VOID PC_Trf2Circle_Info ()
{
   Info_ClearChoices (PC_Trf2Circle);
   
   Info_AddChoice      (PC_Trf2Circle,DIALOG_BACK,PC_Trf2Circle_BACK);
   if (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
   {
      Info_AddChoice      (PC_Trf2Circle,"Przemiana w ścierwojada",PC_ItRu_ScavengerTrf_Info);
   };

EDIT: Sory, zapomniałem, że ten temat powinien być w 'Błędy podczas reprasowania'
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Cytuj
Info_AddChoice (PC_Rune_Transform,"Runy pierwszego Kręgu",PC_Trf1Circle_Info);
Nie może być PC_Trf1Circle_Info, ma być np. PC_Rune_Transform_Circle1. W pozostałych wypadkach analogicznie.

chemik

chemik

Użytkownicy
posty33
  • Użytkownicy
Zrobiłem jak kazałeś i teraz mam unknown identifier: PC_RUNE_TRANSFORM_CIRCLE1
skrypt wygląda tak:
Cytuj
//#######################################
//      MOD
//#######################################

INSTANCE PC_Rune_Transform (C_Info)
{
   npc            = PC_Hero;
   nr      = 998;
   condition      = PC_Rune_Transform_Condition;
   information      = PC_Rune_Transform_Info;
   permanent      = TRUE;
   description      = "Twórz runy przemian";
};

FUNC INT PC_Rune_Transform_Condition ()
{
   if( (PLAYER_MOBSI_PRODUCTION   ==   MOBSI_MAKERUNE)
   && ((PLAYER_TALENT_RUNES[SPL_TrfDragonSnapper] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfGiantRat] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfGiantBug] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfWolf] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfWaran] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfSnapper] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfWarg] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfFireWaran] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfLurker] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_TrfShadowbeast   ] == TRUE) ) )
   {   
      return TRUE;
   };
};

FUNC VOID PC_Rune_Transform_Info()
{
   Info_ClearChoices (PC_Rune_Transform);
   
   Info_AddChoice      (PC_Rune_Transform,DIALOG_BACK,PC_Rune_Transform_BACK);
   if (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy pierwszego Kręgu",PC_Rune_Transform_Circle1);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfGiantRat] == TRUE)
   || (PLAYER_TALENT_RUNES[SPL_TrfGiantBug] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy drugiego Kręgu",PC_Rune_Transform_Circle2);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfWolf] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfWaran] == TRUE)
   || (PLAYER_TALENT_RUNES[SPL_TrfLurker] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy trzeciego Kręgu",PC_Rune_Transform_Circle3);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfWarg] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfFireWaran] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy czwartego Kręgu",PC_Rune_Transform_Circle4);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfSnapper] == TRUE)
   && (PLAYER_TALENT_RUNES[SPL_TrfDragonSnapper] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy piątego Kręgu",PC_Rune_Transform_Circle5);
   };
   if (PLAYER_TALENT_RUNES[SPL_TrfShadowbeast] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform,"Runy szóstego Kręgu",PC_Rune_Transform_Circle6);
   };
   
};
FUNC VOID PC_Rune_Transform_BACK()
{
   Info_ClearChoices (PC_Rune_Transform);
};

FUNC VOID PC_Rune_Transform_Circle1_Info ()
{
   Info_ClearChoices (PC_Rune_Transform_Circle1);
   
   Info_AddChoice      (PC_Rune_Transform_Circle1,DIALOG_BACK,PC_Rune_Transform_Circle1_BACK);
   if (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform_Circle1,"Przemiana w owcę",PC_ItRu_SheepTrf_Info);
   };
   
};

FUNC VOID PC_Rune_Transform_Circle1_BACK()
{
   Info_ClearChoices (PC_Rune_Transform_Circle1);
};

//****************************************************************************************************

FUNC VOID PC_Rune_Transform_Circle2_Info ()
{
   Info_ClearChoices (PC_Rune_Transform_Circle2);
   
   Info_AddChoice      (PC_Rune_Transform_Circle2,DIALOG_BACK,PC_Rune_Transform_Circle2_BACK);
   if (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
   {
      Info_AddChoice      (PC_Rune_Transform_Circle2,"Przemiana w ścierwojada",PC_ItRu_ScavengerTrf_Info);
   };

EDIT: Pomoże mi ktoś?
 

DragonMaster

DragonMaster

Użytkownicy
posty20
  • Użytkownicy
Nie łatwiej przyjrzeć się gotowemu skryptowu i pozmieniać co trzeba aby stworzyć nowy. Ja tak robiłem i udało mi się zrobić tworzenie trucizn, rzeźbienie, czy pisanie zwojów.
Pozatym w standardowych Dialog_Mobsis nie ma użytego Info_AddChoice (PC_Rune_Transform,DIALOG_BACK,PC_Rune_Transform_BACK); (i tym podobnego), lepiej robić wszystko za pomocą if i else.
 





chemik

chemik

Użytkownicy
posty33
  • Użytkownicy
Ale ja ten skrypt zrobiłem właśnie na kształt innych z MakeRune. Poza tym w MakeRune są addchoice, dowody? Proszę uprzejmie:
Cytuj
//*******************************************************
// Runen- Erschaffung Dialoge
//---------------------------
//*******************************************************

INSTANCE PC_Circle_01 (C_Info)
{
   npc            = PC_Hero;
   condition      = PC_Circle_01_Condition;
   information      = PC_Circle_01_Info;
   permanent      = TRUE;
   description      = "Twórz runy pierwszego kręgu";
};

FUNC INT PC_Circle_01_Condition ()
{
   if( (PLAYER_MOBSI_PRODUCTION   ==   MOBSI_MAKERUNE)
   && ((PLAYER_TALENT_RUNES[SPL_LIGHT] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_Firebolt] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_LightHeal] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_SummonGoblinSkeleton] == TRUE)
   ||  (PLAYER_TALENT_RUNES[SPL_Zap] == TRUE) ) )
   {   
      return TRUE;
   };
};

FUNC VOID PC_Circle_01_Info()
{
   Info_ClearChoices (PC_Circle_01);
   
   Info_AddChoice      (PC_Circle_01,DIALOG_BACK,PC_Circle_01_BACK);
   if (PLAYER_TALENT_RUNES[SPL_LIGHT] == TRUE)
   {
      Info_AddChoice      (PC_Circle_01,NAME_SPL_LIGHT,PC_ItRu_Light_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_Firebolt] == TRUE)
   {
      Info_AddChoice      (PC_Circle_01,NAME_SPL_Firebolt,PC_ItRu_Firebolt_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_Zap] == TRUE)
   {
      Info_AddChoice      (PC_Circle_01,NAME_SPL_Zap,PC_ItRu_Zap_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_LightHeal] == TRUE)
   {
      Info_AddChoice      (PC_Circle_01,NAME_SPL_LightHeal,PC_ItRu_LightHeal_Info);
   };
   if (PLAYER_TALENT_RUNES[SPL_SummonGoblinSkeleton] == TRUE)
   {
      Info_AddChoice      (PC_Circle_01,NAME_SPL_SummonGoblinSkeleton,PC_ItRu_SumGobSkel_Info);
   };
   
};
FUNC VOID PC_Circle_01_BACK()
{
   Info_ClearChoices (PC_Circle_01);
};

I co?

EDIT: Pomóżcie mi proszę. Przez ten błąd stoi produkcja mojego moda.
 

Sulejman

Sulejman

Użytkownicy
Piotrek
posty237
Propsy229
Profesjabrak
  • Użytkownicy
  • Piotrek
Tak jak pisał Dragon Master zastosuj instrukcję warunkową:
//#######################################
// Mod
//#######################################
var int Trf_Logic;//Czy bohater tworzy runy przemiany?
var int Trf_C1;//Krąg 1
var int Trf_C2;//Krąg 2
var int Trf_C3;//Krąg 3
var int Trf_C4;//Krąg 4
var int Trf_C5;//Krąg 5
var int Trf_C6;//Krąg 6
//****************************************************************************************************

instance PC_Rune_Transform (C_Info)
{
npc = PC_Hero;
nr = 998;
condition = PC_Rune_Transform_Condition;
information = PC_Rune_Transform_Info;
permanent = TRUE;
description = "Twórz runy przemiany"; //Po wybraniu tej opcji wybieramy krąg runy, którą chcemy stworzyć
};

func int PC_Rune_Transform_Condition ()
{
if( (PLAYER_MOBSI_PRODUCTION == MOBSI_MAKERUNE)
&& ((PLAYER_TALENT_RUNES[SPL_TrfDragonSnapper] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfGiantRat] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfGiantBug] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfWolf] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfWaran] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfSnapper] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfWarg] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfFireWaran] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfLurker] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfShadowbeast ] == TRUE) ) )
{
return TRUE;
};
};

func void PC_Rune_Transform_Info()
{
Trf_Logic=TRUE;//Tworzymy runy, bardzo ważna operacja przypisania
};

instance PC_Rune_Transform_Back (C_Info)
{
npc = PC_Hero;
nr = 998;
condition = PC_Rune_Transform_Back_Condition;
information = PC_Rune_Transform_Back_Info;
permanent = TRUE;
description = "Wstecz";
};

func int PC_Rune_Transform_Back_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_Back_Info()
{
Trf_Logic=FALSE;
};

//****************************************************************************************************
instance PC_Rune_Transform_C1 (C_Info)
{
npc = PC_Hero;
nr = 1;
condition = PC_Rune_Transform_C1_Condition;
information = PC_Rune_Transform_C1_Info;
permanent = TRUE;
description = "Runy pierwszego kręgu";
};

func int PC_Rune_Transform_C1_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_C1_Info()
{
if (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)
{
Trf_C1=TRUE;
};
};
//****************************************************************************************************
instance PC_Rune_Transform_C2 (C_Info)
{
npc = PC_Hero;
nr = 2;
condition = PC_Rune_Transform_C2_Condition;
information = PC_Rune_Transform_C2_Info;
permanent = TRUE;
description = "Runy drugiego kręgu";
};

func int PC_Rune_Transform_C2_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_C2_Info()
{
if (PLAYER_TALENT_RUNES[SPL_TrfScavenger] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfGiantRat] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfGiantBug] == TRUE)
{
Trf_C2=TRUE;
};
};
//****************************************************************************************************
instance PC_Rune_Transform_C3 (C_Info)
{
npc = PC_Hero;
nr = 3;
condition = PC_Rune_Transform_C3_Condition;
information = PC_Rune_Transform_C3_Info;
permanent = TRUE;
description = "Runy trzeciego kręgu";
};

func int PC_Rune_Transform_C3_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_C3_Info()
{
if (PLAYER_TALENT_RUNES[SPL_TrfWolf] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfWaran] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfLurker] == TRUE)
{
Trf_C3=TRUE;
};
};
//****************************************************************************************************
instance PC_Rune_Transform_C4 (C_Info)
{
npc = PC_Hero;
nr = 4;
condition = PC_Rune_Transform_C4_Condition;
information = PC_Rune_Transform_C4_Info;
permanent = TRUE;
description = "Runy czwartego kręgu";
};

func int PC_Rune_Transform_C4_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_C4_Info()
{
if (PLAYER_TALENT_RUNES[SPL_TrfWarg] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfFireWaran] == TRUE)
{
Trf_C4=TRUE;
};
};
//****************************************************************************************************
instance PC_Rune_Transform_C5 (C_Info)
{
npc = PC_Hero;
nr = 5;
condition = PC_Rune_Transform_C5_Condition;
information = PC_Rune_Transform_C5_Info;
permanent = TRUE;
description = "Runy piątego kręgu";
};

func int PC_Rune_Transform_C5_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_C5_Info()
{
if (PLAYER_TALENT_RUNES[SPL_TrfSnapper] == TRUE)
|| (PLAYER_TALENT_RUNES[SPL_TrfDragonSnapper] == TRUE)
{
Trf_C5=TRUE;
};
};
//****************************************************************************************************
instance PC_Rune_Transform_C6 (C_Info)
{
npc = PC_Hero;
nr = 6;
condition = PC_Rune_Transform_C6_Condition;
information = PC_Rune_Transform_C6_Info;
permanent = TRUE;
description = "Runy szóstego kręgu";
};

func int PC_Rune_Transform_C6_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_C6_Info()
{
if (PLAYER_TALENT_RUNES[SPL_TrfShadowbeast] == TRUE)
{
Trf_C6=TRUE;
};
};
//****************************************************************************************************
// Teraz wybieramy konkretną runę
//****************************************************************************************************
instance PC_Rune_Transform_Sheep (C_Info)
{
npc = PC_Hero;
nr = 1;
condition = PC_Rune_Transform_Sheep_Condition;
information = PC_Rune_Transform_Sheep_Info;
permanent = TRUE;
description = "Przemiana w owcę";
};

func int PC_Rune_Transform_Sheep_Conditiom()
{
return Trf_Logic;
};

func void PC_Rune_Transform_Sheep_Info()
{
if (PLAYER_TALENT_RUNES[SPL_TrfSheep] == TRUE)//Tu dodaj jeszcze warunki posiadania składników
{
//A tutaj usunięcie ich z ekwipunku

CreateInvItems   (hero,ItRu_TrfSheep,1);
Print (PRINT_RuneSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMi_RuneBlank,1);
};
Trf_Logic=FALSE;
B_ENDPRODUCTIONDIALOG ();
};
//Inne runy robisz analogiczne do tej. Dziękuję, dobranoc
 


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