[G1]Pytanie/a związane z premią do walki. 11782 52

O temacie

Autor Graveir

Zaczęty 11.12.2013 roku

Wyświetleń 11782

Odpowiedzi 52

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Post "usunięty"
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Jesli chodzi o premie do broni to trzymaj... sam pisalem(trudne to nie jest i z tego co pamietam to dzialalo):
          FUNC VOID Equip_HKnife()
   {
      Npc_SetTalentValue   (self, NPC_TALENT_1H,         +5);
   };
   FUNC VOID UnEquip_HKnife()
   {
      Npc_SetTalentValue   (self, NPC_TALENT_1H,         -5);
   };
Po zalozeniu zwieksza sie premia do walki badz na odwrot. Tylko nie pamietam czy byl problem z odjeciem tego bonusy :F
A jesli chodzi o Daj mikstura to prostu warunek
If (AIV_Partymember == TRUE)
// DIalog z "daj miksture"
If (AIV_Partymember == FALSE)
// Dialog bez "daj miksture"
I to cala filozofia :d

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Post "usunięty"
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Sprawdzilem ten sposob, ktory byl w MT:
INSTANCE HKnife (C_Item)
{   
   name             =   "Nóż strażnika";

   mainflag          =   ITEM_KAT_NF;
   flags             =   ITEM_SWD|ITEM_MULTI;   
   material          =   MAT_METAL;

   value             =   120;

   damageTotal         =    20;
   damagetype          =   DAM_EDGE;
   range             =     100;     

   cond_atr[2]         =    ATR_STRENGTH;
   cond_value[2]        =    10;
   visual             =   "ItMw_012_1h_Knife_02.3DS";

   on_equip            =   Equip_HKnife;
   on_unequip            =   UnEquip_HKnife;
   description         = name;
   TEXT[1]            = "Premia do Walki: ";               COUNT[1]   = 5;
   TEXT[2]            = NAME_Damage;               COUNT[2]   = damageTotal;
   TEXT[3]          = NAME_Str_needed;            COUNT[3]   = cond_value[2];
   TEXT[4]          = NAME_OneHanded;
   TEXT[5]            = NAME_Value;               COUNT[5]   = value;
};


   FUNC VOID Equip_HKnife()
   {
   Npc_SetTalentValue(hero, NPC_TALENT_1H, Npc_GetTalentValue(hero, NPC_TALENT_1H)+5);
   //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)+5);
   };

   FUNC VOID UnEquip_HKnife()
   {
   Npc_SetTalentValue(hero, NPC_TALENT_1H, Npc_GetTalentValue(hero, NPC_TALENT_1H)-5);
   //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)-5);
   };
I dziala lepiej niz ten moj, poniewaz dodaje jak i odejmuje bonus do walki(w moim byl problem z odjeciem). Nie wiem czemu nie dziala tobie.
Teraz zadam podstawowe pytanie "Czy aby napewno zreparsowales i zapisales skrypty?"

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Tak. Dodam, że nawet jeśli uruchomię oryginalnego moda to po założeniu nie ma ani widocznej ani ukrytej premii. Sprawdzałem nawet czy po założeniu "Miecza Siekacza", który daje(niby)20% premii do walki Bezimienny walczy 1 ręką czy dalej dwiema - i jak łatwo się domyślić, dalej walczy dwoma.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
To wlacz GothicStarter(mod) i zaznacz tylko "REPARSE SCRIPTS" i "VDFS PHYSICAL FIRST"(reszte odznacz), a na zSpy messages daj 5 i wlacz swojego moda.
UWAGA: Im wiekszy zSpy messages tym dluzej Ci sie bedzie gra ladowala

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Zrobiłem tak jak kazałeś. Nie znalazło żadnego błędu, a premii dalej nie ma.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
5% do walki daje zwiększone prawdopodobieństwo na trafienie krytyczne.
Jeśli chcesz zmienić sposób walki musisz modyfikować stopień

Masz do tego 2 osobne funkcje

Npc_GetTalentValue -zwraca wartość umiejętności (0% - 100%)
Npc_GetTalentSkill  -zwraca stopień umiejętności (zielony,uczeń,mistrz)

