Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Pokaż wątki - Pawciow

Strony: [1] 2
1
Witam, nie znalazłem nic podobnego, więc. Mam problem z odpalaniem moda i mam takie oto
2 błędy, wyświetlane podczas ładowania gry.
Spoiler
Spoiler
Po załadowaniu jest czarny świat i nie widać nic prócz paska życia (mogę jeszcze włączyć ekwipunek i menu statystyk, a poza tym nic). System windows 8.1 64 bit. Inne mody działają poprawnie...

Pomóżcie ! :)

2
Witam... zainstalowałem G2nk gold na windows 8.1 i mi nie odpala, tylko jest proces i ma 2.8 mb pamięci i 0 % procka..próbowałem ustawienia zgodności z win xp sp3, ale to nic nie daje, uruchamiania jako admin też nie.
Moja specyfikacja sprzętowa:
procek: intel core i5 3210 - 2,5 GHz
pamięć: 8 gb ram
rozdzielczość 1440x900 60 Hz
grafa: Nvidia Geforce GT 650M 2gb
wersja sterownika grafiki: 334.89
os: windows 8.1 64 bit
 Ktoś ma jakiś pomysł jak to naprawić? Z góry dzięki  :)

3
Pytania i problemy / g2nk nie działa na pełnym ekranie
« dnia: 2012-11-22, 17:07 »
witam, od jakiegoś czasu zaczął mi się pojawiać błąd
MEM BAD POINTER, po kliknięciu OK - smart heap library error
zaś po kliknięciu CANCEL: Microsoft Visual C++ Runtime Error;
na potrzeby betatestów grałem jakiś czas w oknie,
teraz gdy chcę uruchomić grę na pełnym ekranie
(nowa gra lub wczytanie save), pasek wczytywania zacina
się na samym końcu i nie chce doczytać/załadować save...
( w oknie wszystko działa, ale błąd z mem bad pointer wciąż istnieje);
próbowałem już rożnych rzeczy, directx, czyszczenie kompa ze śmieci
skanowanie antywirusem i nic...jakieś pomysły?

4
Pytania i problemy / nieszczęsne ENDE.
« dnia: 2012-11-07, 21:19 »
mam problem z dialogami w modzie, otóż:
plik Text.d jest zedytowany i linijka(domyślnie w skryptach niemieckich):
const string Dialog_Ende = "ENDE";jest zamieniona na:
const string Dialog_Ende = "KONIEC";jednakże w dialogach, tzn. z tą postacią nie ma opcji
dialogowej, a pojawia się napis "ENDE." ;

nie znalazłem w skryptach i nie wiem, jak zmienić to na "KONIEC"...
tak jak jest w g2nk; ktoś ma jakiś pomysł na rozwiązanie
albo zetknął się z tym wcześniej?

5
Pytania i problemy / czcionka z ekranu ładowania
« dnia: 2012-10-26, 12:26 »
pewnie noobskie pytanie, ale skąd wziąć taką czcionkę,
jaka jest w g2nk na ekranach łądowania, żeby takie litery
wstawić na zupełnie inny obraz/screenshot z gry i
zaimplementować do moda? (napis wczytywanie/loading -
zresztą to ten sam typ czcionki jak się nie mylę?)
czy trzeba wyciąć z danego obrazu i wkleić do swojego?
albo jakiś inny sposób?

6
Pytania i problemy / daedalus problem
« dnia: 2012-08-28, 19:41 »
nie wiedziałem, gdzie to wstawić, stosując się do tego z woga
próbowałem zainstalować plugin Daedalus do Notepada++
(mam najnowszę wersja 6.1.6) i nie pojawia mi się
nowa pozycja w liście 'Język', nie wiem co jest? jak wyciągać same teksty dialogowe ze skryptów?
czytałem ten temat punkt 19.
Spoiler
19. chcę przetłumaczyć moda, ale nie znam się na skryptach... co robić?
ODP: zdekompiluj skrypty Gothic sourcerem i wyeksportuj teksty deadalus translator-em, uzyskasz tabelę tekstów do przetłumaczenia, którą możesz od razu poprawić na twoje tłumaczenie lub wyeksportować do pliku i plik przetłumaczyć. następnie gdy mamy tłumaczenie w tym programie, używamy "apply to SRC"
i uzyskamy skrypty które można skompilować zawierające nasze tłumaczenie, potem wystarczy dodać skompilowane pliki *.dat i plik ou.bin do pliku paczki *.mod programem Gothic VDFS
UWAGA: jeśli tłumaczysz translatorem a nie ręcznie, mogą ci się pozamieniać apostrofy na cudzysłowy, co zepsułoby skrypty po włączeniu tłumaczenia do nich więc powinieneś w odpowiednich miejscach pozamieniać je spowrotem na takie jak w oryginalnym tekście
ale nic to mi nie daje ; a to jest chyba tylko do składni, więc skąd wziąć samego Daedalusa Translatora?

7
Ukończone modyfikacje / [G2NK] Aggro Myrtana v1.1 DE
« dnia: 2012-06-19, 00:51 »
Ktoś może ściągnął lub ma dobry link do tego moda?

Aggro Myrtana - Dark Forest

Aggro Myrtana - Worldofgothic

8
Archiwum / Laer Gjoll – Horror of cemetery
« dnia: 2011-12-29, 01:50 »
link do tematu z rosyjskim modem:
http://forum.worldofplayers.ru/showthread.php?t=32472&page=52

po translatorze
http://translate.google.pl/translate?sl=auto&tl=pl&js=n&prev=_t&hl=pl&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fforum.worldofplayers.ru%2Fshowthread.php%3Ft%3D32472%26page%3D52


[media]
https://www.youtube.com/watch?v=y5Tu--rcbvU
[/media]

[media]
https://www.youtube.com/watch?v=PWj76R1rnos
[/media]
linki są nieaktywne, a na tym forum nie mam praw założyć
tematu tudzież jakąkolwiek wiadomość wysłać do twórców.
Może ktoś miał styczność z tym modem?

9
Skrypty / poprawne zaimplementowanie regeneracji
« dnia: 2010-12-27, 02:01 »
ma ktoś pomysł, jak poprawnie zaimplementować(zmodyfikować) taki kod jako level regeneracji  do nauczenia w grze?
func void zs_recharger()
{
B_ResetAll(self);
B_ClearPerceptions(self);
};

func int zs_recharger_loop()
{
if(Npc_GetStateTime(self) > 3)
{
Npc_SetStateTime(self,4);
if(hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX]) && (hero.attribute[ATR_HITPOINTS] > 0)
{
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 1)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 5;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 2)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 15;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 3)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 25;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 4)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 40;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 5)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 75;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 6)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 100;
};
                        if (hero.attribute[ATR_MANA]>hero.attribute[ATR_MANA_MAX])
                        {
                        hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA_MAX];
                        };

};

};
return LOOP_CONTINUE;
};

func void zs_recharger_end()
{

};



10
Archiwum / [G2NK] Hexenfeuermod DE
« dnia: 2010-12-11, 17:28 »
pobrałem mod hexenfeuermod z tego linku http://www.worldofgothic.de/dl/download_285.htm instaluję na Gothic 2 NK, odpalam Gothicstarter i...ładuje mi się zwykły dodatek G2 NK, coś nie tak jest z tym uploadem? czy ja tak tylko mam?

11
Spacer / świat w nowym modzie
« dnia: 2010-12-10, 12:12 »
witam, mam problem ze światem dieinsel (jak i innymi) z woga;  ściągnąłem pliki, otwieram w spacerze zen, kompiluję świat i pojawia się ciemność(indoor) albo niebo (outdoor) ; nic nie widać poza tym; gdy zrobiłem paczkę z modem i odpalilem w gothicu to jest czarna przestrzeń np. ; z góry dzięki za ewentualną pomoc;]

12
Pytania i problemy / pliki na wogu
« dnia: 2010-11-15, 19:22 »
Witam, jako że jestem zielony to mam pytanie: jak sprawić, aby pliki np. mody znalazły się w downloadzie na WorldofGothic?;p

13
Pytania i problemy / komenda "zaczekaj tutaj" nie działa
« dnia: 2010-02-19, 19:05 »
mam skrypt mojego npca:
INSTANCE VLK_150_Zenek (Npc_Default)
{
// ------ NSC ------
name = "Zenek";
guild = GIL_VLK;
id = 150;
voice = 8;
flags   = FALSE;
npctype = NPCTYPE_FRIEND;

// ------ Aivars ------
aivar[AIV_FollowDist] = 300;
B_SetAttitude(self,ATT_FRIENDLY);
aivar[AIV_ToughGuy] = TRUE;

// ------ Attribute ------
B_SetAttributesToChapter (self, 4);

// ------ Kampf-Taktik ------
fight_tactic = FAI_HUMAN_MASTER;

// ------ Equippte Waffen ------
EquipItem (self, ItMw_ShortSword2);
EquipItem (self, ItRw_sld_bow);

// ------ Inventory ------
CreateInvItems (self, itpo_Health_03, 2);

// ------ visuals ------
B_SetNpcVisual (self, MALE, "Hum_Head_Pony", Face_N_Pirat01, BodyTex_L, ITAR_PIR_L_Addon);
Mdl_SetModelFatness (self, 1);
Mdl_ApplyOverlayMds (self, "Humans_Relaxed.mds");

// ------ NSC-relevante Talente vergeben ------
B_GiveNpcTalents (self);

// ------ Kampf-Talente ------
B_SetFightSkills (self,70);

// ------ TA anmelden ------
daily_routine = Rtn_Start_150;
};

