Skrypt niereaguje mimo braku błędów 11535 20

O temacie

Autor paulpolska

Zaczęty 13.04.2015 roku

Wyświetleń 11535

Odpowiedzi 20

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Przerobiony kod nauki u Ignaza

if (PLAYER_TALENT_ALCHEMY[POTION_Speed] == FALSE)
{
Info_AddChoice (DIA_Ignaz_Teach,ConcatStrings("Mikstura szybkości.  ", ConcatStrings("Koszt: 5 PN"," - 300 sztuk złota")),DIA_Ignaz_Teach_Speed);
talente = (talente + 1);
};

Potem niżej ...

FUNC VOID DIA_Ignaz_Teach_Health()
{
   if (Npc_HasItems(other,ItMi_Gold)>=300)
   {
    B_GiveInvItems (other, self, ItMi_Gold,300);
B_TeachPlayerTalentAlchemy (self, other, POTION_Health_01);
Info_ClearChoices (DIA_Ignaz_Teach);
   }
   else
   {
AI_Output (self, other, "DIA_Ignaz_Teach_Health_01_01"); //Przynieś pieniądze, a może się czegoś nauczysz.
Info_ClearChoices (DIA_Ignaz_Teach);
   };   


};

Mimo iż jest warunek na złoto gra za każdym razem go pomija i uczy gracza nawet gdy nie ma w ekwipunku złota. Zabiera tylko punkty nauki i odmawia jej gdy nie mamy PN. O co chodzi ?
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Spróbuj tak:
FUNC VOID DIA_Ignaz_Teach_Health()
{
   if (B_GiveInvItems (other, self, ItMi_Gold,300))
   {
    B_TeachPlayerTalentAlchemy (self, other, POTION_Health_01);
    Info_ClearChoices (DIA_Ignaz_Teach);
   }
   else
   {
    AI_Output            (self, other, "DIA_Ignaz_Teach_Health_01_01"); //Przynieś pieniądze, a może się czegoś nauczysz.
    Info_ClearChoices (DIA_Ignaz_Teach);
   }; 
};

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Spróbuj tak:
FUNC VOID DIA_Ignaz_Teach_Health()
{
   if (B_GiveInvItems (other, self, ItMi_Gold,300))
   {
    B_TeachPlayerTalentAlchemy (self, other, POTION_Health_01);
    Info_ClearChoices (DIA_Ignaz_Teach);
   }
   else
   {
    AI_Output            (self, other, "DIA_Ignaz_Teach_Health_01_01"); //Przynieś pieniądze, a może się czegoś nauczysz.
    Info_ClearChoices (DIA_Ignaz_Teach);
   }; 
};

Już tak wcześniej próbowałem bo tak samo mają w skryptach Thorben czy Grimbald ale nic z tego. Tutaj daje to ten sam efekt i już o nim wcześniej pomyślałem.
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Usuń Gothic.Dat, OU.BIN i OU.CSL, potem zreparsuj  spacerem w celu ponownego wygenerowania usuniętych plików.
Jak będą błędy, że nie znalazł któregoś z powyższych plików, to zignoruj.

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Chicken na huj? Złoto można mieć na minusie, pierw sprawdź czy masz te trzysta.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Chicken na huj? Złoto można mieć na minusie, pierw sprawdź czy masz te trzysta.

No właśnie nie zależnie od tego czy mam 0,100,400,1000 skrypt omija warunek i po prostu gdy mamy minimalną ilość PN (5) to uczy bohatera tak jakby tego warunku nie było w ogóle
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Npc_hasitems zwraca ilość posiadanych przedmiotów sprawdzaj ile masz złota itmi_gold. Oddaj później, tylko w gdy mamy daną ilość złota. Jak mówiłem złoto możemy mieć na minusie, ale wyświetla zero, chyba całkiem ustawia z powrotem na zero, ale przez coś koło klatki mamy minus.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Npc_hasitems zwraca ilość posiadanych przedmiotów sprawdzaj ile masz złota itmi_gold. Oddaj później, tylko w gdy mamy daną ilość złota. Jak mówiłem złoto możemy mieć na minusie, ale wyświetla zero, chyba całkiem ustawia z powrotem na zero, ale przez coś koło klatki mamy minus.

Dobra ale to jak wyjaśnisz to, że sposób podany przez Chickena także nie działa bo go wypróbowałem w pierwszej kolejności
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Może spróbuj dać Npc_HasItems w zmienną.
var int kasa; kasa = Npc_HasItems(other, itmi_gold);, a później dać warunek if kasa >= 300

Spotkałem się parę razy, że Npc_HasItems się resetował w dialogach i pomagało mi właśnie takie rozwiązanie.
 
: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.

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Zmiany w dialogach powinno się sprawdzać na nowej grze, a nie wczytując zapis.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Zmiany w dialogach powinno się sprawdzać na nowej grze, a nie wczytując zapis.

