Przepisanie umiejętności do swojej tabelki 4552 12

O temacie

Autor Vanarius

Zaczęty 17.07.2017 roku

Wyświetleń 4552

Odpowiedzi 12

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder
Witam, mam pewien problem, stworzyłem właśnie skrypt patroszenie potworów oraz skrypt wyświetlania własnej umiejętności w oknie statystyk. Wszystko jak na razie zrobiłem bez Ikarusa i LeGo. Więc moje pytanie, jak przypiąć skrypt pod umiejętność "Patroszenie potworów" tak aby obok niego wyświetlało się "Nauczony" po nauczeniu się tego :)
Z góry dzięki za pomoc :)
 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
...\_Work\data\Scripts\System\Menu\Menu_Status.d
W tym pliku masz wszystko. Wykorzystaj którąś z nieużytych umiejętności i przerób na swoją.

W pliku Text.d znajdź 'CONST STRING TXT_TALENTS'. Tam ustawiasz nazwę umiejętności i poziomy jej uczenia.

Żeby ustawić umiejętność na 'nauczony' robisz to poleceniem:

Npc_SetTalentSkill (hero, NPC_TALENT_FIREMASTER, 1);
 

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder

Vanarius
Riquer Team

Przepisanie umiejętności do swojej tabelki
#2 2017-07-17, 12:58(Ostatnia zmiana: 2017-07-17, 13:03)
@TheKetrab Dobra, działa ale zrobiłem to w inny sposób co ty napisałeś :)
No ale niestety teraz napis "Patroszenie potworów" nachodzi na napis "Nauczony" Czy jest jakaś możliwość przesunięcia tego?
Umiejętność mam przepisaną pod "NPC_TALENT_C" która znajduje się w text.d

Post połączony: 2017-07-17, 13:02
Dobra, ogarnąłem już, trzeba się pobawić z posx w Menu_Status :D
 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
INSTANCE MENU_ITEM_TALENT_10_TITLE(C_MENU_ITEM_DEF)  { posx = STAT_B_X1;posy = STAT_TAL_Y + 8*STAT_DY; fontName = STAT_FONT_DEFAULT;flags=flags & ~IT_SELECTABLE; };
instance MENU_ITEM_TALENT_10_SKILL(C_MENU_ITEM_DEF)  { posx = STAT_B_X2;posy = STAT_TAL_Y + 8*STAT_DY; fontName = STAT_FONT_DEFAULT;flags=flags & ~IT_SELECTABLE; };

musisz pogrzebać z pozycją x. Albo skrócić nazwę :P
 

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder
Mam jeszcze jeden problem :/ Pomimo że nie jestem nauczony patroszenia zwierząt to i tak mogę zdobywać mięso. Wiem że trzeba coś dopisać w B_GiveDeathInv, próbowałem już coś tam zdziałać no ale nic :/
 

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
@Vanarius
MST_"zwierz".d
Usuń CreateInvItems (self, ItFoMuttonRaw, 1);

Kod: (B_GiveDeathInv.d) [Zaznacz]
if(PLAYER_TALENT_TAKEANIMALTROPHY[TROPHY_patroszenie] == TRUE)
{
if(slf.aivar[AIV_MM_REAL_ID] == ID_SCAVENGER) {CreateInvItems (slf, ItFoMuttonRaw, 1); };
if(slf.aivar[AIV_MM_REAL_ID] == ID_WOLF) {CreateInvItems (slf, ItFoMuttonRaw, 1); };
};
 
How can I see roses... and only feel thorns...

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder
Dzięki :D
Temat można dać jako rozwiązany :)
 

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder
Mam kolejny problem :/ Zrobiłem skrypt umiejętności Gotowania, wszystko ładnie działa tylko że zamiast
pisać "Nauka: Gotowania" (Napis który jest na środku po nauczeniu się umiejętności) to pisze "Nauka: Patroszenia Potworów" Także jak się nauczę owej umiejętności to przepisuje się pod umiejętności "Patroszenia Potworów" Skrypt pod umiejętność Gotowania przepisywałem z skryptu umiejętności Patroszenia Potworów.

func int B_TeachPlayerCook(var C_Npc slf,var C_Npc oth,var int cook)
{
var int kosten;
kosten = B_GetLearnCostTalent(oth,NPC_TALENT_D,cook);
if(oth.lp < kosten)
{
PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
B_Say(slf,oth,"$NOLEARNNOPOINTS");
return FALSE;
};
oth.lp = oth.lp - kosten;
B_LogSetTopicStatus(TOPIC_Cooking,LOG_NOTE);
B_LogEntry(TOPIC_Cooking,"Od teraz potrafie robic:");
if(cook == MUSHROOM_SOUP)
{
PLAYER_TALENT_COOKING[1] = TRUE;
B_LogEntry(TOPIC_Cooking,"...Zupe grzybowa");
};
PrintScreen(PRINT_LearnCooking,-1,-1,FONT_Screen,2);
Npc_SetTalentSkill(oth,NPC_TALENT_D,1);
return TRUE;
};