FUNC VOID Rtn_Start_150 ()
{
TA_Stand_WP (07,30,22,00,"NW_XARDAS_TOWER_IN1_25");
TA_Sleep (22,00,07,30,"NW_XARDAS_TOWER_IN1_31");
};

FUNC VOID Rtn_Follow_150 ()
{
TA_Follow_Player (08,00,20,00, "NW_XARDAS_TOWER_IN1_25");
TA_Follow_Player (20,00,08,00, "NW_XARDAS_TOWER_IN1_25");
};

FUNC VOID Rtn_Stand_150 ()
{
TA_Stand_WP (08,00,20,00, "NW_XARDAS_TOWER_IN1_25");
TA_Stand_WP (20,00,08,00, "NW_XARDAS_TOWER_IN1_25");
};
tudzież skrypt dialogu:
instance DIA_Zenek_Exit(C_Info)
{
npc = VLK_150_Zenek;
nr = 999;
condition = DIA_Zenek_Exit_Condition;
information = DIA_Zenek_Exit_Info;
permanent = TRUE;
description = Dialog_Ende;
};


func int DIA_Zenek_Exit_Condition()
{
return TRUE;
};

func void DIA_Zenek_Exit_Info()
{
AI_StopProcessInfos(self);
};


instance DIA_Zenek_Hallo(C_Info)
{
npc = VLK_150_Zenek;
nr = 1;
condition = DIA_Zenek_Hallo_Condition;
information = DIA_Zenek_Hallo_Info;
permanent = FALSE;
description = "Cześć...";
};


func int DIA_Zenek_Hallo_Condition()
{
return TRUE;
};

func void DIA_Zenek_Hallo_Info()
{
AI_Output(other,self,"DIA_Zenek_Hallo_15_00"); //Cześć Zenek.
AI_Output(self,other,"DIA_Zenek_Hallo_15_01");  //Cześć.
};


instance DIA_Zenek_KommMit(C_Info)
{
npc = VLK_150_Zenek;
nr = 1;
condition = DIA_Zenek_KommMit_Condition;
information = DIA_Zenek_KommMit_Info;
permanent = TRUE;
description = "Chodź ze mną.";
};


func int DIA_Zenek_KommMit_Condition()
{
if((self.aivar[AIV_PARTYMEMBER] == FALSE) && Npc_KnowsInfo(other,DIA_Zenek_Hallo) && (self.aivar[AIV_TAPOSITION] == FALSE))
{
return TRUE;
};
};

func void DIA_Zenek_KommMit_Info()
{
AI_Output(other,self,"DIA_Zenek_KommMit_15_00"); //Zenek chodź. Idziemy.
AI_Output(self,other,"DIA_Zenek_KommMit_15_01"); //No dobra.
self.aivar[AIV_PARTYMEMBER] = TRUE;
AI_StopProcessInfos (self);
Npc_ExchangeRoutine (self,"FOLLOW");
};


instance DIA_Zenek_WarteHier(C_Info)
{
npc = VLK_150_Zenek;
nr = 1;
condition = DIA_Zenek_WarteHier_Condition;
information = DIA_Zenek_WarteHier_Info;
permanent = TRUE;
description = "Zaczekaj tutaj!";
};


func int DIA_Zenek_WarteHier_Condition()
{
if((self.aivar[AIV_PARTYMEMBER] == TRUE) && Npc_KnowsInfo(other,DIA_Zenek_Hallo) && (self.aivar[AIV_TAPOSITION] == FALSE))
{
return TRUE;
};
};

func void DIA_Zenek_WarteHier_Info()
{
AI_Output(other,self,"DIA_Zenek_WarteHier_15_00"); //Zaczekaj tutaj!
AI_Output(self,other,"DIA_Zenek_WarteHier_15_01");  //Dobrze.
self.aivar[AIV_PARTYMEMBER] = FALSE;
AI_StopProcessInfos(self);
Npc_ExchangeRoutine (self,"STAND");
};
gdy do niego zagaduję, owszem potem wszędzie za mną łazi, ale później nie wyświetla mi się dialog, żeby mu powiedzieć, aby zaczekał i się nie ruszał nigdzie(jest tylko napis "koniec"); co jest źle?

14
kto mi powie, jakim cudem, gdy chcę zreparsować skrypty w gothic_starter_modzie, to wyskakuję komunikat o redefined identifier  C_BRAGOBANDITSDEAD w linijce 5, która to funkcja występuje tylko i wyłącznie w dialogu Cavalorna w g2nk (DIA_Addon_BAU_4300_Cavalorn.d); nie wiem, jak to naprawić ; oto kod:
func int C_BragoBanditsDead()
{
if((Npc_IsDead(Ambusher_1013) || (Bdt_1013_Away == TRUE)) && Npc_IsDead(Ambusher_1014) && Npc_IsDead(Ambusher_1015))
{
return TRUE;
};
};


instance DIA_Addon_Cavalorn_EXIT(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 999;
condition = DIA_Addon_Cavalorn_EXIT_Condition;
information = DIA_Addon_Cavalorn_EXIT_Info;
permanent = TRUE;
description = Dialog_Ende;
};


func int DIA_Addon_Cavalorn_EXIT_Condition()
{
return TRUE;
};

func void DIA_Addon_Cavalorn_EXIT_Info()
{
AI_StopProcessInfos(self);
};


instance DIA_Addon_Cavalorn_PICKPOCKET(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 900;
condition = DIA_Addon_Cavalorn_PICKPOCKET_Condition;
information = DIA_Addon_Cavalorn_PICKPOCKET_Info;
permanent = TRUE;
description = "(Kradzież tego kołczanu będzie dość łatwa)";
};


func int DIA_Addon_Cavalorn_PICKPOCKET_Condition()
{
if((Npc_GetTalentSkill(other,NPC_TALENT_PICKPOCKET) == 1) && (self.aivar[AIV_PlayerHasPickedMyPocket] == FALSE) && (other.attribute[ATR_DEXTERITY] >= (25 - Theftdiff)))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_PICKPOCKET_Info()
{
Info_ClearChoices(DIA_Addon_Cavalorn_PICKPOCKET);
Info_AddChoice(DIA_Addon_Cavalorn_PICKPOCKET,Dialog_Back,DIA_Addon_Cavalorn_PICKPOCKET_BACK);
Info_AddChoice(DIA_Addon_Cavalorn_PICKPOCKET,DIALOG_PICKPOCKET,DIA_Addon_Cavalorn_PICKPOCKE
T_DoIt);
};

func void DIA_Addon_Cavalorn_PICKPOCKET_DoIt()
{
if(other.attribute[ATR_DEXTERITY] >= 25)
{
B_GiveInvItems(self,other,ItRw_Arrow,44);
self.aivar[AIV_PlayerHasPickedMyPocket] = TRUE;
B_GivePlayerXP(XP_Ambient);
Info_ClearChoices(DIA_Addon_Cavalorn_PICKPOCKET);
}
else
{
AI_StopProcessInfos(self);
B_Attack(self,other,AR_Theft,1);
};
};

func void DIA_Addon_Cavalorn_PICKPOCKET_BACK()
{
Info_ClearChoices(DIA_Addon_Cavalorn_PICKPOCKET);
};


instance DIA_Addon_Cavalorn_MeetingIsRunning(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 1;
condition = DIA_Addon_Cavalorn_MeetingIsRunning_Condition;
information = DIA_Addon_Cavalorn_MeetingIsRunning_Info;
important = TRUE;
permanent = TRUE;
};


var int DIA_Addon_Cavalorn_MeetingIsRunning_OneTime;

func int DIA_Addon_Cavalorn_MeetingIsRunning_Condition()
{
if(Npc_IsInState(self,ZS_Talk) && (RangerMeetingRunning == LOG_Running))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_MeetingIsRunning_Info()
{
if(DIA_Addon_Cavalorn_MeetingIsRunning_OneTime == FALSE)
{
AI_Output(self,other,"DIA_Addon_Cavalorn_MeetingIsRunning_08_00"); //Witaj w Kręgu, przyjacielu.
DIA_Addon_Cavalorn_MeetingIsRunning_OneTime = TRUE;
}
else
{
AI_Output(self,other,"DIA_Addon_Gaan_MeetingIsRunning_08_01"); //Vatras da ci kolejne zadanie.
};
AI_StopProcessInfos(self);
};


instance DIA_Addon_Cavalorn_HALLO(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_HALLO_Condition;
information = DIA_Addon_Cavalorn_HALLO_Info;
description = "Jakieś kłopoty?";
};


func int DIA_Addon_Cavalorn_HALLO_Condition()
{
return TRUE;
};

func void DIA_Addon_Cavalorn_HALLO_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_HALLO_15_00"); //Jakieś kłopoty?
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_08_01"); //Do diabła. Nie wiem, gdzie się ukrywają. Zabijesz jednego, ale zaraz wracają.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_08_02"); //Chwila. Ja ciebie znam. To ty ciągle żebrałeś u mnie o strzały, jeszcze w Górniczej Dolinie.
Info_ClearChoices(DIA_Addon_Cavalorn_HALLO);
Info_AddChoice(DIA_Addon_Cavalorn_HALLO,"Nazywasz się Cavalorn, tak?",DIA_Addon_Cavalorn_HALLO_Ja);
Info_AddChoice(DIA_Addon_Cavalorn_HALLO,"Nie przypominam sobie...",DIA_Addon_Cavalorn_HALLO_weissNicht);
};

