Miecz + lodowa fala 6542 15

O temacie

Autor Splash

Zaczęty 8.01.2012 roku

Wyświetleń 6542

Odpowiedzi 15

Splash

Splash

Moderator
posty4210
Propsy3412
ProfesjaNierób
  • Moderator
zrobic magiczny miecz to rzadna sztuka teraz , piszesz skrypt , potem atakujesz i pojawia sie switelko wow
wg mnie to juz przezytek, zrobilem skrpyt podobny to miecz ktory zamraza, ale teraz pracuje nad mieczem takim, ktory po ataku pojawia sie lodowa fala i zamraza cele w poblizu, kombinuje i kombinuje, ale tylko zamraza 1 osobe, bawil sie juz ktos w to, bo ja nie daje rady
prosze o pomoc  :wink:
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
Spróbuj wyzwalać całe zaklęcie zamiast samego efektu, powinno pomóc tylko wyłącz pobieranie many chyba że ma pobierać.
 
Ż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

Splash

Splash

Moderator
posty4210
Propsy3412
ProfesjaNierób
  • Moderator
gdybym nie wpisal efektu, nie pojawial by sie, wygladalo by to jak by goscia sparalizowalo  :lol:  na koncu wstawilem :         AI_StartState        (self, ZS_MagicFreeze, 0, "");
        return;
przegladalem skrypty magii, ale nie bylo czegos takiego jak ice wave a nawet ice cube tylko magicfreeze
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
AI_SetNpcsToState/*Daj npcom status*/(self/*kto? w tym przypadku przeciwnik*/,ZS_MagicFreeze/*Jaki status?*/,1000/*zasięg*/);
 
: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
posty4210
Propsy3412
ProfesjaNierób
  • Moderator
ooo dzieki polaking tylko jest jeden problem, mnie tez zamraza  :lol2:
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Miecz + lodowa fala
#5 2012-01-08, 20:41(Ostatnia zmiana: 2012-01-08, 20:43)
To wpisz do ZS_MagicFreeze komendę, że jeśli masz tę broń, to automatycznie kończy się ten state na twojej postaci, czyli na hero.

Powinieneś sobie z tym poradzić, bo nawet słaby modder da radę to zrobić. To są tylko trzy/cztery linijki.
 
: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.

Demonical Monk

Demonical Monk

Użytkownicy
posty145
Propsy152
  • Użytkownicy
To wpisz do ZS_MagicFreeze komendę, że jeśli masz tę broń, to automatycznie kończy się ten state na twojej postaci, czyli na hero.

Powinieneś sobie z tym poradzić, bo nawet słaby modder da radę to zrobić. To są tylko trzy/cztery linijki.

Gdzie ty tu widzisz jakąś komendę? :|
 


Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Miecz + lodowa fala
#8 2012-01-09, 17:49(Ostatnia zmiana: 2012-01-09, 17:52)
Cytuj
// *****************
// B_StopMagicFreeze
// *****************

func void B_RestartFreeze()
{
   if (Npc_GetLastHitSpellID(self) == SPL_IceCube)
   || (Npc_GetLastHitSpellID(self) == SPL_IceWave)      
   {
      Npc_SetStateTime(self,0);
   };
};


func void B_StopMagicFreeze()
{   
   Npc_PercEnable   (self, PERC_ASSESSMAGIC, B_AssessMagic);
   
   Npc_ClearAIQueue(self);
   AI_StandUp      (self);

   if (self.guild < GIL_SEPERATOR_HUM)
   {
      B_AssessDamage();
   }
   else
   {
      Npc_SetTempAttitude (self, ATT_HOSTILE); //falls nicht schon Gilden-Attitüde hostile ist
   };
   
   // nach Aufruf dieses Befehles wird die Loop über return LOOP_END beendet
};

// **************
// ZS_MagicFreeze
// **************

