Nauka atrybutów 3229 8

O temacie

Autor Buras

Zaczęty 2.10.2010 roku

Wyświetleń 3229

Odpowiedzi 8

Buras

Buras

Użytkownicy
posty202
Propsy23
Profesjabrak
  • Użytkownicy

Buras

Nauka atrybutów
2010-10-02, 19:42(Ostatnia zmiana: 2010-10-02, 19:43)
Elos
Mam takie problemik, otóż chciałem zrobić skrypt nauki i coś mi nie wyszło to znaczy w dialogu działa to jak wybór po czym gdy wybiorę daną opcję znikają mi pozostałe a moje punkty umiejętności zostaja wyrzucone do kosza, ponieważ dany atrybut mi się nie dodaje (ale głupio sformułowane :D ).

Tu macie skrypt:

// **************************************************
// nauka
// **************************************************

INSTANCE DIA_Tybald_nauka (C_INFO)
{
npc = STT_2007_Tybald;
nr = 4;
condition = DIA_Tybald_nauka_Condition;
information = DIA_Tybald_nauka_Info;
permanent = 1;
description = "Chcę się czegoś nauczyć.";
};

FUNC INT DIA_Tybald_nauka_Condition()
{
if (Npc_KnowsInfo (hero,DIA_Tybald_magsu))
{
return 1;
};
};

FUNC VOID DIA_Tybald_nauka_Info()
{
AI_Output (other, self,"DIA_Tybald_nauka_15_00"); //Chcę się czegoś nauczyć.
AI_Output (self, other,"DIA_Tybald_nauka_12_01"); //No to przyjacielu... Po kielichu.

Info_ClearChoices (DIA_Tybald_nauka);
Info_AddChoice (DIA_Tybald_nauka,DIALOG_BACK ,DIA_Tybald_nauka_BACK);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_5,5*LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_5);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_1,LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_1);
};

func void DIA_Tybald_nauka_BACK()
{
Info_ClearChoices (DIA_Tybald_nauka);
};

func void DIA_Tybald_nauka_MAN_5()
{
B_BuyAttributePoints(other, ATR_MANA, 5*LPCOST_ATTRIBUTE_MANA);
Info_ClearChoices (DIA_Tybald_nauka);
Info_AddChoice (DIA_Tybald_nauka,DIALOG_BACK ,DIA_Tybald_nauka_BACK);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_5,5*LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_5);
};

func void DIA_Tybald_nauka_MAN_1()
{
B_BuyAttributePoints(other, ATR_MANA, 1*LPCOST_ATTRIBUTE_MANA);
Info_ClearChoices (DIA_Tybald_nauka);
Info_AddChoice (DIA_Tybald_nauka,DIALOG_BACK ,DIA_Tybald_nauka_BACK);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_1,LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_1);
};

A i robiłem na podstawie tutka: http://themodders.org/index.php?/topic/6682-ginauka/
Ale wywaliło mi dość sporo błędów i to trochę przerobiłem...
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Bo czyścisz wszystko, a później nie dodajesz wszystkiego.

func void DIA_Tybald_nauka_MAN_5()
{
B_BuyAttributePoints(other, ATR_MANA, 5*LPCOST_ATTRIBUTE_MANA);
Info_ClearChoices (DIA_Tybald_nauka);
Info_AddChoice (DIA_Tybald_nauka,DIALOG_BACK ,DIA_Tybald_nauka_BACK);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_5,5*LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_5);
};
Dodaj jeszcze:
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_1,LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_1);
Analogicznie w drugiej opcji.

Buras

Buras

Użytkownicy
posty202
Propsy23
Profesjabrak
  • Użytkownicy
Ehh pogubiłem sie, czyli skrypt ma wyglądać tak??

// **************************************************
// nauka
// **************************************************

INSTANCE DIA_Tybald_nauka (C_INFO)
{
npc = STT_2007_Tybald;
nr = 4;
condition = DIA_Tybald_nauka_Condition;
information = DIA_Tybald_nauka_Info;
permanent = 1;
description = "Chcę się czegoś nauczyć.";
};