func void DIA_Addon_Cavalorn_HALLO_weissNicht()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_HALLO_weissNicht_15_00"); //Nie przypominam sobie...
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_weissNicht_08_01"); //Daj spokój! Nauczyłem cię łucznictwa i skradania się w mojej chatce niedaleko Starego Obozu! Przypominasz sobie?
};

func void DIA_Addon_Cavalorn_HALLO_Ja()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_HALLO_Ja_15_00"); //Nazywasz się Cavalorn, tak?
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Ja_08_01"); //Ach, nie zapomniałeś o mnie. Koniec końców obaj przeszliśmy przez tę przeklętą kolonię.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Ja_08_02"); //Dokąd idziesz?
Info_ClearChoices(DIA_Addon_Cavalorn_HALLO);
Info_AddChoice(DIA_Addon_Cavalorn_HALLO,"Nie mam określonego celu.",DIA_Addon_Cavalorn_HALLO_keinZiel);
Info_AddChoice(DIA_Addon_Cavalorn_HALLO,"Z powrotem do Górniczej Doliny.",DIA_Addon_Cavalorn_HALLO_Bauern);
if(Mil_310_Stadtwache.aivar[AIV_PASSGATE] == FALSE)
{
Info_AddChoice(DIA_Addon_Cavalorn_HALLO,"Do miasta.",DIA_Addon_Cavalorn_HALLO_Stadt);
};
};

func void DIA_Addon_Cavalorn_HALLO_Stadt()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_HALLO_Stadt_15_00"); //Do miasta.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Stadt_08_01"); //Ach, też do miasta.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Stadt_08_02"); //Miałbyś kłopoty ze strażą. Teraz, gdy aż roi się tu od bandytów, nie każdy może wejść do miasta.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Stadt_08_03"); //Kilka dni temu przechodził tędy jeden ze starych Psioników z Górniczej Doliny. Mówił, że może wchodzić i wychodzić z Khorinis, kiedy tylko chce.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Stadt_08_04"); //Poszedł do doliny pod tą dużą wieżą. Gdzieś w okolicy wodospadu musi być przejście.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Stadt_08_05"); //Może powinieneś z nim porozmawiać.
Info_ClearChoices(DIA_Addon_Cavalorn_HALLO);
};

func void DIA_Addon_Cavalorn_HALLO_Bauern()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_HALLO_Bauern_15_00"); //Z powrotem do Górniczej Doliny.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Bauern_08_01"); //Naprawdę? Hmm. Szkoda, że nie mogę z tobą iść, ale muszę załatwić kilka spraw.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_Bauern_08_02"); //Jeżeli dostaniesz się do Górniczej Doliny, sprawdź, czy moja chata jeszcze stoi, dobrze? Pewnego dnia chciałbym tam wrócić.
MIS_Addon_Cavalorn_TheHut = LOG_Running;
Log_CreateTopic(TOPIC_Addon_CavalornTheHut,LOG_MISSION);
Log_SetTopicStatus(TOPIC_Addon_CavalornTheHut,LOG_Running);
B_LogEntry(TOPIC_Addon_CavalornTheHut,"Cavalorn chce, żebym sprawdził, czy w Górniczej Dolinie wciąż stoi jego stara chata. Z tego, co pamiętam, znajdowała się ona na wzgórzach na zachód od Starego Obozu. Wydaje mi się, że coś tam mogło zostać.");
Info_ClearChoices(DIA_Addon_Cavalorn_HALLO);
};

func void DIA_Addon_Cavalorn_HALLO_keinZiel()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_HALLO_keinZiel_15_00"); //Nie mam określonego celu.
AI_Output(self,other,"DIA_Addon_Cavalorn_HALLO_keinZiel_08_01"); //Nie chcesz powiedzieć, co? Nie ma sprawy.
Info_ClearChoices(DIA_Addon_Cavalorn_HALLO);
};


instance DIA_Addon_Cavalorn_Beutel(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_Beutel_Condition;
information = DIA_Addon_Cavalorn_Beutel_Info;
description = "Byłem w twojej chacie w Górniczej Dolinie.";
};


func int DIA_Addon_Cavalorn_Beutel_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_HALLO) && (Npc_HasItems(other,ItSe_ADDON_CavalornsBeutel) || (SC_OpenedCavalornsBeutel == TRUE)))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_Beutel_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_15_00"); //Byłem w twojej chacie w Górniczej Dolinie.
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_08_01"); //A zatem jeszcze stoi.
if(MIS_Addon_Cavalorn_TheHut == LOG_Running)
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_15_02"); //Tak. I wiem, co stamtąd chciałeś.
};
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_08_03"); //Udało ci się to znaleźć?
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_15_04"); //Jeżeli mówisz o torbie pełnej rudy... Tak, mam ją.
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_08_05"); //Ale z ciebie spryciula, wiesz o tym?
if(MIS_Addon_Cavalorn_TheHut == LOG_Running)
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_15_06"); //A czego mógłbyś potrzebować z tej starej chaty? Nic tam nie zostało.
};
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_08_07"); //Masz ją ze sobą? Dam ci za nią 100 sztuk złota.
TOPIC_End_CavalornTheHut = TRUE;
B_GivePlayerXP(XP_Ambient);
Info_ClearChoices(DIA_Addon_Cavalorn_Beutel);
if(Npc_HasItems(other,ItSe_ADDON_CavalornsBeutel))
{
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,"Pewnie.",DIA_Addon_Cavalorn_Beutel_ja);
}
else if(Npc_HasItems(other,ItMi_Nugget))
{
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,"Nie, ale mam kawałki rudy.",DIA_Addon_Cavalorn_Beutel_jaerz);
};
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,"Nie.",DIA_Addon_Cavalorn_Beutel_no);
};

func void DIA_Addon_Cavalorn_Beutel_back()
{
Info_ClearChoices(DIA_Addon_Cavalorn_Beutel);
AI_Output(self,other,"DIA_Addon_Cavalorn_back_08_00"); //Mam nadzieję, że wkrótce ją odzyskam.
};

func void DIA_Addon_Cavalorn_Beutel_jaerz()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_jaerz_15_00"); //Nie, ale mam kawałki rudy.
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_jaerz_08_01"); //Też dobrze.
Info_ClearChoices(DIA_Addon_Cavalorn_Beutel);
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,Dialog_Back,DIA_Addon_Cavalorn_Beutel_back);
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,"A dlaczego ją zostawiłeś?",DIA_Addon_Cavalorn_Beutel_why);
};

func void DIA_Addon_Cavalorn_Beutel_ja()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_ja_15_00"); //Pewnie.
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_ja_08_01"); //Świetnie.
Info_ClearChoices(DIA_Addon_Cavalorn_Beutel);
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,Dialog_Back,DIA_Addon_Cavalorn_Beutel_back);
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,"A dlaczego ją zostawiłeś?",DIA_Addon_Cavalorn_Beutel_why);
};

func void DIA_Addon_Cavalorn_Beutel_no()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_no_15_00"); //Nie.
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_no_08_01"); //Więc przynieś mi to! Koniec końców sam bym chyba poszedł po ten towar do tej przeklętej Górniczej Doliny.
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_no_15_02"); //Jestem wzruszony.
Info_ClearChoices(DIA_Addon_Cavalorn_Beutel);
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,Dialog_Back,DIA_Addon_Cavalorn_Beutel_back);
Info_AddChoice(DIA_Addon_Cavalorn_Beutel,"A dlaczego ją zostawiłeś?",DIA_Addon_Cavalorn_Beutel_why);
};

