Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Nowe zaklęcie


Ubytek

Rekomendowane odpowiedzi

Opublikowano

Pokażę Wam w tym tucie cały proces tworzenia nowego zaklęcia.
Wielu osobom przyda się ten tut w celu ciekawszej rozgrywki.
A więc przechodzimy do katalogu "\Spells" i zaczynamy pisać skrypt naszego zaklęcia, a wygląda on tak:

// ************
// SPL_BlueFlame
// ************

const int SPL_Cost_BlueFlame        = 10;
const int SPL_Damage_BlueFlame     = 40;


INSTANCE Spell_BlueFlame (C_Spell_Proto)
{
    time_per_mana            = 0;
    damage_per_level        = SPL_Damage_BlueFlame;
    damageType                = DAM_MAGIC;
};

func int Spell_Logic_BlueFlame (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_BlueFlame)
    {    
        return SPL_SENDCAST;
    }
    else //nicht genug Mana
    {
        return SPL_SENDSTOP;
    };
};

func void Spell_Cast_BlueFlame()
{
    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_BlueFlame;
    };
    
    self.aivar[AIV_SelectSpell] += 1;
};

Teraz ten skrypt musimy przyłączyć do pliku "Spell_ProcessMana.d" poprzez dopisanie:

if (activeSpell == SPL_BlueFlame        )    {   return   Spell_Logic_BlueFlame   (manaInvested);    };

Przechodzimy do pliku "Constants.d" i przechodzimy do linijki od 510. Znajdziemy tam numery ID wszystkich zaklęć, w związku z tym
będziemy musieli dopisać ID naszego zaklęcia. Szukamy wolny miejsce i wpisujemy:

const int SPL_BlueFlame                = 91;

Następnie przechodzimy do linijki w przedziale od 654 do 790 i nadajemy efekt wizualny naszemu zaklęciu wpisując we właściwe miejsce..

Dla przykładu może to być deszcz ognia:

"InstantFirerain",            // 91    SPL_BlueFlame

Wszystkie efekty zaklęć znajdziemy w pliku "PfxInstMagic.d".

Przejdźmy do animacji lotu zaklęcia.
Możemy wykorzystać dla przykładu efekt ognistej strzały:

"FBT",                  // 91    SPL_BlueFlame

Ostatnią rzeczą do zrobienia będzie dopisanie do "Text.d" nazwę naszego zaklęcia w grze:

const string NAME_SPL_BlueFlame                = "Nasze_nowe_zaklęcie";

oraz dla wyeliminowania błędu nazwy podczas gry, w funkcji "txt_spells" dopisujemy ten kod:

    "Nasze_nowe_zaklęcie",        // 91    SPL_BlueFlame

1375884335-U390809.png

Blue Member

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...