Informatikai Barkács Fórum

WORLD OF WARCRAFT SZERVER => Core/Mag => A témát indította: biggie0630 Dátum 2013 augusztus 15, 01:48:08 DÉLUTÁN

Cím: Spell nem található sehol mégis castolható!
Írta: biggie0630 Dátum 2013 augusztus 15, 01:48:08 DÉLUTÁN
Sziasztok!

Nekem a következő kérdésem lenne, hogy van egy bizonyos spell pl: a 69922 -es ez a Tempering the Blade q-egyik spellje és egyszerűen sehol sem találom a Trinitycore forráskódjában de mégis castolható....
Azért lenne fontos mert javítani szeretném.
Persze nem csak ez az egy spell ami nincs csak most példának okáért írtam.
Valakinek van valami ötlete, hogy hol találom meg pl ezt vagy azokat a spelleket amik nincsenek benne a forrásban de mégis mennek?
Számomra ez érthetetlen O.O
Cím: Re:Spell nem található sehol mégis castolható!
Írta: zerus Dátum 2013 augusztus 15, 03:06:08 DÉLUTÁN
A dbc-ben keresgélj, mert onnan veszi az összes spell-t.
A forráskódban csak "felüldefiniálja" őket, ha szükséges.
Cím: Re:Spell nem található sehol mégis castolható!
Írta: biggie0630 Dátum 2013 augusztus 15, 03:18:36 DÉLUTÁN
És ott hogyan? Le tudnád írni esetleg, hogy milyen progival?
Cím: Re:Spell nem található sehol mégis castolható!
Írta: biggie0630 Dátum 2013 augusztus 15, 11:05:51 DÉLUTÁN
Még ide kapcsolódik, hogy azt hogyan lehet beállítani, hogy az adott spellt csak akkor castolja, hogy ha a szükséges NPC is ott van.
Annyit már sikerült elérnem a conditions táblával, hogy csak ha az NPC hez közel vagyok akkor lesz a q compelet de sajnos ha távolabb vagyok akkor is el tudja lőni a spellt és elveszik a q-hoz szükséges item...
Cím: Re:Spell nem található sehol mégis castolható!
Írta: biggie0630 Dátum 2013 augusztus 17, 02:52:16 DÉLELŐTT
Senki sem tudja vagy nem szeretne válaszolni?
Érdemleges választ eddig kérdéseimre még nem kaptam egyre sem ill. talám egyre amikor repackot kerestem milyen szép mikor keverjük anyanyelvünket az angol nyelvvel nem igaz?
Mintha Leonardo holnaptól likőrt gyártana vagy Tesla a fizika helyett kenyérkelesztéssel foglalkozott volna de hál isten ezt nem tette!
Cím: Re:Spell nem található sehol mégis castolható!
Írta: NevemSenki Dátum 2013 augusztus 17, 07:44:31 DÉLELŐTT
Én segítenék neked. Én Script-ekkel még nem nagyon foglalkoztam. 12 órát dolgozom naponta, ha van szabadidőm akkor is a webement próbálom csinálgatni. Ha netán a Kliens-ben kéne megnézni valamit akkor segítek. De látom a Spell megvan, szóval efelől nincs gond.
Nincsen egy hasonló Quest ehhez? Azt összehasonlítva meg tudnád oldani a dolgot....
Ha lesz időm, segítek neked!!

Üdv.: Senki
Cím: Re:Spell nem található sehol mégis castolható!
Írta: kagebunshin Dátum 2013 augusztus 17, 12:43:54 DÉLUTÁN
Sajnos mostanában nem áll módomban olyan részletesen utánajárni, átgondolni és tesztelni az ilyen jellegű dolgokat, ezért csak egy kis elméleti segítséget tudok adni.

Egy friss 3.3.5-ös trinity-t szedtem le és annak a forráskódját vizsgáltam, ha más emut használsz és amiatt nem lenne megvalósítható amit javasolok, akkor írd meg mit használsz és belenézek abba is.

Ha jól értem a célt. Van egy spell, amit egy adott npc-hez közel kell használni és ha használod a nálad lévő quest item-et el kell hogy vegye.

Én azzal próbálkoznék, hogy maga a quest item legyen "use"-olható és hozzárendelnék egy item script-et.

Idézif (player->FindNearestCreature(26248, 15))
    return false;

Kis átalakítással ezt egy meglévő item script-böl másoltam. Ha jól sejtem npc entry-t vár, nem guid-t. Második paramétere pedig a távolság.

Ezután pedig elcastoltatod a megfelelő spell-t. ha jól tudom lehet ilyesmit.

Idézif (const SpellInfo* spellInfo = sSpellMgr->GetSpellInfo(69922))
                    Spell::SendCastResult(player, spellInfo, 1, SPELL_FAILED_NOT_ON_GROUND);

Talán ezzel, de csak tipp.

Mivel a spell használatával a questitem-et el is veszi ezért azzal külön nem kell foglalkozni.
És mivel itt elvégzed az npc közelség vizsgálatot a conditions táblába úgy gondolom felesleges is külön vizsgálni.

Ez persze lehet, hogy nem ilyen egyszerű. Elképzelhető, hogy magát az item-et nem is lehet "use"-olhatóvá tenni vagy nem lehet spell-t castolni item script-böl. Rengeteg probléma lehet vele, de ha másnak nincs jobb tippje akkor ezt tudom javasolni.
Cím: Re:Spell nem található sehol mégis castolható!
Írta: biggie0630 Dátum 2013 augusztus 19, 07:24:01 DÉLUTÁN
Köszönöm ezzel sikerült megoldanom!

class item_quel_delar_tempering : public ItemScript
{
public:
    item_quel_delar_tempering() : ItemScript("item_quel_delar_tempering") { }

    bool OnUse(Player* player, Item* item, SpellCastTargets const & /*targets*/) OVERRIDE
    {
        if (player->FindNearestCreature(37094, 5))
            return false;
        else
        {
            player->SendEquipError(EQUIP_ERR_OUT_OF_RANGE, item, NULL);
            return true;
        }
    }

};



Most már csak annyit szeretnék, hogy ne "Out of Ranget" íron ki hanem egy tetszőleges szöveget.
Erre van valakinek valamilyen tippje?