func void DIA_Addon_Cavalorn_Beutel_why()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Beutel_why_15_00"); //A dlaczego ją zostawiłeś?
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_why_08_01"); //Kto mógłby przypuszczać, że w Khorinis ruda jest tak cenna.
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_why_08_02"); //W kolonii za głupi kawałek rudy nie dostałbyś nawet miejsca do spania.
AI_Output(self,other,"DIA_Addon_Cavalorn_Beutel_why_08_03"); //W porcie można dostać po głowie za kawałek rudy.
};


instance DIA_Addon_Cavalorn_ErzGeben(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_ErzGeben_Condition;
information = DIA_Addon_Cavalorn_ErzGeben_Info;
description = "Daj mi 100 sztuk złota, a przyniosę ci tę rudę.";
};


func int DIA_Addon_Cavalorn_ErzGeben_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_Beutel) && (Npc_HasItems(other,ItSe_ADDON_CavalornsBeutel) || Npc_HasItems(other,ItMi_Nugget)))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_ErzGeben_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_ErzGeben_15_00"); //Daj mi 100 sztuk złota, a przyniosę ci tę rudę.
AI_Output(self,other,"DIA_Addon_Cavalorn_ErzGeben_08_01"); //Zgoda. Masz.
CreateInvItems(self,ItMi_Gold,100);
B_GiveInvItems(self,other,ItMi_Gold,100);
if(B_GiveInvItems(other,self,ItSe_ADDON_CavalornsBeutel,1) == FALSE)
{
B_GiveInvItems(other,self,ItMi_Nugget,1);
};
AI_Output(self,other,"DIA_Addon_Cavalorn_ErzGeben_08_02"); //Prawdziwy z ciebie przyjaciel. Dziękuję.
MIS_Addon_Cavalorn_TheHut = LOG_SUCCESS;
B_GivePlayerXP(XP_Addon_CavalornsBeutel);
};


instance DIA_Addon_Cavalorn_WASMACHSTDU(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_WASMACHSTDU_Condition;
information = DIA_Addon_Cavalorn_WASMACHSTDU_Info;
description = "Co tu robisz?";
};


func int DIA_Addon_Cavalorn_WASMACHSTDU_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_HALLO) && (MIS_Addon_Nefarius_BringMissingOrnaments == 0))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_WASMACHSTDU_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_WASMACHSTDU_15_00"); //Co tu robisz?
AI_Output(self,other,"DIA_Addon_Cavalorn_WASMACHSTDU_08_01"); //Utknąłem. Gdyby nie ci przeklęci bandyci, w ogóle by mnie tu nie było.
};


instance DIA_Addon_Cavalorn_Banditen(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 10;
condition = DIA_Addon_Cavalorn_Banditen_Condition;
information = DIA_Addon_Cavalorn_Banditen_Info;
description = "O co chodzi z tymi bandytami?";
};


func int DIA_Addon_Cavalorn_Banditen_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_WASMACHSTDU) && (MIS_Addon_Nefarius_BringMissingOrnaments == 0))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_Banditen_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Banditen_15_00"); //O co chodzi z tymi bandytami?
AI_Output(self,other,"DIA_Addon_Cavalorn_Banditen_08_01"); //Przespałeś cały ostatni tydzień?
AI_Output(other,self,"DIA_Addon_Cavalorn_Banditen_15_02"); //Ech...
AI_Output(self,other,"DIA_Addon_Cavalorn_Banditen_08_03"); //Mówię o tych szczurach z kolonii karnej - rozleźli się po całej okolicy; łupią i mordują.
AI_Output(self,other,"DIA_Addon_Cavalorn_Banditen_08_04"); //Cieszę się, że darowali mi życie. Nie uważałem i dostałem w czaszkę.
if(C_BragoBanditsDead() == FALSE)
{
AI_Output(self,other,"DIA_Addon_Cavalorn_Banditen_08_05"); //Nie wiem, jak mam teraz odzyskać swoje rzeczy.
};
};


instance DIA_Addon_Cavalorn_ARTEFAKT(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_ARTEFAKT_Condition;
information = DIA_Addon_Cavalorn_ARTEFAKT_Info;
description = "Zostałeś obrabowany przez bandytów?";
};


func int DIA_Addon_Cavalorn_ARTEFAKT_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_Banditen) && (MIS_Addon_Cavalorn_KillBrago != LOG_SUCCESS) && (MIS_Addon_Nefarius_BringMissingOrnaments == 0) && (MIS_Addon_Cavalorn_Letter2Vatras != LOG_SUCCESS))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_ARTEFAKT_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_ARTEFAKT_15_00"); //Zostałeś obrabowany przez bandytów?
AI_Output(self,other,"DIA_Addon_Cavalorn_ARTEFAKT_08_01"); //Tak. Ogłuszyli mnie i zostawili jako żarcie dla goblinów.
AI_Output(self,other,"DIA_Addon_Cavalorn_ARTEFAKT_08_02"); //To były piekielnie ważne rzeczy. List i cała moja gotówka. Muszę je odzyskać.
AI_Output(self,other,"DIA_Addon_Cavalorn_ARTEFAKT_08_03"); //Nie pójdę tam jednak bez wsparcia. Ta tchórzliwa hałastra bandytów...
};


instance DIA_Addon_Cavalorn_HELFEN(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_HELFEN_Condition;
information = DIA_Addon_Cavalorn_HELFEN_Info;
description = "Mogę ci pomóc z tymi bandytami?";
};


func int DIA_Addon_Cavalorn_HELFEN_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_ARTEFAKT) && (MIS_Addon_Nefarius_BringMissingOrnaments == 0) && (MIS_Addon_Cavalorn_Letter2Vatras != LOG_SUCCESS) && (C_BragoBanditsDead() == FALSE))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_HELFEN_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_HELFEN_15_00"); //Mogę ci pomóc z tymi bandytami?
if((Npc_HasEquippedArmor(other) == FALSE) && (hero.guild == GIL_NONE))
{
AI_Output(self,other,"DIA_Addon_Cavalorn_HELFEN_08_01"); //Może. Ale sądząc po twoim mizernym wyglądzie, mogę powiedzieć, że od tygodni nie miałeś w rękach prawdziwego miecza.
};
AI_Output(self,other,"DIA_Addon_Cavalorn_HELFEN_08_02"); //No cóż. Muszę chyba przyjąć twoją ofertę. Nie mam zbyt wiele czasu.
AI_Output(self,other,"DIA_Addon_Cavalorn_HELFEN_08_03"); //Dobra, słuchaj. W dole tej ścieżki jest jedna z tych brudnych dziur, w których ukrywają się bandyci.
AI_Output(self,other,"DIA_Addon_Cavalorn_HELFEN_08_04"); //To te łotry ukradły moje rzeczy.
AI_Output(self,other,"DIA_Addon_Cavalorn_HELFEN_08_05"); //Daj znać, gdy będziesz gotów. Ruszymy za tymi szczurami!
MIS_Addon_Cavalorn_KillBrago = LOG_Running;
Log_CreateTopic(TOPIC_Addon_KillBrago,LOG_MISSION);
Log_SetTopicStatus(TOPIC_Addon_KillBrago,LOG_Running);
B_LogEntry(TOPIC_Addon_KillBrago,"Bandyci ukradli coś cennego Cavalornowi. Chce, żebyśmy razem ich zabili.");
self.aivar[AIV_PARTYMEMBER] = TRUE;
};


instance DIA_Addon_Cavalorn_AUSRUESTUNG(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_AUSRUESTUNG_Condition;
information = DIA_Addon_Cavalorn_AUSRUESTUNG_Info;
description = "Potrzebuję lepszego sprzętu.";
};


func int DIA_Addon_Cavalorn_AUSRUESTUNG_Condition()
{
if((MIS_Addon_Cavalorn_KillBrago != 0) && (MIS_Addon_Nefarius_BringMissingOrnaments == 0))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_AUSRUESTUNG_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_AUSRUESTUNG_15_00"); //Potrzebuję lepszego sprzętu.
if(C_BragoBanditsDead() == FALSE)
{
AI_Output(self,other,"DIA_Addon_Cavalorn_AUSRUESTUNG_08_01"); //Te świnie nie zostawiły mi zbyt wiele.
};
AI_Output(self,other,"DIA_Addon_Cavalorn_AUSRUESTUNG_08_02"); //Mogę ci dać nóż na wilki. Wystarczy?
AI_Output(other,self,"DIA_Addon_Cavalorn_AUSRUESTUNG_15_03"); //Tak, nóż będzie dobry.
CreateInvItems(self,ItMW_Addon_Knife01,1);
B_GiveInvItems(self,other,ItMW_Addon_Knife01,1);
AI_Output(other,self,"DIA_Addon_Cavalorn_AUSRUESTUNG_15_04"); //A co z leczeniem?
AI_Output(self,other,"DIA_Addon_Cavalorn_AUSRUESTUNG_08_05"); //Zostały mi dwie mikstury uzdrawiające. Chcesz?
AI_Output(other,self,"DIA_Addon_Cavalorn_AUSRUESTUNG_15_06"); //Pewnie. Wezmę je.
CreateInvItems(self,ItPo_Health_01,2);
B_GiveInvItems(self,other,ItPo_Health_01,2);
};