jak chcesz dodawać szanse na umiejętność krytyczna i spr czy zmieni się stopien umiejętności dodaj to po dodaniu

if Npc_GetTalentValue(other, NPC_TALENT_2H) >= 90{

Npc_SetTalentSkill(other, NPC_TALENT_2H,2);

}else if Npc_GetTalentValue(other, NPC_TALENT_2H) >= 60{

Npc_SetTalentSkill(other, NPC_TALENT_2H,1);

}else if Npc_GetTalentValue(other, NPC_TALENT_2H) >= 30{

Npc_SetTalentSkill(other, NPC_TALENT_2H,0);

};

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Czyli teoretycznie ta premia do walki nie miała zwiększać o 5 punktów walki(czyli np. wyuczając się 5 punktów walki bronią jednoręczną u Scattiego i zakładając ten nóż )nie powinniśmy otrzymać poziomu nowicjusza(czyli trzymać broń w 1-ręce(bo od 10 punktów jest trzymanie broni w 1 ręce)tylko po prostu mieć szansę na trafienie krytyczne zwiększoną o 5%?
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Nie. Ta tzw. premia do walki to tylko "Szansa na trafienie krytyczne". Gdy sie osiagnie odpowiednia ilosc zmnienia sie nasz styl walki.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Cytat: Graveir
Czyli teoretycznie ta premia do walki nie miała zwiększać o 5 punktów walki(czyli np. wyuczając się 5 punktów walki bronią jednoręczną u Scattiego i zakładając ten nóż )nie powinniśmy otrzymać poziomu nowicjusza(czyli trzymać broń w 1-ręce(bo od 10 punktów jest trzymanie broni w 1 ręce)tylko po prostu mieć szansę na trafienie krytyczne zwiększoną o 5%?

Tak, właśnie tak. Dzięki tej formule zwiększasz % szansy na trafienie krytyczne, a nie styl walki. W Gothic 1: 10% szansy na trafienie krytyczne = adept >> miecz trzymany jedną ręką ostrzem do góry, a 30% szansy na trafienie krytyczne = mistrz >> miecz trzymany ostrzem do dołu (obok prawej nogi bohatera).


Dodatkowa informacja:
0 - 9% szansy na trafienie krytyczne = brak zmiany stylu walki (brak, miecz jednoręczny trzymany w dwóch rękach);
10 - 29% szansy na trafienie krytyczne = Adept, miecz trzymany jedną ręką ostrzem do góry;
30 - 100% szansy na trafienie krytyczne = Mistrz, miecz trzymany jedną ręką ostrzem do dołu (przy prawej nodze bohatera);
 
: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.

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
No dobrze, ale czy w takim wypadku nie powinien nam się automatycznie załączać tryb adepta(jeśli mamy 5% wyuczone i założymy broń z premią 5%)?
Edit: Bo nie ruszając skryptu tego noża jak mam 5% wyuczone i założę go to dalej mam 5%(przez co nie trzymam broni w 1 ręce, a powinienem).
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Słuchaj się idiotów dalej to są DWIE NIEZALEŻNE zmienne. Z tego co pamiętam NPCty mają poziomy na adepta czy mistrza a mają zawsze 0 %. Te wartości ustala się OSOBNO.

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Wyskakuje mi błąd, że brakuje "{" w linii 4154 czyli w pogrubionej części wraz z kursywą:
    FUNC VOID Equip_HKnife()
    {
   [i][b] if Npc_GetTalentValue(other, NPC_TALENT_2H) >= 90)[/b][/i]
    {
    Npc_SetTalentSkill(other, NPC_TALENT_2H,2);
    }
    //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)+5);
    };

    FUNC VOID UnEquip_HKnife()
    {
    Npc_SetTalentValue(self, NPC_TALENT_1H, Npc_GetTalentValue(self, NPC_TALENT_1H)-5);
    //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)-5);
    };
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Usuń "}" spod
Cytuj
Npc_SetTalentSkill(other, NPC_TALENT_2H,2);

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Usunąłem, przez co skrypt wygląda tak:
Spoiler
INSTANCE HKnife (C_Item)
{
name = "Nóż strażnika";

mainflag = ITEM_KAT_NF;
flags = ITEM_SWD|ITEM_MULTI;
material = MAT_METAL;

value = 120;

damageTotal = 20;
damagetype = DAM_EDGE;
range    100;

cond_atr[2]    = ATR_STRENGTH;
cond_value[2]  = 10;
visual = "ItMw_012_1h_Knife_02.3DS";

on_equip = Equip_HKnife;
on_unequip = UnEquip_HKnife;
description = name;
TEXT[1] = "Premia do Walki: "; COUNT[1] = 5;
TEXT[2] = NAME_Damage; COUNT[2] = damageTotal;
TEXT[3] = NAME_Str_needed; COUNT[3] = cond_value[2];
TEXT[4] = NAME_OneHanded;
TEXT[5] = NAME_Value; COUNT[5] = value;
};


FUNC VOID Equip_HKnife()
    {
    if Npc_GetTalentValue(other, NPC_TALENT_2H) >= 90)
    {
    Npc_SetTalentSkill(other, NPC_TALENT_2H,2);
    //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)+5);
    };

    FUNC VOID UnEquip_HKnife()
    {
    Npc_SetTalentValue(self, NPC_TALENT_1H, Npc_GetTalentValue(self, NPC_TALENT_1H)-5);
    //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)-5);
    };
I dalej wyskakuje błąd o treści(wg ZSpy)
[F] 00:25 Fatal:-1 U:    PAR: Expected '{' ( line 4154 ) .... <zParser.cpp,#599>
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Miało być daj średnik po klamrze :P

Używaj jakiegoś Notepad++, łatwiej będzie ci wtedy zobaczyć, czy jakiś nawias jest niedomknięty.

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Tak powinno to wyglądać?
Spoiler
   FUNC VOID Equip_HKnife()
    {
    if Npc_GetTalentValue(other, NPC_TALENT_2H) >= 90)
    {
    Npc_SetTalentSkill(other, NPC_TALENT_2H,2);
    };
 
  FUNC VOID UnEquip_HKnife()
    {
    Npc_SetTalentValue(self, NPC_TALENT_1H, Npc_GetTalentValue(self, NPC_TALENT_1H)-5);
    //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)-5);
    };
Bo jeśli tak, to dalej występuje ten sam błąd.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Spoiler
   FUNC VOID Equip_HKnife()
    {
          if (Npc_GetTalentValue(self, NPC_TALENT_2H) >= 90)
          {
                    Npc_SetTalentSkill(self, NPC_TALENT_2H,2);
          };
    };

    FUNC VOID UnEquip_HKnife()
    {
         Npc_SetTalentValue(self, NPC_TALENT_1H, Npc_GetTalentValue(self, NPC_TALENT_1H)-5);
         //Npc_SetTalentValue(self, NPC_TALENT_SNEAK, Npc_GetTalentValue(self, NPC_TALENT_SNEAK)-5);
    };

Z drugiej strony, to nie rozumiem funkcji Equip do funkcji Unequip. Tylko będziesz tracił 5% szansy na krytyczne uderzenie po każdym odłożeniu orężu.
 
: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.

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Chodziło mi głównie o to, że cały czas mi wywalało błędy przy próbie "skopiowania" opisu Rafała. Bo te 5% z funkcji Unequip ogólnie nie działa.
Edit: Zmieniłem
if (Npc_GetTalentValue(self, NPC_TALENT_2H) >= 90)
na
if (Npc_GetTalentValue(self, NPC_TALENT_1H) >= 5)
Oraz tak samo zrobiłem z 
Npc_SetTalentSkill(self, NPC_TALENT_2H,2);
Czyli NPC_TALENT_2H,2 na  NPC_TALENT_1H,1.
Błędów nie znalazło, ale dalej nie działa(bo teoretycznie warunek z opcji equip powinien sprawić, że jeśli mamy 5 punktów w walce bronią jednoręczną to po założeniu powinien się załączyć poziom adepta[czyli broń trzymana w 1 ręce]).
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti


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