Obrażenia zaklęć + mana 3079 4

O temacie

Autor czuks

Zaczęty 24.01.2015 roku

Wyświetleń 3079

Odpowiedzi 4

czuks

czuks

Użytkownicy
posty3
Profesjabrak
  • Użytkownicy
Witam. Mój 1 wątek, właściwie konto specjalnie dla niego założone, przepraszam jeśli narobię modom roboty.

Czytałem wszystkie samouczki które znalazłem o takiej tematyce i googlowałem długo i namiętnie, ale po prostu nie umiem dostatecznie skryptów.

Chciałbym żeby ułamek many max był dodawany do obrażeń (zrobione pomyślnie przez dodanie mana max/5 do dam_index_magic + odświeżanie w starcie) potem, żeby dam_index_magic był dodawany (tuning zostawiam na później) do obrażeń zadawanych przez zaklęcia. Jedyne co przyszło mi do głowy (ze względu na ograniczoną głowę) to dodanie do skryptów spell zmiennych w sposób:
var int damage;

INSTANCE Spell_Zap (C_Spell_Proto)
{
time_per_mana = 0;
damageType = DAM_MAGIC;
damage = (30 + (self.damage [DAM_INDEX_MAGIC]));
damage_per_level = damage;
};

Po długich i namiętnych testach na różne sposoby, także z dodaniem linijki tutaj:
func int Spell_Logic_Zap(var int manaInvested)
{
damage = (30 + (self.damage [DAM_INDEX_MAGIC]));

if (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
return SPL_SENDCAST;
}
else if (self.attribute[ATR_MANA] >= SPL_Cost_Zap)
{
return SPL_SENDCAST;
}
else //nicht genug Mana
{
return SPL_SENDSTOP;
};
obrażenia albo się dodają albo nie (częściej nie) bądź w najlepszym wypadku ustawiają się poprawnie od 2 strzału.
Będzie ktoś uprzejmy powiedzieć mi czy to jest możliwe na silniku gothica (zakładam że jest) i jak to należy zrobić poprawnie?
 

carelion

carelion

RaveN Studio
Moete Kita Zo!
posty153
Propsy73
Profesjabrak
  • RaveN Studio
  • Moete Kita Zo!

carelion
RaveN Studio

Obrażenia zaklęć + mana
#1 2015-01-24, 14:54(Ostatnia zmiana: 2015-01-24, 15:26)
Nie wiem czy bez Ikarusa możliwa jest zmiana wartości pól w klasie C_Spell, jeśli jednak masz Ikarusa musiałbyś  zrobić zmienną C_Spell i przypisać do niej czar, a później edytować damage_per_level w tego czaru w Spell_Logic_Zap  :D

Down: Nie pomyślałem o tym w ten sposób :D
 

Bogdan Zwei

Bogdan Zwei

Użytkownicy
Wulgarny skurwiel pierdolony.
posty1864
Propsy541
Profesjabrak
  • Użytkownicy
  • Wulgarny skurwiel pierdolony.
Polecam dodać skrypt dodatkowych obrażeń do C_CanNpcCollideWithSpell.d
Tyle, że jest problem (który łatwo ominąć), który aktywuje efekt więcej niż raz. Starczy dodać zmienną, która będzie dodawana (+1), a chciany efekt będzie wywoływany, jak zmienna będzie wynosiła 1. Spell_ProcessMana i Spell_ProcessMana_Release będą minimalizowały zmienną do 0. Teraz starczy tylko dodać warunek, jeśli wybrany czar to czar, który ma zadawać dodatkowe obrażenia i dodać skalę obrażeń dodatkowych poprzez B_MagicHurtNpc(other, self, dmg);.
 
: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.

czuks

czuks

Użytkownicy
posty3
Profesjabrak
  • Użytkownicy

czuks

Obrażenia zaklęć + mana
#3 2015-01-24, 15:57(Ostatnia zmiana: 2015-01-25, 15:16)
Polecam dodać skrypt dodatkowych obrażeń do C_CanNpcCollideWithSpell.d
Tyle, że jest problem (który łatwo ominąć), który aktywuje efekt więcej niż raz. Starczy dodać zmienną, która będzie dodawana (+1), a chciany efekt będzie wywoływany, jak zmienna będzie wynosiła 1. Spell_ProcessMana i Spell_ProcessMana_Release będą minimalizowały zmienną do 0. Teraz starczy tylko dodać warunek, jeśli wybrany czar to czar, który ma zadawać dodatkowe obrażenia i dodać skalę obrażeń dodatkowych poprzez B_MagicHurtNpc(other, self, dmg);.

Brzmi fantastycznie! :lol: Nie mam pojęcia jak to zrobić.  :facepalm:
Jeżeli nie jest to dużo roboty mógłby mi ktoś napisać ten kodzik/ wytłumaczyć krok po kroku jak to zrobić?
 

czuks

czuks

Użytkownicy
posty3
Profesjabrak
  • Użytkownicy
Hm wpadłem na pliczkek b_magichurtnpc i zedytowałem linijke:
Npc_ChangeAttribute (oth, ATR_HITPOINTS, -(damage + (self.damage [DAM_INDEX_MAGIC])));
i wydaje się że działa tak jak powinno. Czy są z tym sposobem jakieś problemy których nie zdążyłem zauważyć?
 


0 użytkowników i 2 gości przegląda ten wątek.
0 użytkowników
Do góry