instance DIA_Addon_Cavalorn_LETSKILLBANDITS(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_LETSKILLBANDITS_Condition;
information = DIA_Addon_Cavalorn_LETSKILLBANDITS_Info;
description = "Chodźmy zabić tych gnojków.";
};


func int DIA_Addon_Cavalorn_LETSKILLBANDITS_Condition()
{
if((MIS_Addon_Cavalorn_KillBrago == LOG_Running) && (MIS_Addon_Nefarius_BringMissingOrnaments == 0) && (MIS_Addon_Cavalorn_Letter2Vatras != LOG_SUCCESS) && (C_BragoBanditsDead() == FALSE))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_LETSKILLBANDITS_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_LETSKILLBANDITS_15_00"); //Chodźmy zabić tych gnojków.
AI_Output(self,other,"DIA_Addon_Cavalorn_LETSKILLBANDITS_08_01"); //Dobra. Tylko mnie osłaniaj, jasne?
AI_Output(self,other,"DIA_Addon_Cavalorn_LETSKILLBANDITS_08_02"); //A teraz czeka ich paskudna niespodzianka.
AI_StopProcessInfos(self);
Npc_ExchangeRoutine(self,"KillBandits");
if(Bdt_1013_Away == FALSE)
{
Ambusher_1013.aivar[AIV_EnemyOverride] = FALSE;
};
Ambusher_1014.aivar[AIV_EnemyOverride] = FALSE;
Ambusher_1015.aivar[AIV_EnemyOverride] = FALSE;
};

func void B_Addon_Cavalorn_VatrasBrief()
{
if(MIS_Addon_Cavalorn_Letter2Vatras != LOG_SUCCESS)
{
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_00"); //Przynajmniej mogę wykonać zadanie. I tak zmarnowałem już zbyt wiele czasu.
AI_Output(other,self,"DIA_Addon_Cavalorn_VatrasBrief_15_01"); //Jakie zadanie...?
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_02"); //Ech. Muszę się dostać do miasta, a później...
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_03"); //Nie wiem tylko, jak mam zdążyć.
AI_Output(other,self,"DIA_Addon_Cavalorn_VatrasBrief_15_04"); //A co ze mną?
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_05"); //Hmm. Czemu nie. Mógłbyś zanieść list do miasta.
};
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_06"); //Dzięki temu będę miał czas, żeby pozbierać sprzęt.
if(MIS_Addon_Cavalorn_Letter2Vatras != LOG_SUCCESS)
{
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_07"); //Jeden z tych bandytów powinien mieć list w kieszeni.
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_08"); //Zanieś go do miasta i oddaj magowi Kręgu Wody, Vatrasowi. Znajdziesz go w świątyni Adanosa. Naucza tam całymi dniami.
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_09"); //Powiedz mu, że nie zdążyłem na czas.
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_10"); //A gdyby cię zapytał, gdzie jestem, powiedz, że w drodze na miejsce spotkania, dobrze?
B_LogEntry(TOPIC_Addon_KDW,"Maga Wody, Vatrasa, można znaleźć w portowym mieście Khorinis. Głosi tam kazania w świątyni Adanosa.");
};
if((Npc_HasEquippedArmor(other) == FALSE) && (hero.guild == GIL_NONE) && (Mil_310_schonmalreingelassen == FALSE) && (Mil_333_schonmalreingelassen == FALSE))
{
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_11"); //Aha, jeszcze jedno: kup sobie od jakiegoś wieśniaka porządne ubranie.
AI_Output(self,other,"DIA_Addon_Cavalorn_VatrasBrief_08_12"); //Inaczej wezmą cię za bandytę. Masz, tu jest parę monet.
CreateInvItems(self,ItMi_Gold,50);
B_GiveInvItems(self,other,ItMi_Gold,50);
};
MIS_Addon_Cavalorn_KillBrago = LOG_SUCCESS;
if(MIS_Addon_Cavalorn_Letter2Vatras == 0)
{
MIS_Addon_Cavalorn_Letter2Vatras = LOG_Running;
};
Npc_ExchangeRoutine(self,"Start");
B_GivePlayerXP(XP_Addon_Cavalorn_KillBrago);
Log_CreateTopic(TOPIC_Addon_KDW,LOG_MISSION);
Log_SetTopicStatus(TOPIC_Addon_KDW,LOG_Running);
self.aivar[AIV_PARTYMEMBER] = FALSE;
};


instance DIA_Addon_Cavalorn_BragoKilled(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_BragoKilled_Condition;
information = DIA_Addon_Cavalorn_BragoKilled_Info;
important = TRUE;
};


func int DIA_Addon_Cavalorn_BragoKilled_Condition()
{
if((Npc_GetDistToWP(self,"NW_XARDAS_BANDITS_LEFT") < 500) && (MIS_Addon_Cavalorn_KillBrago == LOG_Running) && (C_BragoBanditsDead() == TRUE))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_BragoKilled_Info()
{
AI_Output(self,other,"DIA_Addon_Cavalorn_BragoKilled_08_00"); //No to załatwione. Ech. Mogli ze mną nie zaczynać.
B_Addon_Cavalorn_VatrasBrief();
};


instance DIA_Addon_Cavalorn_PCKilledBrago(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_PCKilledBrago_Condition;
information = DIA_Addon_Cavalorn_PCKilledBrago_Info;
description = "Bandyci są już martwi.";
};


func int DIA_Addon_Cavalorn_PCKilledBrago_Condition()
{
if((MIS_Addon_Cavalorn_KillBrago == 0) && Npc_KnowsInfo(other,DIA_Addon_Cavalorn_Banditen) && (C_BragoBanditsDead() == TRUE))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_PCKilledBrago_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_PCKilledBrago_15_00"); //Bandyci są już martwi.
B_Addon_Cavalorn_VatrasBrief();
};


instance DIA_Addon_Cavalorn_JUNGS(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 2;
condition = DIA_Addon_Cavalorn_JUNGS_Condition;
information = DIA_Addon_Cavalorn_JUNGS_Info;
description = "Masz na sobie interesujący pancerz.";
};


func int DIA_Addon_Cavalorn_JUNGS_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_HALLO))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_JUNGS_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_JUNGS_15_00"); //Masz na sobie interesujący pancerz. Nie należysz już do Cieni?
AI_Output(self,other,"DIA_Addon_Cavalorn_JUNGS_08_01"); //Cieni? Od upadku bariery już nie istnieją.
AI_Output(self,other,"DIA_Addon_Cavalorn_JUNGS_08_02"); //Gdy tylko mogliśmy opuścić Górniczą Dolinę, nie było powodu, żeby tam dłużej zostawać.
AI_Output(self,other,"DIA_Addon_Cavalorn_JUNGS_08_03"); //Teraz pracuję dla magów wody. Jestem członkiem Wodnego Kręgu.
SC_KnowsRanger = TRUE;
Log_CreateTopic(TOPIC_Addon_RingOfWater,LOG_MISSION);
Log_SetTopicStatus(TOPIC_Addon_RingOfWater,LOG_Running);
B_LogEntry(TOPIC_Addon_RingOfWater,"Cavalorn powiedział mi, że należy do grupy zwącej się Wodny Krąg.");
Cavalorn_RangerHint = TRUE;
};


instance DIA_Addon_Cavalorn_Ring(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_Ring_Condition;
information = DIA_Addon_Cavalorn_Ring_Info;
permanent = FALSE;
description = "Powiedz mi coś więcej o Wodnym Kręgu!";
};


func int DIA_Addon_Cavalorn_Ring_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_JUNGS))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_Ring_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Ring_15_00"); //Powiedz mi coś więcej o Wodnym Kręgu!
AI_Output(self,other,"DIA_Addon_Cavalorn_Ring_08_01"); //Nie wolno mi o tym mówić.
AI_Output(self,other,"DIA_Addon_Cavalorn_Ring_08_02"); //Mogę cię jedynie wysłać do Vartasa. On reprezentuje Magów Wody w Khorinis.
AI_Output(self,other,"DIA_Addon_Cavalorn_Ring_08_03"); //Najlepiej będzie, jak z nim porozmawiasz. Powiedz, że ja cię przysłałem.
AI_Output(self,other,"DIA_Addon_Cavalorn_Ring_08_04"); //Może pozwoli ci wstąpić do Kręgu. Bardzo potrzeba nam dobrych ludzi...
B_LogEntry(TOPIC_Addon_RingOfWater,"Vatras, Mag Wody, może powiedzieć mi więcej o Wodnym Kręgu.");
};


instance DIA_Addon_Cavalorn_Feinde(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 6;
condition = DIA_Addon_Cavalorn_Feinde_Condition;
information = DIA_Addon_Cavalorn_Feinde_Info;
permanent = FALSE;
description = "Czy ty i twoi ludzie nie byliście czasem przeciwnikami Magów Wody?";
};


