No więc postanowiłem nieco skrypcik rozwinąć [Pisanie w Księgach]. Poczytałem o monologach i potrzebowałem napisać monolog do w moim przypadku "pióra". Oto co mam.
1. Plik z przedmiotem
INSTANCE Itmw_Pioro (C_Item)
{
name = "Pióro";
mainflag = ITEM_KAT_NONE;
flags = 0;
value = 100;
visual = "Feder.3DS";
material = MAT_METAL;
on_state[0] = Use_PISANIE_S1;
description = name;
TEXT[4] = NAME_Value; COUNT[4] = Value_Schlüssel;
};
FUNC VOID Use_PISANIE_S1()
{
var C_NPC her; her = Hlp_GetNpc(PC_Hero);
var C_NPC rock; rock = Hlp_GetNpc(PC_Rockefeller);
monolog = PISANIE;
if ( (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))||(Hlp_GetInstanceID(self)==Hlp_GetInstanceID(rock)) )
{
self.aivar[AIV_INVINCIBLE]=TRUE;
Ai_ProcessInfos (her);
};
};
2. Plik z dialogiem monologowym: DIA_mon1_PISANIE.d
// **************************************************
// [ST SYSTEM]
// *************************************************
instance PC_BezPisania (C_INFO)
{
npc = PC_Hero;
nr = 999;
condition = PISANIE_TRUE;
information = PC_BezPisania_Info;
permanent = 1;
description = DIALOG_ENDE;
};
FUNC INT PISANIE_TRUE()
{
if (monolog == PISANIE)
{
return TRUE;
};
};
func VOID PC_BezPisania_Info()
{
AI_StopProcessInfos (self);
self.aivar[AIV_INVINCIBLE]=FALSE;
};
// **************************************************
// [ST SYSTEM - wlasciwosc]
// **************************************************
instance PC_Pisanie (C_INFO)
{
npc = PC_Hero;
nr = 999;
condition = PISANIE_TRUE;
information = PC_Pisanie_Info;
permanent = 1;
description = "Chcę Pisać";
};
FUNC int PC_PISANIE_TRUE()
{
return 1;
};
FUNC VOID PC_Pisanie_Info()
{
Info_ClearChoices (PC_Pisanie);
Info_AddChoice (PC_Pisanie,"Wezmę to pióro i księgę",PC_Pisanie_Wybor1);
};
FUNC VOID PC_Pisanie_Wybor1 ()
{
Info_ClearChoices (PC_Pisanie);
Info_AddChoice (PC_Pisanie, "[PISZ]",PC_Pisanie_Wybor1_1);
};
func void PC_Pisanie_Wybor1_1()
{
Info_ClearChoices (PC_Pisanie);
Info_AddChoice (PC_Pisanie, "A",PC_Pisanie_Wybor1_1_1);
Info_AddChoice (PC_Pisanie, "B",PC_Pisanie_Wybor3_1);
Info_AddChoice (PC_Pisanie, "C",PC_Pisanie_Wybor3_4);
Info_AddChoice (PC_Pisanie, "D",PC_Pisanie_Wybor3_6);
Info_AddChoice (PC_Pisanie, "E",PC_Pisanie_Wybor3_7);
Info_AddChoice (PC_Pisanie, "F",PC_Pisanie_Wybor3_8);
Info_AddChoice (PC_Pisanie, "G",PC_Pisanie_Wybor3_9);
Info_AddChoice (PC_Pisanie, "H",PC_Pisanie_Wybor3_10);
Info_AddChoice (PC_Pisanie, "I",PC_Pisanie_Wybor3_11);
Info_AddChoice (PC_Pisanie, "J",PC_Pisanie_Wybor3_12);
Info_AddChoice (PC_Pisanie, "K",PC_Pisanie_Wybor3_13);
Info_AddChoice (PC_Pisanie, "L",PC_Pisanie_Wybor3_14);
Info_AddChoice (PC_Pisanie, "M",PC_Pisanie_Wybor3_15);
Info_AddChoice (PC_Pisanie, "N",PC_Pisanie_Wybor3_16);
Info_AddChoice (PC_Pisanie, "O",PC_Pisanie_Wybor3_17);
Info_AddChoice (PC_Pisanie, "P",PC_Pisanie_Wybor3_18);
Info_AddChoice (PC_Pisanie, "R",PC_Pisanie_Wybor3_19);
Info_AddChoice (PC_Pisanie, "S",PC_Pisanie_Wybor3_20);
Info_AddChoice (PC_Pisanie, "T",PC_Pisanie_Wybor3_21);
Info_AddChoice (PC_Pisanie, "U",PC_Pisanie_Wybor3_22);
Info_AddChoice (PC_Pisanie, "V",PC_Pisanie_Wybor3_23);
Info_AddChoice (PC_Pisanie, "W",PC_Pisanie_Wybor3_24);
Info_AddChoice (PC_Pisanie, "X",PC_Pisanie_Wybor3_25);
Info_AddChoice (PC_Pisanie, "Y",PC_Pisanie_Wybor3_26);
Info_AddChoice (PC_Pisanie, "Z",PC_Pisanie_Wybor3_27);
Info_AddChoice (PC_Pisanie, "SPACJA",PC_Pisanie_Wybor3_22);
Info_AddChoice (PC_Pisanie, DIALOG_BACK,PC_Pisanie_Wybor1_1_2);
};
func void PC_Pisanie_Wybor1_1_1()
{
a = ConcatStrings(a, "A");
};
func void PC_Pisanie_Wybor3_1()
{
a = ConcatStrings(a, "B");
};
func void PC_Pisanie_Wybor3_4 ()
{
a = ConcatStrings(a, "C");
};
func void PC_Pisanie_Wybor3_6 ()
{
a = ConcatStrings(a, "D");
};
func void PC_Pisanie_Wybor3_7 ()
{
a = ConcatStrings(a, "E");
};
func void PC_Pisanie_Wybor3_8 ()
{
a = ConcatStrings(a, "F");
};
func void PC_Pisanie_Wybor3_9 ()
{
a = ConcatStrings(a, "G");
};
func void PC_Pisanie_Wybor3_10 ()
{
a = ConcatStrings(a, "H");
};
func void PC_Pisanie_Wybor3_11 ()
{
a = ConcatStrings(a, "I");
};
func void PC_Pisanie_Wybor3_12 ()
{
a = ConcatStrings(a, "J");
};
func void PC_Pisanie_Wybor3_13 ()
{
a = ConcatStrings(a, "K");
};
func void PC_Pisanie_Wybor3_14 ()
{
a = ConcatStrings(a, "L");
};
func void PC_Pisanie_Wybor3_15 ()
{
a = ConcatStrings(a, "M");
};
func void PC_Pisanie_Wybor3_16 ()
{
a = ConcatStrings(a, "N");
};
func void PC_Pisanie_Wybor3_17 ()
{
a = ConcatStrings(a, "O");
};
func void PC_Pisanie_Wybor3_18 ()
{
a = ConcatStrings(a, "P");
};
func void PC_Pisanie_Wybor3_19 ()
{
a = ConcatStrings(a, "R");
};
func void PC_Pisanie_Wybor3_20 ()
{
a = ConcatStrings(a, "S");
};
func void PC_Pisanie_Wybor3_21 ()
{
a = ConcatStrings(a, "T");
};
func void PC_Pisanie_Wybor3_22 ()
{
a = ConcatStrings(a, "U");
};
func void PC_Pisanie_Wybor3_23 ()
{
a = ConcatStrings(a, "V");
};
func void PC_Pisanie_Wybor3_24 ()
{
a = ConcatStrings(a, "W");
};
func void PC_Pisanie_Wybor3_25 ()
{
a = ConcatStrings(a, "X");
};
func void PC_Pisanie_Wybor3_26 ()
{
a = ConcatStrings(a, "Y");
};
func void PC_Pisanie_Wybor3_27 ()
{
a = ConcatStrings(a, "Z");
};
func void PC_Pisanie_Wybor3_28 ()
{
a = ConcatStrings(a, " ");
};
func void PC_Pisanie_Wybor1_1_2()
{
Info_ClearChoices (PC_Pisanie);
};
Reparsuję skrypty, robię paczkę z modem itd,
Wyniki: Po przywołaniu konsolą pióra, i po próbie akcji na tym itemie, nic się nie wyświetla. Podejrzewam że problem tkwi w dialogu do itema, ale już próbowałem chyba wszystkiego, więc może mnie oświecicie, byłbym wdzięczny.
Aha no i zadeklarowane zmienna i stała
var int monolog;
const int PISANIE = 1;