Płacenie bryłkami,złotem,tabliczkami za nauke 1755 7

O temacie

Autor Lobos

Zaczęty 1.04.2017 roku

Wyświetleń 1755

Odpowiedzi 7

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Hej
Byłby ktoś tak miły i wstawił skrypt płacenia za nauke zarówno PN i złotem ? Chciałbym się nauczyć jak to zrobić by jednemu NPC można było płacić przy każdym punkcie tabliczkami lub złotem

Do tej pory udało mi się ustalić że trzeba coś pozmieniać w tych plikach
-B_BuildLearnString
-B_GetLearnCostAttribute

Próbowałem pójść na skróty i poprostu dać tak
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString(PRINT_LearnSTR1 , B_GetLearnCostAttribute(other, ATR_STRENGTH)),"1 Bryłka złota" ,DIA_Koffi_Teach_STR_1);ale oczywiście nie hula
 

Duke Nukem

Duke Nukem

Gry (themodders@telegram)
Król Duke Nukem
posty826
Propsy422
ProfesjaNierób
  • Gry (themodders@telegram)
  • Król Duke Nukem
Sprawdź skrypty ER, tam jest płacenie bryłkami za otwieranie zamków/skradanie/kradzież. Jeśli nie ma to się pomyliłem XD.
 
 

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
a da sie je wyciągnąć jak one są z ikarusem ?
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
A nie próbowałeś po prostu skorzystać z warunków + usuwanie/przekazywanie przedmiotu npc'owi oraz dodawanie statystyk/umiejętności bezpośrednio do bohatera, bez korzystania z tego? Coś w stylu:
Info_AddChoice   (DIA_NAUKA, "Siła +1(1 bryłka złota + 1 PN)", DIA_NAUKA_SILA);
FUNC VOID DIA_NAUKA_SILA()
{
if hero.lp >= 1
&& (Npc_HasItems (other, itmi_nugget) >= 1)
{
hero.lp = hero.lp - 1;
Npc_RemoveInvItems (other, itmi_nugget, 1);
B_RaiseAttribute (hero, ATR_STRENGTH, 1);
}
else
{
AI_Output (other ,self,"DIA_NAUKA_SILA_22_00"); //Brakuje ci doświadczenia lub złota.
};
};
Takie sklejone na szybko, więc teoretycznie mogłyby być błędy, ale można zrozumieć, o co mi chodzi.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
O co dokładnie ci chodzi ?

Chcesz nauczyć się siły i za to zapłacić np 5 PN + 50 Golda?

Czy jak?
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Graveir
No dobry pomysł podsunąłeś, nie próbowałem tego chociaż wolał bym zmienić coś w istniejących już funkcjach, dodać jakiś nowy string czy coś, nie znam sie za bardzo na tym ale gdybym chociaż miał jakiś wzór to już bym sobie poradził.

Torwish
Tak, właśnie coś takiego chce zrobić. I w zależności od NPC, np. jeden brał by za nauke kamienne tabliczki, inny bryłki złota a w obozie płaciło by się złotem.


EDIT
Dobra już sobie poradziłem
Było to łatwiejsze niż myślałem. Wystarczyło zamiast PRINT_STR1 dać poprostu swój tekst i potem removeinvItems

Zastanawiam się tylko gdzie jest jeszcze przypisany dialog w przypadku gdy niemamy PN ?

Post połączony: 2017-04-02, 21:17
Hmm, mam jeszcze jeden problem
Wszystko działa ale gdy naciśniemy w dialogu by uczyć się 5-ciu bądz jednego punktu siły niemając punktów nauki to i tak pobiera mi z EQ bryłki złota. Chciałbym zrobić tak że gdy niemamy PN dialog się nie będzie wyświetlać. Bądź zmienić samą tą funkcje która odpowiada za wyświetlanie dialogu. Dałem warunek if (hero.lp ale nie działa, niewiem dlaczego.
Wklejam cały skrypt, wg mnie wygląda dobrze, niewiem dlaczego to hero.lp nie działa..
INSTANCE DIA_Koffi_Teach(C_INFO)
{
npc = STRF_3105_Koffi;
nr = 150;
condition = DIA_Koffi_Teach_Condition;
information = DIA_Koffi_Teach_Info;
permanent = TRUE;
description = "Pomóż mi popracować nad moją siłą";
};                       

FUNC INT DIA_Koffi_Teach_Condition()
{
if (Npc_KnowsInfo (other, DIA_Koffi_nauczysz))
&& (MIS_Koffi_Gulasz == LOG_SUCCESS)
{
return TRUE;
};
};
 
FUNC VOID DIA_Koffi_Teach_Info()
{
AI_Output (other,self ,"DIA_Koffi_Teach_15_00"); //Pomóż mi popracować nad moją siłą


Koffi_Merke_STR = other.attribute[ATR_STRENGTH];


Info_ClearChoices (DIA_Koffi_Teach);
Info_AddChoice (DIA_Koffi_Teach, DIALOG_BACK, DIA_Koffi_Teach_Back);
if (hero.lp >= 1)
{
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 1 (1 bryłka złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)) ,DIA_Koffi_Teach_STR_1);
}
if (hero.lp >= 5)
{
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 5 (5 bryłek złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)*5) ,DIA_Koffi_Teach_STR_5);
};

};