Sprawdzam i tak i tak. Zazwyczaj pomaga pierwszy sposób ale jak to nic nie daje to robię "nowa gra" i jazda :P
Zobacze czy pomoże przypisanie zmiennej
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Nietety przypisanie zmiennej nic nie pomogło. Jakieś sugestie ?
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Usuń Gothic.Dat, OU.BIN i OU.CSL, potem zreparsuj  spacerem w celu ponownego wygenerowania usuniętych plików.
Jak będą błędy, że nie znalazł któregoś z powyższych plików, to zignoruj.

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
@paulpolska Jeśli dobrze przeczytałem to przerobiłeś skrypt Ignaza, więc mój post za bardzo ci nie pomoże. No chyba, że zdołasz go tak przerobić, żeby działało u ciebie, bo u mnie sprawdzałem działanie na nowo utworzonej postaci.
INSTANCE DIA_Addon_Isabel   (C_INFO)
{
npc         = BDT_1092_Addon_Isabel;
nr          = 2;
condition   = DIA_Addon_Isabel_Condition;
information = DIA_Addon_Isabel_Info;
permanent   = TRUE;
description = "Opowiedz mi o sztuce alchemii.";
};

FUNC INT DIA_Addon_Isabel_Condition()
{
return TRUE;
};

FUNC VOID DIA_Addon_Isabel_Info()
{
AI_Output (other, self,"DIA_Addon_Isabel_15_00");//Opowiedz mi o sztuce alchemii.
if (PLAYER_TALENT_ALCHEMY[POTION_Speed] == FALSE)
{
Info_AddChoice (DIA_Addon_Isabel,ConcatStrings("Mikstura szybkości.  ", ConcatStrings("Koszt: 5 PN"," - 300 sztuk złota")),DIA_Addon_Isabel_Speed);
};
Info_AddChoice (DIA_Addon_Isabel,DIALOG_BACK,DIA_Addon_Isabel_BACK);
};

FUNC VOID DIA_Addon_Isabel_Speed()
{
   if (PLAYER_TALENT_ALCHEMY[POTION_Speed] == FALSE)
   && (Npc_HasItems(other,ItMi_Gold)>=300)
   && other.lp >= 5
   {
B_TeachPlayerTalentAlchemy (self, other, POTION_Speed);
PLAYER_TALENT_ALCHEMY[POTION_Speed] = TRUE;
B_GiveInvItems (other, self, ItMi_Gold,300);
Info_ClearChoices (DIA_Addon_Isabel);
AI_Output (self, other, "DIA_Addon_Isabel_Speed_14_05"); //Idź wykorzystać swoją wiedzę.
}
else if (PLAYER_TALENT_ALCHEMY[POTION_Speed] == FALSE)
&& other.lp >= 5
   {
AI_Output (self, other, "DIA_Addon_Isabel_Speed_14_06"); //Przynieś pieniądze, a może się czegoś nauczysz.
Info_ClearChoices (DIA_Addon_Isabel);
   }
   else if other.lp <= 5
   || (Npc_HasItems(other,ItMi_Gold)<=300)
   {
   AI_Output (self, other, "DIA_Addon_Isabel_Speed_14_07"); //Masz za mało doświadczenia lub pieniędzy.
   Info_ClearChoices (DIA_Addon_Isabel);
   };
};

FUNC VOID DIA_Addon_Isabel_BACK()
{
Info_ClearChoices (DIA_Addon_Isabel);
};
Przy moim skrypcie wychodzi tak, że:
1)Mając 300 sztuk złota i 5 punktów nauki uzyskujemy możliwość wytwarzania mikstury szybkości
2)Mając 5 punktów nauki, ale nie mając złota słyszymy, że musimy donieść hajs, aby się wyuczyć
3)Gdy mamy mniej niż 5 punktów nauki lub poniżej 300 sztuk złota usłyszymy, że brakuje nam złota lub doświadczenia.
Nie wiem, czy mój post ma jakiś sens, ale gdybym nie napisał czegoś głupiego na forum to chyba zachorowałbym na raka  :pokerface:
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Niestety sposób Chickena zawodzi ale szczerze nie spodziewałem się cudu. Dodanie warunku z LP nic nie zmieni. B_TeachPlayerTalentAlchemy samo w sobie sprawdza ten warunek więc takie masło maślane pisać to dwa razy.
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
No to masz zbugowanego gothica. Bo u mnie działa normalnie.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Sprawdź czy problem nie leży w other i self, wpisz tam bezpośrednio instance rozmówców. 
Other i self nie zawsze zwracają te same wartości, jeśli to NPC do nas zagada są one odwrócone z tego co pamiętam. 
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Sprawdź czy problem nie leży w other i self, wpisz tam bezpośrednio instance rozmówców.
Other i self nie zawsze zwracają te same wartości, jeśli to NPC do nas zagada są one odwrócone z tego co pamiętam.

To nie to zwłaszcza, że tam nie może  być błędu bo korzystam z dialogu oryginalnego. Wypowiadanych kwestii nie zmieniam ani ich kolejności. Jedyne co robię to wprowadzam warunek ze złotem. Other i self są zawsze takie same dla każdych funkcji i dialogów. Sprawdzałem to niejednokrotnie w wielu NPC-ach i funkcjach. Zresztą nawet gdyby się odwróciły to po prostu zamiast płacić złotem to bym je otrzymał od Ignaza :D ale tak jak mówie skrypt jest oryginalny nie był przerobiony jedynie dodany warunek nic poza tym jak wyżej
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

paulpolska

paulpolska

Użytkownicy
posty604
Propsy31
ProfesjaSkrypter
  • Użytkownicy
Odświeżam. Czy może ktoś ma jakieś sugestie na rozwiązanie tegoż problemu ?
 
Pomogłem ? Daj tego PROPSa to nic nie kosztuje

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Robisz paczkę z modem? Udało ci się kiedykolwiek zrobić jakieś zmiany w skryptach i one działały?


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