Gdzie wpisać jaki efekt ma wywoływać runa? 8803 21

O temacie

Autor skszacik

Zaczęty 8.07.2011 roku

Wyświetleń 8803

Odpowiedzi 21

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
Siemka. Chcę sobie dodać do gry nową runę ale nie wiem gdzie wpisać jaki ma być to efekt ?
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
W pliku It_Runen do skryptu runy trzeba dopisać
description = NAME_SPL_LIGHT;Gdzie SPL_LIGHT można podmienić dowolnym zaklęciem (najłatwiej znaleźć w Text.d)
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
Sorki ale mi chodzi o to że chcę zrobić nową runę z nowym spellem czyli mam 2 runy, np: Duża burza Ognista i Szał Innosa (Burza jest Ognista a Szał Czerwony [Kolor Burzy czerwony]) oczywiście Spellfx"y Czerwone juz mam tylko muszę wklepać je ;)
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
Jest to zdefiniowane w pliku Constants.d. Zadeklaruj tam nazwę zaklęcia (od linijki 510 w miejscu gdzie jest SPL_Reserved_numer) i zrób nowy skrypt w folderze Spells (AI->Magic). Najlepiej skopiuj już istniejący i zmień nazwę czaru na swoją wszędzie gdzie to potrzebne. Potem musisz dopisać linijkę w Spell_ProcessMana.d, a na końcu znów w Constants.d (tym razem od linijki 654) napisz w cudzysłowie nazwę spellFx twojego zaklęcia. Jeśli wszystko dobrze napisałem i niczego nie pominąłem powinno zadziałać.
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
Tylko że tam jest tak:

"Fear",               // 80   SPL_Plague
   "Swarm",            // 81   SPL_Swarm
   "Greententacle",      // 82   SPL_GreenTentacle
   "Firerain",            // 83   SPL_Earthquake
   "SummonGuardian",      // 84   SPL_SummonGuardian
   "Energyball",         // 85   SPL_Energyball
.....

czyli jesli chce zrobic te efekty to musi byc sama nazwa? bez Spellfx?

czyli "Innosrage",               // 100   SPL_Innosrage

tak?

bo spellfxy mam na SpellFX_Innosrage

Edit: Wyświetla mi błąd U:PAR Expected ',' w linijce 372