FUNC VOID DIA_Koffi_Teach_Back ()
{
if (Koffi_Merke_STR < other.attribute[ATR_STRENGTH])

{
AI_Output (self, other, "DIA_Koffi_Teach_Back_01_00"); //Dobrze!
};

Info_ClearChoices (DIA_Koffi_Teach);

};

FUNC VOID DIA_Koffi_Teach_STR_1 ()
{
if (Npc_HasItems (other, ItMi_GoldNugget_Addon) >=1)
{
B_TeachAttributePoints (self, other, ATR_STRENGTH, 1, T_LOW);
Npc_RemoveInvItems (other, ItMi_GoldNugget_Addon,1);

Info_ClearChoices (DIA_Koffi_Teach);
Info_AddChoice (DIA_Koffi_Teach, DIALOG_BACK, DIA_Koffi_Teach_Back);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 1 (1 bryłka złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)) ,DIA_Koffi_Teach_STR_1);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 5 (5 bryłek złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)*5) ,DIA_Koffi_Teach_STR_5);
}
else
{
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_00"); //Nowy niemieć złota!
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_01"); //Wrócić gdy mieć złoto!
};
};

FUNC VOID DIA_Koffi_Teach_STR_5 ()
{
if (Npc_HasItems (other, ItMi_GoldNugget_Addon) >=5)
{
B_TeachAttributePoints (self, other, ATR_STRENGTH, 5, T_LOW);
Npc_RemoveInvItems (other, ItMi_GoldNugget_Addon,5);

Info_ClearChoices (DIA_Koffi_Teach);
Info_AddChoice (DIA_Koffi_Teach, DIALOG_BACK, DIA_Koffi_Teach_Back);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 1 (1 bryłka złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)) ,DIA_Koffi_Teach_STR_1);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 5 (5 bryłek złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)*5) ,DIA_Koffi_Teach_STR_5);
}
else
{
AI_Output (self, other ,"DIA_Koffi_Teach_STR_5_15_00"); //Nowy niemieć złota!
AI_Output (self, other ,"DIA_Koffi_Teach_STR_5_15_01"); //Wrócić gdy mieć złoto!
};
};


 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Przed warunkiem hasitems dodaj: (nie w addchoice, w funkcji )
if (hero.lp >= 5) { Wtedy jeśli będziesz miał wystarczająco duzo punktów nauki to wykona się warunek sprawdzający czy masz złoto. A jeśli nie będziesz miał to Kaffi powie ci ze nie masz punktów nauki.

Chociaż nie wiem, czy Cię rozumiem. Ty chcesz zrobić żeby ci nie zabierał zlota, jak nie masz LP, tylko mówił ze nie masz LP; czy chcesz żeby się wgl nie dało gościa prosić onaukę jak nie ma sięLP? Byłoby to niegothicowe :p
 

Lobos

Lobos

Użytkownicy
posty594
Propsy360
Profesjabrak
  • Użytkownicy
Dzięki za pomoc :) :)
Dodałem pare if-ów jeszcze i śmiga tak jak chciałem i jest gothicowo :p

FUNC VOID DIA_Koffi_Teach_STR_1 ()
{
if (Npc_HasItems (other, ItMi_GoldNugget_Addon) >=1)
&& (hero.lp >= 1)
{
B_TeachAttributePoints (self, other, ATR_STRENGTH, 1, T_LOW);
Npc_RemoveInvItems (other, ItMi_GoldNugget_Addon,1);

Info_ClearChoices (DIA_Koffi_Teach);
Info_AddChoice (DIA_Koffi_Teach, DIALOG_BACK, DIA_Koffi_Teach_Back);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 1 (1 bryłka złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)) ,DIA_Koffi_Teach_STR_1);
Info_AddChoice (DIA_Koffi_Teach, B_BuildLearnString("Siła + 5 (5 bryłek złota)" , B_GetLearnCostAttribute(other, ATR_STRENGTH)*5) ,DIA_Koffi_Teach_STR_5);
}
else
{
if (hero.lp == 0)
{
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_00"); //Nowy mieć pusta głowa!
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_01"); //Ty wrócić gdy nabierze doświadczenia
Info_ClearChoices (DIA_Koffi_Teach);
}
else if (Npc_HasItems (other, ItMi_GoldNugget_Addon) == 0)
{
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_02"); //Nowy niemieć złota!
AI_Output (self, other ,"DIA_Koffi_Teach_STR_1_15_03"); //Wrócić gdy mieć złoto!
Info_ClearChoices (DIA_Koffi_Teach);
};
};
};

Można zamknąć
 


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