func int DIA_Addon_Cavalorn_Feinde_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_JUNGS))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_Feinde_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Feinde_15_00"); //Czy ty i twoi ludzie nie byliście czasem przeciwnikami Magów Wody?
AI_Output(self,other,"DIA_Addon_Cavalorn_Feinde_08_01"); //Szalona przeszłość jest już za nami. Nie ma już Nowego ani Starego Obozu.
AI_Output(self,other,"DIA_Addon_Cavalorn_Feinde_08_02"); //A teraz, gdy nie ma już kolonii karnej, każdy odpowiada za siebie.
AI_Output(self,other,"DIA_Addon_Cavalorn_Feinde_08_03"); //Większość z nas - byłych więźniów - nie została uniewinniona.
AI_Output(self,other,"DIA_Addon_Cavalorn_Feinde_08_04"); //Magowie Wody zdołali uzyskać dla mnie ułaskawienie i mogę teraz poruszać się swobodnie.
};


instance DIA_Addon_Cavalorn_KdWTask(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 6;
condition = DIA_Addon_Cavalorn_KdWTask_Condition;
information = DIA_Addon_Cavalorn_KdWTask_Info;
permanent = FALSE;
description = "Co porabiają teraz Magowie Wody?";
};


func int DIA_Addon_Cavalorn_KdWTask_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_JUNGS) && (MIS_Addon_Nefarius_BringMissingOrnaments == 0))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_KdWTask_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_KdWTask_15_00"); //Co porabiają teraz Magowie Wody?
AI_Output(self,other,"DIA_Addon_Cavalorn_KdWTask_08_01"); //Mają wielki plan. Chodzi o niezbadaną część wyspy.
AI_Output(other,self,"DIA_Addon_Cavalorn_KdWTask_15_02"); //Niezbadaną część? Gdzie ona jest?
AI_Output(self,other,"DIA_Addon_Cavalorn_KdWTask_08_03"); //Nie mogę ci powiedzieć nic więcej. Porozmawiaj z Vatrasem w Khorinis.
};


instance DIA_Addon_Cavalorn_BroughtLetter(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_BroughtLetter_Condition;
information = DIA_Addon_Cavalorn_BroughtLetter_Info;
description = "Dałem Vatrasowi twój list.";
};


func int DIA_Addon_Cavalorn_BroughtLetter_Condition()
{
if((MIS_Addon_Cavalorn_Letter2Vatras == LOG_SUCCESS) && Npc_KnowsInfo(other,DIA_Addon_Cavalorn_JUNGS))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_BroughtLetter_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_BroughtLetter_15_00"); //Dałem Vatrasowi twój list.
AI_Output(self,other,"DIA_Addon_Cavalorn_BroughtLetter_08_01"); //Nie oczekiwałem od ciebie niczego innego. Dziękuję.
B_GivePlayerXP(XP_Ambient);
};


instance DIA_Addon_Cavalorn_Ornament(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 2;
condition = DIA_Addon_Cavalorn_Ornament_Condition;
information = DIA_Addon_Cavalorn_Ornament_Info;
description = "Szukasz czegoś?";
};


func int DIA_Addon_Cavalorn_Ornament_Condition()
{
if((MIS_Addon_Nefarius_BringMissingOrnaments == LOG_Running) && Npc_KnowsInfo(other,DIA_Addon_Cavalorn_HALLO))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_Ornament_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Ornament_15_00"); //Szukasz czegoś?
AI_Output(self,other,"DIA_Addon_Cavalorn_Ornament_08_01"); //To takie oczywiste? Tak, Magowie Wody kazali mi szukać zgubionych ornamentów.
AI_Output(other,self,"DIA_Addon_Cavalorn_Ornament_15_02"); //Interesujący zbieg okoliczności. Otrzymałem taki sam rozkaz od Nefariusa.
if(SC_KnowsRanger == TRUE)
{
AI_Output(self,other,"DIA_Addon_Cavalorn_Ornament_08_03"); //Należysz więc do Wodnego Kręgu?
if(SC_IsRanger == TRUE)
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Ornament_15_04"); //Tak.
}
else
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Ornament_15_05"); //Jeszcze nie, ale pracuję nad tym.
};
};
AI_Output(self,other,"DIA_Addon_Cavalorn_Ornament_08_06"); //To dobrze. W takim razie nie muszę tego robić sam.
AI_Output(other,self,"DIA_Addon_Cavalorn_Ornament_15_07"); //Znalazłeś już jakiś ornament?
AI_Output(self,other,"DIA_Addon_Cavalorn_Ornament_08_08"); //Znam miejsce, w którym powinniśmy coś znaleźć.
AI_Output(self,other,"DIA_Addon_Cavalorn_Ornament_08_09"); //Ten kamienny krąg może być jedną z tych budowli, które opisał Nefarius.
AI_Output(self,other,"DIA_Addon_Cavalorn_Ornament_08_10"); //Teraz musimy tylko znaleźć mechanizm.
};


instance DIA_Addon_Cavalorn_Triggered(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_Triggered_Condition;
information = DIA_Addon_Cavalorn_Triggered_Info;
description = "Uruchomiłem mechanizm. Nic się nie stało.";
};


func int DIA_Addon_Cavalorn_Triggered_Condition()
{
if((MIS_Addon_Nefarius_BringMissingOrnaments == LOG_Running) && Npc_KnowsInfo(other,DIA_Addon_Cavalorn_Ornament) && (ORNAMENT_SWITCHED_FARM == TRUE))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_Triggered_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_Triggered_15_00"); //Uruchomiłem mechanizm. Nic się nie stało.
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_08_01"); //W takim razie wieśniacy Lobarta mieli rację.
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_08_02"); //Powiedzieli, że ktoś już kręcił się przy tych kamieniach.
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_08_03"); //Nagle znikąd pojawił się kamienny strażnik i ich zaatakował.
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_08_04"); //Farmerzy wezwali straż, żołnierze paladynów, a ci przyszli i zniszczyli potwora.
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_08_05"); //Przeszukałem już cały teren. Jeżeli był tu jakiś ornament, mają go teraz paladyni.
Info_ClearChoices(DIA_Addon_Cavalorn_Triggered);
Info_AddChoice(DIA_Addon_Cavalorn_Triggered,"Jeden z nas musi pójść do górnego miasta.",DIA_Addon_Cavalorn_Triggered_Pal);
Info_AddChoice(DIA_Addon_Cavalorn_Triggered,"W takim razie pójdę do nich i odzyskam ornament.",DIA_Addon_Cavalorn_Triggered_OBack);
};

func void B_Cavalorn_Triggered_Wohin()
{
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_Wohin_08_00"); //Pójdę do miasta. Spotkamy się u Vatrasa.
AI_StopProcessInfos(self);
Npc_ExchangeRoutine(self,"Stadt");
Log_CreateTopic(TOPIC_Addon_Ornament,LOG_MISSION);
Log_SetTopicStatus(TOPIC_Addon_Ornament,LOG_Running);
B_LogEntry(TOPIC_Addon_Ornament,"Jeden z brakujących fragmentów ornamentu jest w posiadaniu paladynów w górnym mieście.");
MIS_Addon_Cavalorn_GetOrnamentFromPAL = LOG_Running;
self.flags = 0;
};

func void DIA_Addon_Cavalorn_Triggered_OBack()
{
AI_UnequipArmor(self);
CreateInvItems(self,ITAR_Bau_L,1);
Npc_RemoveInvItems(self,ITAR_RANGER_Addon,Npc_HasItems(self,ITAR_RANGER_Addon));
Npc_RemoveInvItems(self,ITAR_Fake_RANGER,Npc_HasItems(self,ITAR_Fake_RANGER));
AI_EquipBestArmor(self);
AI_Output(other,self,"DIA_Addon_Cavalorn_Triggered_OBack_15_00"); //W takim razie pójdę do nich i odzyskam ornament.
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_OBack_08_01"); //Dobrze.
B_Cavalorn_Triggered_Wohin();
};

func void DIA_Addon_Cavalorn_Triggered_Pal()
{
AI_UnequipArmor(self);
CreateInvItems(self,ITAR_Bau_L,1);
Npc_RemoveInvItems(self,ITAR_RANGER_Addon,Npc_HasItems(self,ITAR_RANGER_Addon));
Npc_RemoveInvItems(self,ITAR_Fake_RANGER,Npc_HasItems(self,ITAR_Fake_RANGER));
AI_EquipBestArmor(self);
AI_Output(other,self,"DIA_Addon_Cavalorn_Triggered_Pal_15_00"); //Jeden z nas musi pójść do górnego miasta.
AI_Output(self,other,"DIA_Addon_Cavalorn_Triggered_Pal_08_01"); //Nie mam na to czasu. Ty musisz to zrobić.
B_Cavalorn_Triggered_Wohin();
};


