pochwy na miecze 12341 35

O temacie

Autor Fors

Zaczęty 15.03.2018 roku

Wyświetleń 12341

Odpowiedzi 35

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Funkcja nie ma zakończenia. Dodaj klamrę ze średnikiem na samym dole.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
Nadal wywala

Spoiler
func void Regeneracja()
{
   
   if (hero.attribute[ATR_HITPOINTS] > 0)
   {
   
     if (level_regeneracji == 1)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 1;
     };
     if (level_regeneracji == 2)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 2;
        hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 1;
     };
     if (level_regeneracji == 3)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 3;
        hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 2;
        hero.exp = hero.exp + 1;
       };
   };   
};
 

Drakonter

Drakonter

Użytkownicy
undefined
posty104
Propsy94
ProfesjaNierób
  • Użytkownicy
  • undefined
Podaj która linia w tym pliku to 21? Będzie łatwiej znaleźć błąd. Bo możliwe że masz jeszcze jakiś skrypt nad tą funkcją
 
29.08.2023 - goodbye cruel world

Halicor

Halicor

Użytkownicy
Hauptsturmfuhrer
posty365
Propsy57
ProfesjaNierób
  • Użytkownicy
  • Hauptsturmfuhrer

Halicor

pochwy na miecze
#23 2018-03-27, 22:44(Ostatnia zmiana: 2018-03-27, 23:29)
Czy to czasem nie miało tak wyglądać ? func void Regeneracja()
{
   
   if (hero.attribute[ATR_HITPOINTS] > 0)
   {
   
     if (level_regeneracji == 1)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 1;
     }
     else if (level_regeneracji == 2)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 2;
        hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 1;
     }
     else if (level_regeneracji == 3)
     {
        hero.attribute[ATR_HITPOINTS] = hero.attribute[ATR_HITPOINTS] + 3;
        hero.attribute[ATR_MANA] = hero.attribute[ATR_MANA] + 2;
        hero.exp = hero.exp + 1;
     };
   };   
};

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
@up Nie ma znaczenia czy będzie else czy nie. Jeśli level_regeneracji = 2 to ani 1 ani 3 i tak nie będzie działać.
Jak już wstawiasz else, to musisz usunąć ; przy klamrze zamykającej pierwszego ifa.

Cytuj
if (hero.attribute[ATR_HITPOINTS] > 0)
Myślę, że powodem może być znak większości. Zdarzyło mi się kilka razy, że po wstawieniu jednego znaku nie chciał działać IF, mimo że przy odpalaniu gry nie wyskakiwał żaden błąd. Najlepiej wstawiać po 2 znaki (>=, <=, [...]).

Spróbuj tak:
Cytuj
if (hero.attribute[ATR_HITPOINTS] != 0)
Proponuję jeszcze przed dodaniem punktów życia i many sprawdzić, czy mamy pełny pasek zdrowia i many. Inaczej będzie się miało więcej punktów życia/many niż maks. punktów życia/many.

Po za tym innego błędu nie widzę.
 
How can I see roses... and only feel thorns...

Vic7im

Vic7im

Użytkownicy
posty84
Propsy92
Profesjabrak
  • Użytkownicy

Use this:

Spoiler
func void Regeneracja()
{
   
   if (hero.attribute[ATR_HITPOINTS] >= 0)
   {
     if (level_regeneracji == 1)
     {
        hero.attribute[ATR_HITPOINTS] += 1;
     }
     else if (level_regeneracji == 2)
     {
        hero.attribute[ATR_HITPOINTS] += 2;
        hero.attribute[ATR_MANA] += 1;
     }
     else if (level_regeneracji == 3)
     {
        hero.attribute[ATR_HITPOINTS] += 3;
        hero.attribute[ATR_MANA] += 2;
        hero.exp += 1;
     };

     if (hero.attribute[ATR_HITPOINTS]>= hero.attribute[ATR_HITPOINTS_max])
     {
         hero.attribute[ATR_HITPOINTS]=hero.attribute[ATR_HITPOINTS_max];
     };
     if (hero.attribute[ATR_MANA] >= hero.attribute[ATR_MANA_max])
     {
         hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA_max];
     };
   };
};
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
func void Regeneracja()
{
   if (hero.attribute[ATR_HITPOINTS] >= 0 && hero.attribute[ATR_HITPOINTS]!= hero.attribute[ATR_HITPOINTS_MAX])
   {
if (level_regeneracji == 1)
{
hero.attribute[ATR_HITPOINTS] += 1;
}
else if (level_regeneracji == 2)
{
hero.attribute[ATR_HITPOINTS] += 2;
hero.attribute[ATR_MANA] += 1;
}
else if (level_regeneracji == 3)
{
hero.attribute[ATR_HITPOINTS] += 3;
hero.attribute[ATR_MANA] += 2;
hero.exp += 1;
};
if (hero.attribute[ATR_MANA] >= hero.attribute[ATR_MANA_MAX]
{
hero.attribute[ATR_MANA]=hero.attribute[ATR_MANA_MAX];
}
};
};
Używajcie wcięć w kodzie, o wiele łatwiej się w tym później połapać, szczególnie gdy dzielicie się kodem z osobami trzecimi. Najlepiej jest też dodawać sobie komentarze, szczególnie gdy deklaracje są w innych plikach.
 
Ż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

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
Thanks @Vic7im



Nie wywala błędu tylko teraz HP  się nie regeneruje .

Spoiler
   // ------ Attribute ------
   attribute[ATR_STRENGTH]       = 10;
   attribute[ATR_DEXTERITY]       = 10;
   attribute[ATR_MANA_MAX]       = 10;
   attribute[ATR_MANA]          = 10;
   attribute[ATR_HITPOINTS_MAX]   = 40;
   attribute[ATR_HITPOINTS]       = 40;
   
   if (level_regeneracji == 2)
     {
        hero.attribute[ATR_HITPOINTS] += 2;
        hero.attribute[ATR_MANA] += 1;
   };
 

Cruc

Cruc

Użytkownicy
posty667
Propsy236
Profesjabrak
  • Użytkownicy
Bo źle to robisz. Nie powinieneś wstawiać tego kodu do skryptu postaci.

To co teraz zrobiłeś sprawia, że w momencie, gdy pojawia się Twoja postać w grze i jest tworzona, wówczas sprawdzany jest warunek czy level_regeneracji jest równy 2, i jeśli tak to zwiększa hp o 2 i manę o 1. Jeśli ustawisz sobie level_regeneracji = 2 w startupie to zobaczysz o czym mówię - bohater po starcie świata powinien mieć 42 hp i 11 many, czyli wartości przekraczające swoje zakresy.

Musisz stworzyć funkcję Regeneracja(), którą odpalać będziesz np. w tick_tocku.
 
while (!success) try{...}

Najlepszy modder od gothic multiplayer - polecam pytać go o wszystko!

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
Chce przenieść kulę ognia z Gothic 1. Skopiowałem wszystkie VFX  i PTX z G1 ale jest problem. Czar pojawia się na głowie bohatera a nie na ręce + jak zrobić efekt ładowania się tego czaru?
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Czary to nie jest nic prostego. Wątpię, żeby ktoś chciał Ci z tym pomóc.
 
: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.

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
 :facepalm: :facepalm: :facepalm:

Zrobiłem sobie nową umiejętność ale wywala błędy typu Expeted ' .

Skrypt
Spoiler
// ***********************************
// B_TeachPlayerTalentTakeAnimalTrophy
// ***********************************

func int B_shieldfight(var C_NPC slf, var C_NPC oth, var int talent)
{
   // ------ Kosten festlegen ------
   var int kosten;
   kosten = B_GetLearnCostTalent(oth, NPC_TALENT_SHIELDFIGHT, trophy);
   
   
   //EXIT IF...
   
   // ------ Player hat zu wenig Lernpunkte ------
   if (oth.lp < kosten)
   {
      PrintScreen   (PRINT_NotEnoughLearnPoints, -1,-1, FONT_ScreenSmall, 2);
      B_Say (slf, oth, "$NOLEARNNOPOINTS");
      
      return FALSE;
   };
      
   if (shield_equip==true)
   {
      if (Scatty_teach_perm2 == TRUE)
      {
          Mdl_RemoveOverlayMds  (hero, "C_SHIELD.MDS");
            Mdl_ApplyOverlayMds  (hero, "C_SHIELD.MDS");
      }
      else
      {
         Mdl_RemoveOverlayMds  (hero, "B_SHIELD.MDS");
            Mdl_ApplyOverlayMds  (hero, "B_SHIELD.MDS");};
   

   Npc_SetTalentSkill    (oth, NPC_TALENT_SHIELDFIGHT, 1);
   return TRUE;
};
 

Fors

Fors

Użytkownicy
Chrząszcz
posty190
Propsy14
ProfesjaNierób
  • Użytkownicy
  • Chrząszcz
@Refresh
 

TheKetrab

TheKetrab

Użytkownicy
posty334
Propsy217
ProfesjaProducent
  • Użytkownicy
Szukać błędów nikt za ciebie nie będzie. Nie wiadomo nawet, czy jest w tym pliku... Czy wiadomo? Umiejętność debugowania jest równie ważna, co programowania (;

Wykomentowywuj linijki " // " lub bloki " /* ... */ " i zobacz, kiedy błąd ustanie. Wtedy zmniejszaj zakres tego, co ma być niewidoczne dla parsera, aż znajdziesz błąd. Wtedy, jeśli znajdziesz wadliwą linijkę i nie będziesz potrafił znaleźć w niej błędu, możesz napisać na forum ponownie z pogrubioną, zaznaczoną ową linijką. Dasz radę! :P
 

Mikotsune

Mikotsune

Czas Honoru
posty365
Propsy289
Profesjabrak
  • Czas Honoru
Na pierwszy rzut oka widać, że brakuje klamer.

Pobierz sobie Notepad++ i w nim pisz skrypty. Jak klikniesz w jakąś klamrę, to Ci pokaże gdzie jest początek i koniec.

Polecam wejść w Notepadzie w Ustawienia -> Konfigurator stylów -> Dostępne style: Zenburn
Wszystko ładnie kolorowo widać i oczy nie bolą przy dłuższym posiedzeniu, ponieważ jest ciemne tło.
 
How can I see roses... and only feel thorns...

Wowoz

Wowoz

Użytkownicy
Wowoźny
posty3698
Propsy4862
NagrodyVV
Profesjabrak
  • Użytkownicy
  • Wowoźny
albo nie
 


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