FUNC INT DIA_Tybald_nauka_Condition()
{
if (Npc_KnowsInfo (hero,DIA_Tybald_magsu))
{
return 1;
};
};

FUNC VOID DIA_Tybald_nauka_Info()
{
AI_Output (other, self,"DIA_Tybald_nauka_15_00"); //Chcę się czegoś nauczyć.
AI_Output (self, other,"DIA_Tybald_nauka_12_01"); //No to przyjacielu... Po kielichu.

Info_ClearChoices (DIA_Tybald_nauka);
Info_AddChoice (DIA_Tybald_nauka,DIALOG_BACK ,DIA_Tybald_nauka_BACK);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_5,5*LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_5);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_1,LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_1);
};

func void DIA_Tybald_nauka_BACK()
{
Info_ClearChoices (DIA_Tybald_nauka);
};

func void DIA_Tybald_nauka_MAN_5()
{
B_BuyAttributePoints(other, ATR_MANA, 5*LPCOST_ATTRIBUTE_MANA);
Info_ClearChoices (DIA_Tybald_nauka);
Info_AddChoice (DIA_Tybald_nauka,DIALOG_BACK ,DIA_Tybald_nauka_BACK);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_5,5*LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_5);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_1,LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_1);
};

func void DIA_Tybald_nauka_MAN_1()
{
B_BuyAttributePoints(other, ATR_MANA, 1*LPCOST_ATTRIBUTE_MANA);
Info_ClearChoices (DIA_Tybald_nauka);
Info_AddChoice (DIA_Tybald_nauka,DIALOG_BACK ,DIA_Tybald_nauka_BACK);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_1,LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_1);
Info_AddChoice (DIA_Tybald_nauka,B_BuildLearnString(NAME_LearnMana_5,5*LPCOST_ATTRIBUTE_MANA,0) ,DIA_Tybald_nauka_MAN_5);
};

Potem na to samo wychodzi, tylko nie znikają opcje dialogowe wyboru  :|
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Ok, trochę źle cię zrozumiałem. Myślałem, że chodzi ci oto, że ci znikają.

Twój skrypt jest dobry, tyle że nie zwiększasz many, tylko ją regenerujesz... Zamiast ATR_MANA daj ATR_MANA_MAX.

Buras

Buras

Użytkownicy
posty202
Propsy23
Profesjabrak
  • Użytkownicy
Spoko działa. Ale jeszcze 1 pytanko: Jak się uczy many to ona jest wtedy od razu zregenerowana?? To znaczy np.:
Mam 5/5 many, uczę się 7 pkt. i mam 5/12 many czy 12/12??
Nie pamiętam jak to w Gothicu jest...
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Nauka atrybutów
#5 2010-10-02, 21:33(Ostatnia zmiana: 2010-10-02, 21:33)
Napisałeś, że działa, to nie znasz odpowiedzi na to pytanie? :D

Mi się wydaje, że jest
Cytuj
5/12 many
, ale nie jestem pewny.

Buras

Buras

Użytkownicy
posty202
Propsy23
Profesjabrak
  • Użytkownicy
Znaczy się u mnie wtedy jest 5/12 i nie jestem pewien czy nie powinno być 12/12 :D
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja

Adanos
Administrator

Nauka atrybutów
#7 2010-10-02, 21:39(Ostatnia zmiana: 2010-10-02, 21:39)
No to daj tak:
B_BuyAttributePoints(other, ATR_MANA_MAX, 5*LPCOST_ATTRIBUTE_MANA);
other.attribute[ATR_MANA]+=5;

Buras

Buras

Użytkownicy
posty202
Propsy23
Profesjabrak
  • Użytkownicy
No tera to już działa na 120%.
wielkie thx, nawet nie wiesz jak jestem ci wdzieczny :D

Temat do zamknięcia.
 


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