func int ZS_MagicFreeze()
{
   Npc_PercEnable      (self, PERC_ASSESSMAGIC, B_RestartFreeze);       // falls ein NSC nochmal von einem Freezespell getroffen wurde, so muss die State Time reseted werden
   
   Npc_StopAni(self, S_FIRE_VICTIM);                              // falls der NSC am Zappeln ist, brich die Ani ab

   // Opfer wird in Bodystate Unconscious versetzt
   if (!C_BodyStateContains(self, BS_UNCONSCIOUS))
   {
      AI_PlayAniBS       (self, T_STAND_2_FREEZE_VICTIM, BS_UNCONSCIOUS);
   };
   self.aivar[AIV_FreezeStateTime] = 0;

   var C_ITEM ready;
   ready = Npc_GetReadiedWeapon(hero);

   if (Npc_IsInState(hero, ZS_MagicFreeze))
   && (Npc_HasItems(hero, ItMw_Zabojca) == TRUE && Hlp_IsItem(ready, ItMw_Zabojca) == TRUE)
   || (Npc_IsInState(hero, ZS_MagicFreeze))
   && (Npc_HasItems(hero, ItMw_DasLegendereSchwiertOfAddanos) == TRUE && Hlp_IsItem(ready, ItMw_DasLegendereSchwiertOfAddanos) == TRUE)
   || (Npc_IsInState(hero, ZS_MagicFreeze))
   && (Npc_HasItems(hero, ItMw_1h_GoldSword_01) == TRUE && Hlp_IsItem(ready, ItMw_1h_GoldSword_01) == TRUE)
   || (Npc_IsInState(hero, ZS_MagicFreeze))
   && (Npc_HasItems(hero, ItMw_Exkalibur) == TRUE && Hlp_IsItem(ready, ItMw_Exkalibur) == TRUE)
   {
   B_StopMagicFreeze();
   return LOOP_END;
   };


};



func int ZS_MagicFreeze_Loop ()
{   
   // EXIT LOOP IF...
   
   if (Npc_GetStateTime(self) > SPL_TIME_FREEZE)
   {
      B_StopMagicFreeze();
      return LOOP_END;
   };
   
   // LOOP FUNC
   if (Npc_GetStateTime(self) != self.aivar[AIV_FreezeStateTime])
   {
      self.aivar[AIV_FreezeStateTime] = Npc_GetStateTime(self);
   
      // ------ Damage abziehen, aber NICHT sterben (immer mindeststens 1 LE behalten) ------
      if (self.attribute[ATR_HITPOINTS] > (self.attribute[ATR_HITPOINTS] - SPL_FREEZE_DAMAGE))
      {

   var string concatText;
   concatText = ConcatStrings(PRINT_HP, IntToString(self.attribute[ATR_HITPOINTS]));
   Print(concatText);

         // feuer wesen erhalten doppelten schaden
         if (self.guild == GIL_FIREGOLEM)
         || (self.aivar[AIV_MM_REAL_ID]   ==    ID_FIREWARAN)
         || (self.aivar[AIV_MM_REAL_ID]   ==    ID_DRAGON_FIRE)      
         {
            B_MagicHurtNpc       (other,   self, SPL_FREEZE_DAMAGE*2);
            return LOOP_CONTINUE;
         };
         
         // eis wesen erhalten halben schaden
         if (self.guild == GIL_ICEGOLEM)
         || (self.aivar[AIV_MM_REAL_ID]==ID_DRAGON_ICE)
         {
            B_MagicHurtNpc       (other, self, SPL_FREEZE_DAMAGE/2);
            return LOOP_CONTINUE;
         };
   
         // rest ganz normal
         B_MagicHurtNpc       (other,   self, SPL_FREEZE_DAMAGE);
      };
   };
   
   return            LOOP_CONTINUE;
};


func void ZS_MagicFreeze_End()
{

};


Zaznaczone na czerwono oznacza:
ready = npc ma założoną broń.
Jeśli postać (w tym przypadku hero) ma broń i jest zamrożona.
Nazwa broni to zamrożenie nie zadziała na postać.


Czyli powinno tam to, co ja mam wyglądać tak:


if (Npc_IsInState(hero, ZS_MagicFreeze)) // jesteś w statusie
&& (Npc_HasItems(hero, ItMw_Exkalibur) == TRUE && Hlp_IsItem(ready, ItMw_Exkalibur) == TRUE) // masz założoną broń i ją używasz (walczysz nią)
{
B_StopMagicFreeze(); // to jesteś odmrożony
return LOOP_END; // to jesteś odmrożony
};

A przed tym musi być:

var C_ITEM ready;
ready = Npc_GetReadiedWeapon(hero);
 
: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.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Miecz + lodowa fala
#9 2012-01-09, 17:55(Ostatnia zmiana: 2012-01-09, 18:06)
Polaking, co to jest? Uwaga, cytuję na wypadek gdybyś kasował:
var C_ITEM ready;
ready = Npc_GetReadiedWeapon(hero);

if (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_Zabojca) == TRUE && Hlp_IsItem(ready, ItMw_Zabojca) == TRUE)
|| (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_DasLegendereSchwiertOfAddanos) == TRUE && Hlp_IsItem(ready, ItMw_DasLegendereSchwiertOfAddanos) == TRUE)
|| (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_1h_GoldSword_01) == TRUE && Hlp_IsItem(ready, ItMw_1h_GoldSword_01) == TRUE)
|| (Npc_IsInState(hero, ZS_MagicFreeze))
&& (Npc_HasItems(hero, ItMw_Exkalibur) == TRUE && Hlp_IsItem(ready, ItMw_Exkalibur) == TRUE)
{
B_StopMagicFreeze();
return LOOP_END;
};

