Ładowanie zaklęcia oraz zmiana koloru w RGBA 4459 17

O temacie

Autor Siemekk

Zaczęty 8.12.2015 roku

Wyświetleń 4459

Odpowiedzi 17

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Witam. Otóż bez zbędnego gadania. Wyjąłem z gothic CZ Meteor do testów tylko że w g1 system ładowania czarów wygląda inaczej. Czy w g2 mógłbym go jakoś odtworzyć (dopóki czar nie osiągnie 100% naładowania się nie wykona -trzymanie W+Ctrl). Oraz drugie pytanie czy da się zmienić color PrintScreen w zapisie RGBA? Próbowałem z takim skryptem ale wywala błąd (Nieznany identyfikator). Oto błędny skrypt :PrintScreen ("Test!", -1,-1,"font_old_20_white.tga",RGBAToZColor(100,100,255,255),2);Dodam także że print ma się znajdować w dialogu.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
1. Co do czaru to są podobne tylko zbędny jest Print Debug, i kilka nazw się różni, plus to że w g1 instance czaru jest w spells_params.d A w g2 zwyczajnie w pliku czaru, jeśli chodzi o ładowanie to przyjrzyj się kuli ognia orginale z g2 ogólnie każdy czar z g1 do g2 jest łatwo przenieśc, problem tylko z tymi które są zaprogramowane w silniku
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
@toworish wiem że łatwo przenieść w końcu mi się udało i to nie jeden raz xd ale co do tematu z zaklęciem zaklęcię się ładuje w nieskończoność i nie chcę lecieć w stronę wroga (nie pamiętam jak to się nazywało) przy czym nie ma też kolizji :/
const int SPL_Cost_Meteor      = 160; //4*40
const int STEP_Meteor         = 40;
const int SPL_Damage_Meteor    = 75;
INSTANCE Spell_Meteor (C_Spell_Proto)
{
   time_per_mana         = 30;
   damage_per_level      = SPL_Damage_Meteor;
   damageType            = DAM_MAGIC;   
   canTurnDuringInvest     = TRUE;
};
func int Spell_Logic_Meteor (var int manaInvested) 
{
   if (self.attribute[ATR_MANA]<STEP_Meteor) 
   {
      return SPL_DONTINVEST;   
   };
   if (manaInvested <= STEP_Meteor*1)
   {
      self.aivar[AIV_SpellLevel] = 1; //Start mit Level 1
      return SPL_STATUS_CANINVEST_NO_MANADEC;
   }
   else if (manaInvested > (STEP_Meteor*1))
   && (self.aivar[AIV_SpellLevel] <= 1)
   {
      self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_Meteor);
      if (self.attribute[ATR_MANA]<0) 
      {
            self.attribute[ATR_MANA]=0;
      };
   
      self.aivar[AIV_SpellLevel] = 2;
      return SPL_NEXTLEVEL; //Lev2 erreicht
   }
   else if (manaInvested > (STEP_Meteor*2))
   && (self.aivar[AIV_SpellLevel] <= 2)
   {
      self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_Meteor);
      if (self.attribute[ATR_MANA]<0) 
      {
            self.attribute[ATR_MANA]=0;
      };
      self.aivar[AIV_SpellLevel] = 3;
      return SPL_NEXTLEVEL; //Lev3 erreicht
   }
   else if (manaInvested > (STEP_Meteor*3))
   && (self.aivar[AIV_SpellLevel] <= 3)
   {
      self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_Meteor);
      if (self.attribute[ATR_MANA]<0) 
      {
            self.attribute[ATR_MANA]=0;
      };   
      self.aivar[AIV_SpellLevel] = 4;
      return SPL_NEXTLEVEL; //Lev4 erreicht
   }
   else if (manaInvested > (STEP_Meteor*3))
   && (self.aivar[AIV_SpellLevel] == 4)
   {
      return SPL_DONTINVEST;   
   };
   return SPL_STATUS_CANINVEST_NO_MANADEC;   
};
func void Spell_Cast_Meteor(var int spellLevel)
{
   self.attribute[ATR_MANA] = (self.attribute[ATR_MANA] - STEP_Meteor);
   
   if (self.attribute[ATR_MANA]<0) 
   {
      self.attribute[ATR_MANA]=0;
   };
   
   self.aivar[AIV_SelectSpell] += 1;
};
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Jestem zbyt, jaki jestem to nie ważne, mogę ci w tej chwili powiedzieć jedynie że jeżeli chodzi o kolizje to interesuje cie plik: C_CanNpcColideWithSpell.d