to co jest w Linijce 372 w Constants (nie wiem gdzie jeszcze powinienem sprawdzic bo w innych miejscach nie grzebałem a w innych co grzebałem nie ma tyle linijek.

const int GIL_UNDEADORC = 61 ;
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
Powinno być bez SpellFX czyli tak jak jest zrobione w innych czarach.
Edit:
Dopisz jeszcze nazwy czarów w Text.d w odpowiednich miejscach
Edit #2:
Nie rób zaklęcia o numerze 100 tylko podmień jedno z nieużywanych, bo o ile się nie mylę nie można wychodzić powyżej 99 czarów. (100 to MAX_SPELL) Czyli wychodzi na to, ze można zrobić jeszcze 19 czarów.
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
Runa Dziala tylko 1 Problem jest. Nie widać efektów które powinna wywoływać.

jakby co to tu są podane jak mam zrobione spellfxy:

INSTANCE spellFX_IceRain(CFx_Base_Proto)
{

      visname_S = "MFX_Icerain_INIT";
      emtrjmode_s = "FIXED";
emTrjOriginNode = "ZS_RIGHTHAND";
      emtrjloopmode_s = "NONE";

      emFXInvestOrigin_S = "spellFX_IceRAin_INVESTGLOW";
};

INSTANCE spellFX_IceRain_KEY_CAST (C_ParticleFXEmitKey)
{
emCreateFXID = "spellFX_IceRain_RAIN";
pfx_ppsIsLoopingChg = 1;
};

INSTANCE spellFX_IceRain_RAIN (CFx_Base_Proto)
{
visname_S = "MFX_IceRain_Rain";
emtrjmode_s = "FIXED";
emTrjOriginNode = "ZS_RIGHTHAND";
emActionCollDyn_S = "CREATEONCE";
emFXCollDyn_S     = "spellFX_ChargeFireball_COLLIDEDYNFX";
emFXCollDynPerc_S     = "vob_magicburn";
      emFXCollDynAlign_S = "COLLISIONNORMAL";
      emCheckCollision = 1;
      LightPresetName = "CATACLYSM";
      sfxid = "MFX_Firerain_rain";
      sfxisambient = 1;
};


INSTANCE spellFX_IceRain_SUB(CFx_Base_Proto) // vorrübergehend, bis er hardcodiert nicht mehr gesucht wird
{
      visname_S = "";
      emtrjmode_s = "FIXED";
emTrjOriginNode = "BIP01 HEAD";
};


INSTANCE spellFX_IceRain_INVESTGLOW (CFx_Base_Proto)
{
visname_S = "MFX_IceRain_INVESTGLOW";
emTrjOriginNode = "BIP01";
emFXCreatedOwnTrj = 1;
emtrjmode_s = "FIXED";
lightPresetName = "REDAMBIENCE";
sfxid = "MFX_Firerain_INVEST";
sfxisambient = 1;
emFXCreate_S = "FX_EarthQuake";
};


Wszystkie tekstury z FireRain w nazwie skopiowałem, zmienilem kolor i nazwę na IceRain  wiec nie wiem co jest
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
Zrobiony przeze mnie testowo czar działa jak należy. Pamiętaj że SpellFX odnosi się do PFXa, więc go też musisz zrobić (w tym właśnie może być problem).
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
Tylko problem jest. W pfxinst.d nie ma nic o deszczu ognia...

Edit!: Znalazłem w tym z Magic ;d  Głupota moja nie zna granic :facepalm:

Edit2: Tylko jeszcze chciałem zrobić żeby zamrażał ludzi którzy są w zasięgu (coś jak ognisty deszcz tylko zamrażający) a nie zamraża ani nie podpala. Coś spierdzieliłem?
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
Podpalenie definiuje się w SpellFX
emFXCollDynPerc_S   = "VOB_MAGICBURN";Z zamrożeniem to zupełnie inna sprawa, spróbuj wstawić do skryptu czaru tą linijkę (na górze pliku, w okolicy kosztu many i obrażeń)
const int SPL_TIME_FREEZE = 19;Może zadziałać, ale niczego nie gwarantuję.
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
po wklepaniu tego co podałeś (na zamrażanie) wyskakuje błąd. Dlatego że nie jest to nigdzie użyte. wgl nie zadaje Obrażeń. A ja obrażeń nie definiowałem nigdzie, wziąłem wszystko jak z deszczu ognia. Powinno zadawac DMG a nie zadaje
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
U mnie wszystko działało jak należy. Podaj skrypt czaru to spróbuję pomóc.
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
// ************
// SPL_IceRain
// ************

const int SPL_Cost_IceRain = 150;
const int SPL_Damage_IceRain = 500;


INSTANCE Spell_IceRain (C_Spell_Proto)
{
time_per_mana = 0;
damage_per_level = SPL_Damage_IceRain;
damageType = DAM_MAGIC;
targetCollectAlgo = TARGET_COLLECT_NONE;
};

func int Spell_Logic_IceRain (var int manaInvested)
{
if (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
return SPL_SENDCAST;
}
else if (self.attribute[ATR_MANA] >= SPL_Cost_IceRain)
{
return SPL_SENDCAST;

}
else //nicht genug Mana
{
return SPL_SENDSTOP;
};
};

func void Spell_Cast_IceRain()
{
if (Npc_GetActiveSpellIsScroll(self))
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
}
else
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_IceRain;
};

self.aivar[AIV_SelectSpell] += 1;
};


dla jaj pobiegałem po Khorinis z tym czarem i podpala tylko wtedy jak jesteśmy bardzo blisko osoby jakiejś. "Blisko" czyli 1cm od siebie xD i tylko 1 osobę podpala
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
Na zwiększenie zasięgu działania powinna pomóc ta linijka:
targetCollectRange = 10000; Wklej ją w instancji i zobacz czy coś da. Ewentualnie pokombinuj z wpisaniem do niej innej odległości (pamiętaj że jest podawana w centymetrach).
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
INSTANCE Spell_IceRain (C_Spell_Proto)
{
        time_per_mana                   = 0;
        damage_per_level                = SPL_Damage_IceRain;                                                  
        damageType                              = DAM_MAGIC;                                                                            
        targetCollectAlgo               = TARGET_COLLECT_NONE;
};
Tutaj.
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
a no racja nie zauważyłem. Niestety to nic nie pomogło. Dałem nawet na 1mln i nic nie pomogło. dalej musze stac 1cm obok luda.

Może byś umieścił wszystko z tej twojej testowej runy ja porównam z moimi i może znajdę problem?
 

Ezzam

Ezzam

Użytkownicy
posty391
Propsy367
  • Użytkownicy
Wczoraj zrobiłem zaklęcie typu pocisk i było bez problemów, ale z zaklęciem na postawie deszczu ognia mam taki sam problem jak ty :/
 

skszacik

skszacik

Użytkownicy
posty35
Propsy5
  • Użytkownicy
Dobra walić to. Zrobię parę run które działają na 1 osobę ;) przynajmniej małe urozmaicenie do moda ;) dziękuję ci za Pomoc. Leci Limit propsów ;)  

Można Close
 

Sawik

Sawik

Moderator działu
Rebel
posty4772
Propsy3197
ProfesjaNierób
  • Moderator działu
  • Rebel
isMultiEffect;
Niby już się poddałeś ale z tym pod domagetype powinno działać. (nie sprawdzałem)
 
Ż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


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