Proponowałbym raczej:
func int ZS_MagicFreeze()
{
if (Hlp_IsItem(Npc_GetReadiedWeapon(self), twojzamrazajacymiecz)) { return 1; };
Jednak tak jak napisałem wcześniej, takie rozwiązanie spowoduje że trzymający tą broń w ogóle stanie się odporny na zamrażanie.

//edit: nie zauważyłem twojej edycji, kod pod spodem wydaje się być normalniejszy. Nadal jednak nie trzyma się do końca kupy.

Żeby nie być gołosłownym krytykantem, spróbuję wyjaśnić dlaczego:
if (Npc_IsInState(hero, ZS_MagicFreeze)) //po co to sprawdzasz, skoro warunek znajduje się właśnie wewnątrz ZS_MagicFreeze ?
&& (Npc_HasItems(hero, ItMw_Exkalibur) == TRUE //po co w ogóle to sprawdzasz? W warunkach nigdy nie używa się "== TRUE", jest to domyślne
&& Hlp_IsItem(ready, ItMw_Exkalibur) == TRUE) //niepotrzebnie stworzyłeś specjalną zmienną, można było po prostu wpisać tu funkcję. Dodatkowo, jak wyżej - w warunkach nigdy nie używa się "== TRUE", jest to domyślne
        {
        B_StopMagicFreeze(); // po co?
        return LOOP_END; // OK
        };

       var C_ITEM ready;
        ready = Npc_GetReadiedWeapon(hero); //Dlaczego sprawdzasz broń jaką ma wyciągnięty bohater? Przecież przez to gdyby bohater miał ją wyciągniętą, to wtedy zamrażanie nie działałoby też na npc'ów. I na odwrót, gdyby NPC próbował z niej korzystać, to zamrażałoby wszystkich łącznie z nim. Trzeba sprawdzać "self" (npc'a który jest w danym stanie)

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Lepiej napisać coś więcej, niż coś mniej i żeby nie działało... A w ogóle to ja to używam i mi działa, więc niech lepiej zrobi tak, jak ja napisałem, bo nie ma w tym żadnych błędów.

Pozdrawiam. :)
 
: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.

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

Miecz + lodowa fala
#11 2012-01-09, 18:42(Ostatnia zmiana: 2012-01-09, 18:48)
Błędów nie ma, ale nie będzie działał poprawnie. Sprawdź czy zamrażanie będzie działało na kogokolwiek, jeśli gracz ma wyciągnięty ten miecz. Według twojego skryptu, nie powinno (chyba że on w ogóle nie działa i zamraża wszystkich łącznie z graczem).

//edit: ok, w warunku też sprawdzasz hero, więc takiego błędu jak napisałem nie będzie. Skrypt za to nie będzie działał z npc'ami, żaden z nich przez to nie może używać tego miecza. Sugerowałbym jednak spróbować mojego uniwersalnego jednolinijkowego rozwiązania.
if (Hlp_IsItem(Npc_GetReadiedWeapon(self), twojzamrazajacymiecz)) { return 1; };

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Miecz + lodowa fala
#12 2012-01-09, 19:08(Ostatnia zmiana: 2012-01-09, 19:08)
Cytuj
Lepiej napisać coś więcej, niż coś mniej i żeby nie działało... A w ogóle to ja to używam i mi działa, więc niech lepiej zrobi tak, jak ja napisałem, bo nie ma w tym żadnych błędów.

Pozdrawiam.  

Działa, zamraża, i kurde nic złego się nie dzieje!!! 100% działa, BEZBŁĘDNIE!!! -.-
 
: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.


Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
:facepalm:  Przecież wiadomo, że hero znaczy, że tylko gracz... Jakby miało być other, żeby wszystkim działało, to bym napisał...
 
: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.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.

Bogdan Zwei

Miecz + lodowa fala
#15 2012-03-18, 14:55(Ostatnia zmiana: 2012-03-18, 14:56)
Refresh tematu: Próbowałem parę razy tak jak mówił Avallach i działało to tak, że jak other (przeciwnik) używał broń, to nic się nie działo, zaś jak other (gracz), to nie zamrażało gracza. Tak samo było w B_AssessDamage, jeśli dałem other zamiast hero, to ten other (przeciwnik) nie wywoływał efektu miecza.
 
: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.


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