Edit: btw, może pominąłeś jakiś effekt?
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Cóż efektu żadnego nie pominąłem.A co do wyświetlania napisu to zrobiłem na nowo :Print_ext(1,32,"test","Font_Old_10_White.tga",RGBA(255, 180, 0,   255),2);
Zrobiłem to nie wywala błędu ale napis się nie pojawia. Ktoś może mnie naprowadzić co źle zrobiłem.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Splash

Splash

Moderator
posty4211
Propsy3414
ProfesjaNierób
  • Moderator
Bo podałeś złą pozycję.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Cóż splash miałeś rację. Z ustawieniem to sobie poradzę. Zostało tylko zaklęcie i temat będzie można zamknąć.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Nie chce mi sie ściągać znowu cz, aby żeby zobaczyć jak to wygląda tam, ale może pobiorę, co mi szkodzi
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Print_ext(1,32,"test","Font_Old_10_White.tga",RGBA(255, 180, 0,   255),2);

Dwie milisekundy
sekunda = 1000
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
@Bogdan właśnie jak byłem w szkole do domyśliłem się xd. Ale zostało zaklęcie bo efekt napisu zrobiłem z pomocą Splasha.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
No chuj wie, co gdzie jak wpisałeś, może pominąłeś jakiś plik związany z czarem a w ZS_MagicBurn.d i ZS_MagicBurnShort.d wpisałeś odpowiednie linijki?
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Te dwa pliki odpowiadają za wykonywanie animacji celu. Nie są konieczne, wręcz są niepotrzebne.
 
: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.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
No może, ale widzę że duża kula ognia tam jest, to zaproponowałem xd nie wiem czemu się ładuje w nieskończonosć, dziwny przypadek spróbowałbym zrobić czar bez ładowania na sprawdzian czy efekt się wywoła
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Czar się w nieskończoność ładuje, bo Spell_Nazwa.d jest źle napisany. Zapewne wywaliłeś coś z niego, albo przerobiłeś. Skopiuj z kuli ognia (dużej) i zmień tylko ChargeFireBall na nazwę swojego czaru. Da się zrobić, żeby tylko po danym naładowaniu się wywoływał efekt, ale jest z tym sporo roboty. Jak będzie mi się chciało to zrobię to i udostępnię gotowy skrypt tutaj, ale nie wiem, czy do tego dojdę.

Info: ciebie interesują return XXX; oraz if (manaInvested > (STEP_Meteor*3)) && (self.aivar[AIV_SpellLevel] == 4). Pobaw się tym dopóki ja albo ktoś inny nie da Ci gotowca. :P



Po sprawdzeniu skryptu czaru mogę stwierdzić, że potrzeba będzie ikarusa. Spell_Logic_Nazwa odpowiada za to, co się dzieje przy trzymaniu klawisza odpowiadającego za ruch do przodu, przez co możemy ustawić, co się stanie podczas ładowania czaru. Spell_Cast_Nazwa odpowiada za to, co się stanie po wyzwoleniu czaru z runy, co powoduje, że bez zmolestowania silnika gry nic nie zrobisz. Można ustawić, że przy kolizji czar nic nie będzie robił (czyli po prostu wejdzie w przeciwnika, ale nic się nie stanie) jak manaInvested będzie wynosiło mniej niż powinno wynosić, żeby czar się użył (potrzeba zmiennej). Moim zdaniem będzie to dobry pomysł, jak nie ogarniasz Ikarusa, co prawda nie będzie to jakoś profesjonalnie wyglądało, ale przynajmniej nie będzie atakowało. :P

Polecam Spell_ProcessMana_Release i dodaj tam linijkę:

if (activeSpell == SPL_Meteor )
{
if (self.aivar[AIV_SpellLevel] == 4)
{
return SPL_SENDCAST;
};
return SPL_SENDSTOP;
};

(self.aivar[AIV_SpellLevel] == 4) możesz zastąpić manaInvested == (STEP_Meteor*4) przez co czar będzie wywoływany tylko jak minie 1.6 sekund (w twoim przypadku). STEP_Meteor odpowiada za timer. 1 =  0.01 sekund.
 
: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.

Siemekk

Siemekk

Złote Wrota
posty2143
Propsy1154
ProfesjaProgramista
  • Złote Wrota
