skrypt regeneracji w gothic 1 4648 8

O temacie

Autor pawbuj

Zaczęty 4.09.2009 roku

Wyświetleń 4648

Odpowiedzi 8

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

skrypt regeneracji w gothic 1
2009-09-04, 16:51(Ostatnia zmiana: 2009-09-04, 16:53)
mam problem z uruchomieniem regeneracji.

bazując na postach resariusa wstawiłem w folderze B
Cytuj
Cytuj
Cytuj
// ******************
// B_TeachRegenerate
// ******************

var int level_regeneracji;
const int HP_lvl_1 = 5;
var int PerSec;

func int B_TeachRegenerate (var C_NPC slf, var C_NPC oth, var int regenerate)
{
    // ------ Kosten festlegen ------
    var int kosten;
    kosten = B_GetLearnCostTalent(oth, NPC_TALENT_REGENERATE, regenerate);
   
   
    // EXIT IF...
   
    // Złe parametry
    if (slf.attribute[ATR_MANA_MAX] < 100) && (slf.attribute[ATR_HITPOINTS_MAX] < 500)
    {
        PrintScreen    ("Twoja energia życiowa/magiczna jest zbyt niska", -1, -1, _STR_FONT_ONSCREEN, 2);
        return FALSE;
    };
   
    // Za mała ilość punktów nauki
    if (oth.lp < kosten)
    {
        PrintScreen    ("Za mało punktów umiejętności", -1, -1, _STR_FONT_ONSCREEN, 2);
        B_Say (slf, oth, "$NOLEARNNOPOINTS");
       
        return FALSE;
    };
           
    oth.lp = oth.lp - kosten;

    Npc_SetTalentSkill (self, NPC_TALENT_REGENERATE, 1);
    Log_CreateTopic (GE_TalentRegenerate,LOG_NOTE);
    B_LogEntry (GE_TalentRegenerate,"Ponoć gdy osiągnie się szczyt skupienia można doprowadzić stan swojego ducha do samoregeneracji ciała i duszy.");
};

func void tick_tock ()
{
      if (hero.attribute[ATR_HITPOINTS] > 0)
   {
      PerSec +=1;
   };
      if (level_regeneracji == 1) && (PerSec == 1)
      {
          hero.attribute[ATR_HITPOINTS] = (hero.attribute[ATR_HITPOINTS] + HP_lvl_1);
          PerSec = 0;
      };

    if (oth.lp >= kosten) && (slf.attribute[ATR_MANA_MAX] >= 100) && (slf.attribute[ATR_HITPOINTS_MAX] >= 500) && (level_regeneracji == 1)
   {

      Npc_SetTalentSkill     (self, NPC_TALENT_REGENERATE, 1);
          hero.attribute[ATR_HITPOINTS] = (hero.attribute[ATR_HITPOINTS] + HP_level_1);
   };
      if (hero.attribute[ATR_HITPOINTS]>hero.attribute[ATR_HITPOINTS_MAX])
      {
            hero.attribute[ATR_HITPOINTS] = (hero.attribute[ATR_HITPOINTS_MAX]);

                PrintScreen            (PRINT_LearnRegenerate, -1, -1, FONT_Screen, 2);
        B_LogEntry              (GE_TalentRegenerate,"Osiągnąłem stan całkowitego skupienia umysłu. Od teraz moje ciało i dusza współdziałają, by nawzajem się odnowić.");

                Wld_SendTrigger("TICK_TOCK");
      };
};
w dialogu diega ustawiłem  Npc_SetTalentSkill (self, NPC_TALENT_REGENERATE, 1); i nie działa, pytanie dlaczego?

czy i jakie zmienne powinienem wstawić w folderze constans.d i czy to wystarczy? proszę o pomoc.
 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Zrobiłeś triggera w spacerze?

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

skrypt regeneracji w gothic 1
#2 2009-09-04, 16:59(Ostatnia zmiana: 2009-09-04, 17:00)
good question.

tzn. możesz mi adanos przybliżyć to?czy dodatkowo umieszczam gdzieś zmienne tj.
var int level_regeneracji;
const int HP_lvl_1 = 5;
var int PerSec;

bardzo proszę.
 

Tasilvar

Tasilvar

Użytkownicy
zwykły user
posty264
Propsy17
ProfesjaSkrypter
  • Użytkownicy
  • zwykły user
Pokarz na screenie konfigurację triggerscripta
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

skrypt regeneracji w gothic 1
#4 2009-09-04, 17:04(Ostatnia zmiana: 2009-09-04, 17:08)
powiem szczerze, że na triggerscriptach nie znam się właściwie. ten temat mi jest bardzo odległy.

czyli do tego trzeba robić triggery w spacerze??
 

Tasilvar

Tasilvar

Użytkownicy
zwykły user
posty264
Propsy17
ProfesjaSkrypter
  • Użytkownicy
  • zwykły user
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy

pawbuj

skrypt regeneracji w gothic 1
#6 2009-09-04, 17:15(Ostatnia zmiana: 2009-09-05, 21:02)
powiem szczerze , ze powoli kurwicy dostaje. wstawiłem triggera w spacku ale g... sie dzieje. zapisałem zena, skrypt wstawiłem, reparsowałem i nic....
 

NewbieModder

NewbieModder

Użytkownicy
posty2
  • Użytkownicy
Jezeli chcesz tylko prosty skrypt regeneracji to nieoplaca ci sie bawic z trggerami w spacerze, zwlaszcza jezeli za bardzo nie wiesz co i jak...
Zamiast sie z tym bawic nie lepiej wykozystac wbudowana umiejetnosc regeneracji??
Wystarczy ze w skrypcie nauki przypiszesz nowe wartosci do tych atrybutow:

hero.attribute[ATR_REGENERATEHP] = 1;
hero.attribute[ATR_REGENERATEMANA] = 1;

dzieki temu co 1 sek bedzie regenerowalo 1hp i 1mp.
Wartosc przypisana do tych atrybutow jest to odstep czasu (w sek.) po ktorym zregneruje sie po 1 pkt Hp jak i MP
np. jak dasz 5 to co 5 sek bedzie regenerowalo po 1pkt.
Ten sposob dziala na 100% bo sam go uzywam.
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
już zrobiłem ten trigger, ale dzięki za to,że dodałeś to od siebie. tak dokładnie o czym mówisz pisząc skrypt nauki?
 


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