instance DIA_Addon_Cavalorn_GotOrnaFromHagen(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 5;
condition = DIA_Addon_Cavalorn_GotOrnaFromHagen_Condition;
information = DIA_Addon_Cavalorn_GotOrnaFromHagen_Info;
description = "Dostałem brakujący ornament od Lorda Hagena.";
};


func int DIA_Addon_Cavalorn_GotOrnaFromHagen_Condition()
{
if(Lord_Hagen_GotOrnament == TRUE)
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_GotOrnaFromHagen_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_GotOrnaFromHagen_15_00"); //Dostałem brakujący ornament od Lorda Hagena.
AI_Output(self,other,"DIA_Addon_Cavalorn_GotOrnaFromHagen_08_01"); //Widzisz? Wiedziałem, że mieli go paladyni.
B_GivePlayerXP(XP_Ambient);
MIS_Addon_Cavalorn_GetOrnamentFromPAL = LOG_SUCCESS;
};


instance DIA_Addon_Cavalorn_WannaLearn(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 7;
condition = DIA_Addon_Cavalorn_WannaLearn_Condition;
information = DIA_Addon_Cavalorn_WannaLearn_Info;
permanent = FALSE;
description = "Możesz mnie czegoś nauczyć?";
};


func int DIA_Addon_Cavalorn_WannaLearn_Condition()
{
if(Npc_KnowsInfo(other,DIA_Addon_Cavalorn_HALLO) && (C_BragoBanditsDead() == TRUE))
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_WannaLearn_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_WannaLearn_15_00"); //Możesz mnie czegoś nauczyć?
AI_Output(self,other,"DIA_Addon_Cavalorn_WannaLearn_08_01"); //Pewnie. Przecież wiesz. Oj, chłopie, nieźle cię przegonili.
AI_Output(self,other,"DIA_Addon_Cavalorn_WannaLearn_08_02"); //Niczego nie pamiętasz, prawda?
Cavalorn_Addon_TeachPlayer = TRUE;
Log_CreateTopic(Topic_OutTeacher,LOG_NOTE);
B_LogEntry(Topic_OutTeacher,LogText_Addon_Cavalorn_Teach);
};


var int Addon_Cavalorn_Merke_Bow;
var int Addon_Cavalorn_Merke_1h;

instance DIA_Addon_Cavalorn_TEACH(C_Info)
{
npc = BAU_4300_Addon_Cavalorn;
nr = 8;
condition = DIA_Addon_Cavalorn_TEACH_Condition;
information = DIA_Addon_Cavalorn_TEACH_Info;
permanent = TRUE;
description = "Chcę się czegoś od ciebie nauczyć.";
};


func int DIA_Addon_Cavalorn_TEACH_Condition()
{
if(Cavalorn_Addon_TeachPlayer == TRUE)
{
return TRUE;
};
};

func void DIA_Addon_Cavalorn_TEACH_Choices()
{
Info_ClearChoices(DIA_Addon_Cavalorn_TEACH);
Info_AddChoice(DIA_Addon_Cavalorn_TEACH,Dialog_Back,DIA_Addon_Cavalorn_Teach_Back);
if(Npc_GetTalentSkill(other,NPC_TALENT_SNEAK) == FALSE)
{
Info_AddChoice(DIA_Addon_Cavalorn_TEACH,B_BuildLearnString("Skradanie się",B_GetLearnCostTalent(other,NPC_TALENT_SNEAK,1)),DIA_Addon_Cavalorn_Teach_Sneak);
};
Info_AddChoice(DIA_Addon_Cavalorn_TEACH,B_BuildLearnString(PRINT_LearnBow1,B_GetLearnCostTalent(other,NPC_TALENT_BOW,1)),DIA_Addon_Cavalorn_Teach_Bow_1);
Info_AddChoice(DIA_Addon_Cavalorn_TEACH,B_BuildLearnString(PRINT_LearnBow5,B_GetLearnCostTalent(other,NPC_TALENT_BOW,1) * 5),DIA_Addon_Cavalorn_Teach_Bow_5);
Info_AddChoice(DIA_Addon_Cavalorn_TEACH,B_BuildLearnString(PRINT_Learn1h1,B_GetLearnCostTalent(other,NPC_TALENT_1H,1)),DIA_Addon_Cavalorn_Teach_1H_1);
Info_AddChoice(DIA_Addon_Cavalorn_TEACH,B_BuildLearnString(PRINT_Learn1h5,B_GetLearnCostTalent(other,NPC_TALENT_1H,1) * 5),DIA_Addon_Cavalorn_Teach_1H_5);
};

func void DIA_Addon_Cavalorn_TEACH_Info()
{
AI_Output(other,self,"DIA_Addon_Cavalorn_TEACH_15_00"); //Chcę się czegoś od ciebie nauczyć.
AI_Output(self,other,"DIA_Addon_Cavalorn_TEACH_08_01"); //Pewnie. Co chcesz wiedzieć?
Addon_Cavalorn_Merke_Bow = other.HitChance[NPC_TALENT_BOW];
Addon_Cavalorn_Merke_1h = other.HitChance[NPC_TALENT_1H];
DIA_Addon_Cavalorn_TEACH_Choices();
};

func void DIA_Addon_Cavalorn_Teach_Sneak()
{
if(B_TeachThiefTalent(self,other,NPC_TALENT_SNEAK))
{
AI_Output(self,other,"DIA_Addon_Cavalorn_Teach_Sneak_08_00"); //Na miękkich podeszwach mamy większe szanse podkraść się niezauważenie do przeciwnika.
};
DIA_Addon_Cavalorn_TEACH_Choices();
};

func void DIA_Addon_Cavalorn_Teach_Bow_1()
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_BOW,1,90);
DIA_Addon_Cavalorn_TEACH_Choices();
};

func void DIA_Addon_Cavalorn_Teach_Bow_5()
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_BOW,5,90);
DIA_Addon_Cavalorn_TEACH_Choices();
};

func void DIA_Addon_Cavalorn_Teach_1H_1()
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_1H,1,30);
DIA_Addon_Cavalorn_TEACH_Choices();
};

func void DIA_Addon_Cavalorn_Teach_1H_5()
{
B_TeachFightTalentPercent(self,other,NPC_TALENT_1H,5,30);
DIA_Addon_Cavalorn_TEACH_Choices();
};

func void DIA_Addon_Cavalorn_Teach_Back()
{
if((Addon_Cavalorn_Merke_Bow < other.HitChance[NPC_TALENT_BOW]) || (Addon_Cavalorn_Merke_1h < other.HitChance[NPC_TALENT_1H]))
{
AI_Output(self,other,"DIA_Addon_Cavalorn_Teach_BACK_08_00"); //Od razu lepiej. Wiele zapomniałeś, ale doprowadzimy cię do formy.
};
Info_ClearChoices(DIA_Addon_Cavalorn_TEACH);
};

15
może i głupie pytanie, ale nie wiem w jaki sposób zrobić, aby logo menu było przezroczyste w grze? (żeby same litery było widać bez tła obrazu w pliku.tex, który wrzuca się do paczki z modem) ; i żeby w grze się odpowiednio wyświetlało logo menu-czyli jak pisałem, literki bez tła obrazu

16
Pytania i problemy / kompilacja menu.src
« dnia: 2010-02-06, 20:45 »
czy tylko mnie czy każdemu wyskakują błędy typu uknown identifier: APPLY_OPTIONS_PERFORMANCE  itp. podczas kompilowania menu.src ? kompilowałem i z moda , i polskie (które pobrałem, z któregoś linku na forum), i niemieckie i wyskakują zawsze te same błędy... dlaczego, chociaż jest wszystko  w tych skryptach dobrze?

i taki źle skompilowany menu.dat dekompiluję w gothiscourcerze i są warningi, że brak tychże wyrazów (performance, video itp.) ; ale nawet gdy zdekompiluję dobry menu.dat (nie pokazują się warningi w gothicsourcerze), to te same(te dobre) pliki, gdy znów spróbuję w spacerze parsować, to te same błędy wyskakują ;/

17
Skrypty / nietypowy pierścień
« dnia: 2010-02-05, 12:05 »
chciałbym się dowiedzieć, czy jest możliwe w gothic 2 stworzyć przedmiot (pierścień, runę lub coś innego)do np. przywoływania deszczu (takiego zwykłego, jak pada w gothic) ; do tego trzeba efekt sfx? bo w visualfx.dat widziałem np. mfx_thunderstorm_rain taką nazwę, nie wiem czym ona się różni od sfx_thunderstorm_rain...

18
Pytania i problemy / tłumaczenie niemieckich słów
« dnia: 2010-02-03, 04:59 »
np.
1.słówko Viecher, co to u diabła znaczy, wie ktoś?

w zdaniu: Hast du noch andere Viecher gesehen?

2. kloppen-tego też nie jestem w stanie przetłumaczyć(myślałem, że to klopfen, ale to chyba nie to samo)