Spróbowałem metody twojej ale spell nawet nie chcę zacząć się ładować. Robi animacje jakby nie miał many (ma 20k many jak coś). A taki offtopic mógłbyś mi wyjaśnić, wysłać link do tutoriala na temat aivar bo nie mogę zrozumieć co to jest.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
Aivary to zachowania NPC wydaje mi się że są to tylko zmiennestałe, na temat magicznego aivara jakiekolwiek info znajdziesz moim poradniku o przywołania klona, FAI to też chyba fight aivars XD jak się myle to wyjasnijcie to dokładniej i sory nie chcę nikogo wprowadzać w błąd
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Nie wiem jak się to poprawnie nazywa. Aivary zawierają informacje, które inne funkcje wykorzystują do robienia czegoś. Np. aivar[AIV_ArenaFight] to informacja, która określa, że walki z NPC będą zaliczanie jako walka na arenie, czyli nikogo nie będzie obchodziło, co się dzieje pomiędzy graczem a NPC z tym aivarem - zareagują tylko podczas morderstwa. Inne przykłady to określenie, czy npc jest mordercą, przez co jak jest ten aivar na true, to wszyscy się rzucają na danego npc, żeby go zamordować. Poszukaj zmiennych aivarów w AI_Constants.d. Tam masz cały spis aivarów, już po nazwach powinieneś zauważyć, że są to informacje, które są używane przez skrypty, żeby dany NPC coś zrobił.

Niektóre aivary mają także większe numery od 1. Każdy aivar zaczyna się od AIV_ a informacja dodatkowa aivarów ma po prostu skrót nazwy po "AIV_" i jakiś dodatkowy dopisek:

Spoiler
const int   AIV_ATTACKREASON            = 9;   //Grund des Angriffs - Reihenfolge PRIORISIERT
const int      AR_NONE               = 0;
const int       AR_LeftPortalRoom      = 1;         //Spieler hat (unbefugten) Portalraum verlassen
const int       AR_ClearRoom         = 2;         //Spieler ist unbefugt in meinem Raum
const int      AR_GuardCalledToRoom   = 3;
const int       AR_MonsterVsHuman      = 4;          //Monster kämpft gegen Human - ich helfe Human
const int       AR_MonsterMurderedHuman = 5;         //Monster hat Human getötet
const int       AR_SheepKiller         = 6;         //Schaf wurde angegriffen oder getötet (von Mensch oder Monster)
const int       AR_Theft            = 7;         //Spieler hat Item geklaut
const int       AR_UseMob            = 8;         //Spieler hat an Mob mit Besitzflag rumgefummelt (kann JEDES Mob sein)
const int       AR_GuardCalledToThief    = 9;       
const int       AR_ReactToWeapon      = 10;         //Täter hat trotz zweimaliger Warnung Waffe nicht weggesteckt ODER ich fliehe direkt
const int       AR_ReactToDamage      = 11;          //Täter hat mich verletzt
const int       AR_GuardStopsFight      = 12;          //Wache beendet Kampf, greift Täter an
const int       AR_GuardCalledToKill   = 13;          //Wache durch WARN zum Mit-Töten gerufen
const int       AR_GuildEnemy         = 14;          //Gilden-Feind = Mensch oder Monster
const int       AR_HumanMurderedHuman   = 15;          //other hat gemordet
const int       AR_MonsterCloseToGate    = 16;          //GateGuards halten nicht-feindliches Monster auf
const int      AR_GuardStopsIntruder   = 17;          //GateGuards attackieren Eindringling
const int       AR_SuddenEnemyInferno   = 18;         //EnemyOverride Blockierung für mich selbst und alle NPCs im Umkreis aufheben.
const int       AR_KILL               = 19;          //Spieler aus Dialog heraus töten (SC hat keine Chance)
 
: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.

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
const int AIV_ArenaFight               = 45;const int    AF_NONE                  = 0;
const int    AF_RUNNING               = 1;
const int    AF_AFTER               = 2;
const int    AF_AFTER_PLUS_DAMAGE      = 3;
Czyli zwykłe stałe, których używasz do spełniania warunków.
if (self.aivar[AIV_ArenaFight] == AF_AFTER)
   {
      self.aivar[AIV_ArenaFight] = AF_AFTER_PLUS_DAMAGE;//Jak widać wyżej jeżeli ==2 to =3
   };
 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.


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