To znajduje się w text.d
const string PRINT_LearnCooking  = "Nauka: Zupa grzybowa.";
To znajduje się w Menu_Status.d
// -- COOKING ------
items[61] = "MENU_ITEM_TALENT_20_TITLE";
items[62] = "MENU_ITEM_TALENT_20_SKILL";

INSTANCE MENU_ITEM_TALENT_20_TITLE(C_MENU_ITEM_DEF) { posx = STAT_B_X1;posy = STAT_TAL_Y + 18*STAT_DY; fontName = STAT_FONT_DEFAULT;flags=flags & ~IT_SELECTABLE; };
instance MENU_ITEM_TALENT_20_SKILL(C_MENU_ITEM_DEF) { posx = STAT_B_X5;posy = STAT_TAL_Y + 18*STAT_DY; fontName = STAT_FONT_DEFAULT;flags=flags & ~IT_SELECTABLE; };

Przejrzałem skrypt kilka razy i wszystko jest ok. No może jedynie jestem ślepy i nie widzę tego błędu :/
 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Po pierwsze to masz źle napisany skrypt. Bo nawet jeśli nie masz odpowiedniej ilości punktów nauki, to ci zeżre tyle ile masz i nauczy umiejętności.

func int B_TeachPlayerCook(var C_Npc slf,var C_Npc oth,var int cook)
{
var int kosten;
kosten = B_GetLearnCostTalent(oth,NPC_TALENT_D,cook);
if(oth.lp < kosten)
{
PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
B_Say(slf,oth,"$NOLEARNNOPOINTS");
return FALSE;
}
else // a jeśli się ma więcej LP niż kosten to:
{

oth.lp = oth.lp - kosten;
B_LogSetTopicStatus(TOPIC_Cooking,LOG_NOTE);
B_LogEntry(TOPIC_Cooking,"Od teraz potrafie robic:");
if(cook == MUSHROOM_SOUP)
{
PLAYER_TALENT_COOKING[1] = TRUE;
B_LogEntry(TOPIC_Cooking,"...Zupe grzybowa");
};
PrintScreen(PRINT_LearnCooking,-1,-1,FONT_Screen,2);
Npc_SetTalentSkill(oth,NPC_TALENT_D,1);
return TRUE;
};
};

Co do napisu... Nie widzę błędu. Może też jestem ślepy :P
Spróbuj ręcznie:

PrintScreen("Nauka: gotowanie",-1,-1,FONT_Screen,2);
Jeszcze jedno. Czy wywołujesz swoją funkcję B_TeachPlayerCook u tego, kto uczy?
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Jego skrypt jest w porządku. Return kończy funkcję, a jego warunek jest poprawnie napisany.

if(oth.lp < kosten)
{
PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
B_Say(slf,oth,"$NOLEARNNOPOINTS");
return FALSE; //Zakańcza funkcję i zwraca wartość 0
};
 
:ok: zachęca do dalszej pomocy. Nie zapominaj o tym!

Prywatne wiadomości typu "Ej, pomocy" kasuję od razu. Od tego jest forum, a nie PW.

To me, defeat in anything is merely temporary, and its punishment is but an urge for me to greater effort to achieve my goal. Defeat simply tells me that something is wrong in my doing; it is a path leading to success and truth.

In order to realize our true self we must be willing to live without being dependent upon the opinion of others.

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder
@TheKetrab Heh, głupio powiedzieć ale zamiast wywoływać funkcję B_TeachPlayerCook to wywoływałem funkcję patroszenia potworów xD Już wszystko jest ok. Tylko mam jeszcze jedno pytanie, co  trzeba zrobić żeby można było gotować zupę po nauczeniu się tego? Bo teraz mam to samo co było z patroszeniem zwierząt że i tak mogłem zdobywać mięso nawet się nie ucząc patroszenia. Czy to powinno działać na zmiennych?
 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Nie wiem, czy zamierzasz bawić się w różne zupy, czy jak. Musisz zrobić nowe MOBSI (bo kocioł chyba nie ma) (wzoruj się np. stołem alchemicznym). Jest to monolog, w którym napiszesz sobie elegancko wszystko.

Czyli jeśli nauczysz się gotowania to zmienna UmiemGotowacZupe = TRUE;
Do warunku w MOBSI dodajesz: if UmiemGotowacZupe == TRUE
 

Vanarius

Vanarius

Riquer Team
Początkujący Modder
posty332
Propsy62
ProfesjaGrafik 3D
  • Riquer Team
  • Początkujący Modder
@TheKetrab Tak jak przeczuwałem :) Dzięki za pomoc.
 


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