w zdaniu: Du gibst mir den Schlüssel für die Türe und dann kloppen wir die Zombies zurück ins Wasser.

19
Skrypty / problem z kolejnym poziomem regeneracji
« dnia: 2010-02-02, 16:09 »
otóż tak, chciałbym zmodyfikować nieco moda do gothica 2 nk - manareload(żeby regeneracja jeszcze bardziej przypominała tą z gothica 3 :)  ) i dodać 3ci poziom regeneracji(jeden npc naucza 2ch 1wszych poziomów, a 2gi nauczałby tego 3ciego poziomu)

w pliku regenerate_time_not_learned (jest w folderze _misk) mam takie linijki
const int REGENERATE_TIME_NOT_LEARNED = 100;
const int REGENERATE_TIME_GRAD_0 = 5;
const int REGENERATE_TIME_GRAD_1 = 1;

1wsza (co 5 sekund regeneruje się 1 punkcik mana)i 2ga (co 1 sekundę regeneruje się 1 punkcik mana) to wiem

jeśli chciałbym wstawić 3ci poziom regeneracji to musiałbym dopisać linijkę np.

const int REGENERATE_TIME_GRAD_2 = ?; (ale co wpisać w miejsce "?") tak, żeby 3ci poziom regeneracji wyglądał w następujący sposób? (żeby mana nie regenerowała się na 3cim poziomie 1 punkcik co ileś sekund, tylko w zależności od nauczonego kręgu magii, co sekundę przywracało odpowiednią ilość mana tak, żeby nie przekroczyło się maksymalnej liczby punktów mana posiadanych przez bohatera? jak w funkcji poniżej-o ile jest ona dobra ;)  ), czy może tą linijkę const int REGENERATE_TIME_GRAD_2 = ?; zupełnie inaczej trzeba nazwać?

func int zs_recharger_loop()
{
if(Npc_GetStateTime(self) > 3)
{
Npc_SetStateTime(self,4);
if(hero.attribute[ATR_MANA] < hero.attribute[ATR_MANA_MAX])
{
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 1)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 5;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 2)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 15;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 3)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 25;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 4)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 40;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 5)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 75;
};
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 6)
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 100;
};
if(hero.attribute[ATR_MANA] > hero.attribute[ATR_MANA_MAX])
{
hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA_MAX];
};
};

};
return LOOP_CONTINUE;
};

i jak wyglądałby wtedy ten plik?

func int b_teachplayertalentregenerate(var C_Npc slf,var C_Npc oth,var int grad)
{
var int kosten;
kosten = B_GetLearnCostTalent(oth,NPC_TALENT_REGENERATE,grad);
const string learn_topic_mana = "Regeneracja many";
if(oth.lp < kosten)
{
PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
B_Say(slf,oth,"$NOLEARNNOPOINTS");
return FALSE;
};
if(grad == 0)
{
Log_CreateTopic(learn_topic_mana,LOG_NOTE);
B_LogEntry(learn_topic_mana,"Regeneracja mojej magicznej energii poprawiła się. ");
hero.attribute[ATR_REGENERATEMANA] = REGENERATE_TIME_GRAD_0;
Npc_SetTalentSkill(hero,21,1);
oth.lp = oth.lp - kosten;
};
if((grad == 1) && (hero.attribute[ATR_REGENERATEMANA] == REGENERATE_TIME_GRAD_0))
{
Log_CreateTopic(learn_topic_mana,LOG_NOTE);
B_LogEntry(learn_topic_mana,"Moja magiczna energia regeneruje się bardzo szybko. ");
hero.attribute[ATR_REGENERATEMANA] = REGENERATE_TIME_GRAD_1;
Npc_SetTalentSkill(hero,21,2);
oth.lp = oth.lp - kosten;
}
else if((grad == 1) && (hero.attribute[ATR_REGENERATEMANA] != REGENERATE_TIME_GRAD_0))
{
PrintScreen("Muszę najpierw nauczyć się pierwszego stopnia. ",-1,-1,FONT_ScreenSmall,2);
};
return TRUE;
if((grad == 2) && (hero.attribute[ATR_REGENERATEMANA] == REGENERATE_TIME_GRAD_1))
{
Log_CreateTopic(learn_topic_mana,LOG_NOTE);
B_LogEntry(learn_topic_mana,"Regeneracja mojej magicznej energii osiągnęła poziom mistrzowski. ");
hero.attribute[ATR_REGENERATEMANA] = REGENERATE_TIME_GRAD_2;
Npc_SetTalentSkill(hero,21,2);
oth.lp = oth.lp - kosten;
}
else if((grad == 2) && (hero.attribute[ATR_REGENERATEMANA] != REGENERATE_TIME_GRAD_1))
{
PrintScreen("Muszę najpierw nauczyć się drugiego stopnia. ",-1,-1,FONT_ScreenSmall,2);
};
return TRUE;
};

i jak to wszystko połączyć, żeby się kupy trzymało?


edit: problem częściowo rozwiązany(z braku pomysłów XD)
const int REGENERATE_TIME_GRAD_2 = 0; (dałem wartość zero, co daje około 7 puncików mana na sekundę regeneracji)oraz

func int b_teachplayertalentregenerate(var C_Npc slf,var C_Npc oth,var int grad)
{
var int kosten;
kosten = B_GetLearnCostTalent(oth,NPC_TALENT_REGENERATE,grad);
const string learn_topic_mana = "Regeneracja many";
if(oth.lp < kosten)
{
PrintScreen(PRINT_NotEnoughLearnPoints,-1,-1,FONT_ScreenSmall,2);
B_Say(slf,oth,"$NOLEARNNOPOINTS");
return FALSE;
};
if(grad == 0)
{
Log_CreateTopic(learn_topic_mana,LOG_NOTE);
B_LogEntry(learn_topic_mana,"Regeneracja mojej magicznej energii poprawiła się. ");
hero.attribute[ATR_REGENERATEMANA] = REGENERATE_TIME_GRAD_0;
Npc_SetTalentSkill(hero,21,1);
oth.lp = oth.lp - kosten;
};
if((grad == 1) && (hero.attribute[ATR_REGENERATEMANA] == REGENERATE_TIME_GRAD_0))
{
Log_CreateTopic(learn_topic_mana,LOG_NOTE);
B_LogEntry(learn_topic_mana,"Moja magiczna energia regeneruje się bardzo szybko. ");
hero.attribute[ATR_REGENERATEMANA] = REGENERATE_TIME_GRAD_1;
Npc_SetTalentSkill(hero,21,2);
oth.lp = oth.lp - kosten;
}
else if((grad == 1) && (hero.attribute[ATR_REGENERATEMANA] != REGENERATE_TIME_GRAD_0))
{
PrintScreen("Muszę najpierw nauczyć się pierwszego stopnia. ",-1,-1,FONT_ScreenSmall,2);
};
<---usunąłem tę linijkę (bo inaczej bohater nie mógł się nauczyć skilla 3ciego poziomu):return TRUE; --->>>
if((grad == 2) && (hero.attribute[ATR_REGENERATEMANA] == REGENERATE_TIME_GRAD_1))
{
Log_CreateTopic(learn_topic_mana,LOG_NOTE);
B_LogEntry(learn_topic_mana,"Regeneracja mojej magicznej energii osiągnęła poziom mistrzowski. ");
hero.attribute[ATR_REGENERATEMANA] = REGENERATE_TIME_GRAD_2;
Npc_SetTalentSkill(hero,21,2);
oth.lp = oth.lp - kosten;
}
else if((grad == 2) && (hero.attribute[ATR_REGENERATEMANA] != REGENERATE_TIME_GRAD_1))
{
PrintScreen("Muszę najpierw nauczyć się drugiego stopnia. ",-1,-1,FONT_ScreenSmall,2);
};
return TRUE;
};


próbuję na wszystkie sposoby wstawiać ten kod funkcji(że mana regeneruje się w zależności od wyuczonego kręgu u bohatera, lecz zamiast regeneracji co sekundę 5 mana na 1wszym kręgu) do kodu powyżej, to regeneruje się 1 punkt mana co 5 sekund dla 1wszego kręgu....

20
Spacer / spacer-problem z zenami i 3dsami
« dnia: 2010-01-16, 00:11 »
otóż tak, zrobiłem przykładowy świat na podstawie tutorialu grupy Poziomkaz na yt i zapisuję w 3ds maxie i exportuję plik za pomocą plugina kerrax importer/exporter ;potem otwieram spacera wczytuję 3dsa, kompiluję świat i światło i co? nic, widzę tylko niebo i chmury- żadnych połaci, terenów-kompletnie nic ; przy próbie wczytania zena np. NEWWORLD.zen (po uprzednim wypakowaniu plików z worlds.vdf gothicvdfsem) wczytuję zena i mam to samo-niebo i chmury nie widać terenu w ogóle...ktoś miał taki problem?

Strony: [1] 2
Do góry