Jump to content
  • Announcements

    • Xmat

      Pravidlo pro postování v TTT

      Do sekce Tipy, triky, tutoriály nepatří žádné dotazy.   Postujte sem vaše návody, tipy a různé další věci jež uznáte za vhodné sdělit zdejšímu osazenstvu, ale veškeré dotazy směřujte do sekce Všeobecná diskuse.
    • Replik

      Seznam návodů a důležitých témat v této sekci

      Pro lepší přehlednost jsem vytvořil tento seznam, který vás, méně zkušené, lépe provede touto sekcí. Věřím, že zde najdete, co hledáte. Vypsané jsou návody, které jsou oficiálně uznané jako návody. Běžné diskuze, které neposkytují postupy a rady zvěřejněny nejsou.   Instalace vlastního MaNGOS Serveru Díky těmto návodům budete (měli by jste být) schopni vytvořit a následně spustit váš vlastní server. Nastavení je pro verze s i bez datadisku.   Instalace MaNGOS Serveru (bez datadisku TBC) - Autor Benny Instalace MaNGOS Serveru (s datadiskem TBC) - Autor Malfik Instalace MaNGOS Serveru v prostředí Linux - Autor charlie Instalace MaNGOS Serveru v prostředí Linux - Autor kupkoid   Chyby a jejich řešení při přihlašování k serveru - Autor Cybe   Zálohování uživatelských dat   Dávkový soubor (BAT soubor) pro vytvoření SQL záloh - Autor Replik   Kompilování - tvoření vlastních release (revizí)   Tvorba kompilací pro Win32 (MangoScript) - Autor bLuma   Ostatní - těžko zařaditelné, ale neznamená to, že nejsou dobré   VIP Systém - Autor charlie Tvorba Webových stránek pro MaNGOS - Autor zahuba Tvorba teleportačních NPC (MangoScript) - Autor Replik Registrační web (původně předělaná SPORA) Funkční pro Antrix i MaNGOS - Autor Replik Nastavení a spuštění Minimanager pro MaNGOS - Autor BlackMartin Nastavení MaNGOS Website - Autor Artorius   Samozřejmě jsou zde i jiné návody, ale tyto jsou nejvíce používané, proto věřím, že vám budou nápomocné. Tuto sekci budeme upravovat podle potřeby. Pokud by jste něco nenašli nebo si nevěděli rady, hledejte na fóru a teprve potom založte vlastní topik. Pokud nějaký autor vytvoří kvalitní návod a chtěl by ho zveřejnit i v tomto seznamu, doporučuji, aby mi napsal zprávu skrze PM.   Díky a přeji hezký den na WoWResource   Replik
    • Aristo

      Příspěvky tam, kde nemají co dělat

      Dodržujte zákaz přispívání do topiků s repaky pokud si to zakladatelé nepřejí!! Opakované psaní příspěvků bude trestáno warnem.
    • Aristo

      Používání spoilerů

      Poslední dobou má většina uživatelů fora zvláštní nutkání postovat extrémně dlouhé texty nebo kódy, které zabírají v nejedenom případu i 80% obsahu celé stránky a hodně tak zvedají nepřehlednost v topiku. Chtěl bych všechny uživatele požádat, aby při postování citací, jakýchkoliv kódů, errorů, atp... delších než 30 řádků používali funkci spoileru.   Funkci vyvoláte příkazem [spoiler] text [/spoiler]   Ukázka:  
Sign in to follow this  
Ags

Půjčovna Mountů Problém

Recommended Posts

Mám problém ze scriptem

/*************************

* Cäsh © 2010 *

* Edited by Brseker 2011 *

* for wowresource.eu *

**************************/

 

#include "ScriptPCH.h"

 

#define MSG1 "Jsi v combatu. Vrat se pozdeji!"

#define MSG2 700044

#define MSG3 "Opravdu si chces pujcit tohoto mounta?"

#define MSG4 "Nemas dostatek penez!"

#define MSG5 "Nemas spell Cold Weather Flying."

#define PRICE 200000 // Default: 200000(cooper) => 20G

 

class custom_npc_mounts : public CreatureScript

{

public:

custom_npc_mounts() : CreatureScript("custom_npc_mounts") { }

 

bool OnGossipHello(Player *pPlayer, Creature *pCreature)

{

if (pPlayer->isInCombat())

{

pPlayer->CLOSE_GOSSIP_MENU();

pCreature->MonsterWhisper(MSG1, pPlayer->GetGUID());

return true;

}

 

pPlayer->SEND_GOSSIP_MENU(MSG2, pCreature->GetGUID());

 

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Red Riding Nether Ray", GOSSIP_SENDER_MAIN, 7001, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Swift Freen Wind Rider", GOSSIP_SENDER_MAIN, 7002, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Ashes of Al'ar", GOSSIP_SENDER_MAIN, 7003, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Green Proto-Drake", GOSSIP_SENDER_MAIN, 7004, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Mimiron's Head", GOSSIP_SENDER_MAIN, 7005, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Turbo-Charged Flying Machine", GOSSIP_SENDER_MAIN, 7006, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "X-51 Nether-Rocket X-TREME", GOSSIP_SENDER_MAIN, 7007, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Flying Broom", GOSSIP_SENDER_MAIN, 7008, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Deadly Gladiator's Frost Wyrm", GOSSIP_SENDER_MAIN, 7009, MSG3, PRICE, false);

pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());

 

return true;

}

 

bool OnGossipSelect(Player *pPlayer, Creature *pCreature, uint32 sender, uint32 action)

{

if (sender != GOSSIP_SENDER_MAIN)

return true;

 

if (pPlayer->isInCombat())

{

pPlayer->CLOSE_GOSSIP_MENU();

pCreature->MonsterWhisper(MSG1, pPlayer->GetGUID());

return true;

}

 

switch(action)

{

case 7001: //Red Riding Nether Ray

AddAuraMount(pPlayer, pCreature, 39800);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7002: //Swift Green Wind Rider

AddAuraMount(pPlayer, pCreature, 32295);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7003: //Ashes of Al'ar

AddAuraMount(pPlayer, pCreature, 40192);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7004: //Green Proto-Drake

AddAuraMount(pPlayer, pCreature, 61294);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7005: //Mimiron's Head

AddAuraMount(pPlayer, pCreature, 63796);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7006: //Turbo-Charged Flying Machine

AddAuraMount(pPlayer, pCreature, 44151);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7007: //X-51 Nether-Rocket X-TREME

AddAuraMount(pPlayer, pCreature, 46199);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7008: //Flying Broom

AddAuraMount(pPlayer, pCreature, 42667);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7009: //Deadly Gladiator's Frost Wyrm

AddAuraMount(pPlayer, pCreature, 64927);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

default:

return true;

}

 

return true;

}

 

private:

void AddAuraMount(Player *pPlayer, Creature *pCreature, uint32 mount)

{

if (pPlayer->GetMoney() >= PRICE)

{

if(pPlayer->HasSpell(54197))

{

if(pPlayer->IsMounted())

{

pPlayer->Unmount();

pPlayer->RemoveAurasByType(SPELL_AURA_MOUNTED);

}

 

pPlayer->ModifyMoney(-PRICE);

pCreature->AddAura(mount, pPlayer);

}

else

pCreature->MonsterWhisper(MSG5, pPlayer->GetGUID());

}

else

pCreature->MonsterWhisper(MSG4, pPlayer->GetGUID());

}

};

 

void AddSC_custom_npc_mounts()

{

new custom_npc_mounts();

}

 

je v něm buď něaká chyba nebo to mám špatně ve script loaderu, mám to tam následovně

 

//custom

AddSC_custom_npc_mounts();

 

//examples

void AddSC_example_creature();

void AddSC_example_escort();

void AddSC_example_gossip_codebox();

void AddSC_example_misc();

void AddSC_example_commandscript();

 

// spells

void AddSC_deathknight_spell_scripts();

void AddSC_druid_spell_scripts();

void AddSC_generic_spell_scripts();

void AddSC_hunter_spell_scripts();

void AddSC_mage_spell_scripts();

void AddSC_paladin_spell_scripts();

void AddSC_priest_spell_scripts();

void AddSC_rogue_spell_scripts();

void AddSC_shaman_spell_scripts();

void AddSC_warlock_spell_scripts();

void AddSC_warrior_spell_scripts();

void AddSC_quest_spell_scripts();

void AddSC_item_spell_scripts();

void AddSC_example_spell_scripts();

 

void AddSC_SmartSCripts();

 

//Commands

void AddSC_account_commandscript();

void AddSC_achievement_commandscript();

void AddSC_debug_commandscript();

void AddSC_event_commandscript();

void AddSC_gm_commandscript();

void AddSC_go_commandscript();

void AddSC_gobject_commandscript();

void AddSC_honor_commandscript();

void AddSC_learn_commandscript();

void AddSC_modify_commandscript();

void AddSC_npc_commandscript();

void AddSC_quest_commandscript();

void AddSC_reload_commandscript();

void AddSC_tele_commandscript();

void AddSC_titles_commandscript();

void AddSC_wp_commandscript();

 

#ifdef SCRIPTS

//world

void AddSC_custom_npc_mounts();

void AddSC_areatrigger_scripts();

void AddSC_boss_emeriss();

void AddSC_boss_taerar();

void AddSC_boss_ysondre();

void AddSC_generic_creature();

void AddSC_go_scripts();

void AddSC_guards();

void AddSC_item_scripts();

void AddSC_npc_professions();

void AddSC_npc_innkeeper();

void AddSC_npcs_special();

void AddSC_npc_taxi();

void AddSC_achievement_scripts();

 

samozřejmě není celý jenom kousek, soubor se scriptem mám uložený v /src/server/scripts/custom/custom_npc_mounts.cpp

prosím o radu už nevím

Share this post


Link to post
Share on other sites

Vymaz to, co sis pridal do ScriptLoader.cpp, potom v nem udelej nasledujici zmeny (radky s mezerou na zacatku hledas, kde je + na zacatku pridavas):

 #ifdef SCRIPTS
/* This is where custom scripts' loading functions should be declared. */
+void AddSC_custom_npc_mounts();
#endif

void AddCustomScripts()
{
#ifdef SCRIPTS
    /* This is where custom scripts should be added. */
+    AddSC_custom_npc_mounts();
#endif
}

 

Samozrejme musis mit ten soubor taky zapsany v src/server/scripts/custom/CMakeLists.txt

  • Upvote 1

Share this post


Link to post
Share on other sites

a do cmake listu to mam zapsat jak? takle

set(scripts_STAT_SRCS

${scripts_STAT_SRCS}

../custom/custom_npc_mounts.cpp

)

 

message(" -> Prepared: Custom")

 

Edited by Ags

Share this post


Link to post
Share on other sites

Sry za double post ale potřeboval bych ten script trochu upravit zkoušel jsem to ale nešlo mi to potřeboval bych udělat aby tam byly mounti pozemní a tudíž nebyl potřeba spell cold weather flying. Mounty bych zvlád vyměnit ale jak udělat aby nebyl potřeba ten spell ještě teď zkouším jestli když tam dám pozemního mounta tak jestli to bude chtít taky ten spell. Tak to chce i z pozemním mountem ten spell.

Edited by Ags

Share this post


Link to post
Share on other sites

Nezkoušel jsem to, ale myslim že by to mělo fungovat.

 

BTW: Můžu použít ten script? ;-) Se mi celkem líbí ;-)

 

Script:

 

 

 

 

/*************************

* Cäsh © 2010 *

* Edited by Brseker 2011 *

* for wowresource.eu *

**************************/

 

#include "ScriptPCH.h"

 

#define MSG1 "Jsi v combatu. Vrat se pozdeji!"

#define MSG2 700044

#define MSG3 "Opravdu si chces pujcit tohoto mounta?"

#define MSG4 "Nemas dostatek penez!"

#define PRICE 200000 // Default: 200000(cooper) => 20G

 

class custom_npc_mounts : public CreatureScript

{

public:

custom_npc_mounts() : CreatureScript("custom_npc_mounts") { }

 

bool OnGossipHello(Player *pPlayer, Creature *pCreature)

{

if (pPlayer->isInCombat())

{

pPlayer->CLOSE_GOSSIP_MENU();

pCreature->MonsterWhisper(MSG1, pPlayer->GetGUID());

return true;

}

 

pPlayer->SEND_GOSSIP_MENU(MSG2, pCreature->GetGUID());

 

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Red Riding Nether Ray", GOSSIP_SENDER_MAIN, 7001, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Swift Freen Wind Rider", GOSSIP_SENDER_MAIN, 7002, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Ashes of Al'ar", GOSSIP_SENDER_MAIN, 7003, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Green Proto-Drake", GOSSIP_SENDER_MAIN, 7004, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Mimiron's Head", GOSSIP_SENDER_MAIN, 7005, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Turbo-Charged Flying Machine", GOSSIP_SENDER_MAIN, 7006, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "X-51 Nether-Rocket X-TREME", GOSSIP_SENDER_MAIN, 7007, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Flying Broom", GOSSIP_SENDER_MAIN, 7008, MSG3, PRICE, false);

pPlayer->ADD_GOSSIP_ITEM_EXTENDED(5, "Deadly Gladiator's Frost Wyrm", GOSSIP_SENDER_MAIN, 7009, MSG3, PRICE, false);

pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pCreature->GetGUID());

 

return true;

}

 

bool OnGossipSelect(Player *pPlayer, Creature *pCreature, uint32 sender, uint32 action)

{

if (sender != GOSSIP_SENDER_MAIN)

return true;

 

if (pPlayer->isInCombat())

{

pPlayer->CLOSE_GOSSIP_MENU();

pCreature->MonsterWhisper(MSG1, pPlayer->GetGUID());

return true;

}

 

switch(action)

{

case 7001: //Red Riding Nether Ray

AddAuraMount(pPlayer, pCreature, 39800);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7002: //Swift Green Wind Rider

AddAuraMount(pPlayer, pCreature, 32295);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7003: //Ashes of Al'ar

AddAuraMount(pPlayer, pCreature, 40192);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7004: //Green Proto-Drake

AddAuraMount(pPlayer, pCreature, 61294);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7005: //Mimiron's Head

AddAuraMount(pPlayer, pCreature, 63796);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7006: //Turbo-Charged Flying Machine

AddAuraMount(pPlayer, pCreature, 44151);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7007: //X-51 Nether-Rocket X-TREME

AddAuraMount(pPlayer, pCreature, 46199);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7008: //Flying Broom

AddAuraMount(pPlayer, pCreature, 42667);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

case 7009: //Deadly Gladiator's Frost Wyrm

AddAuraMount(pPlayer, pCreature, 64927);

pPlayer->CLOSE_GOSSIP_MENU();

break;

 

default:

return true;

}

 

return true;

}

 

private:

void AddAuraMount(Player *pPlayer, Creature *pCreature, uint32 mount)

{

if (pPlayer->GetMoney() >= PRICE)

{

if(pPlayer->IsMounted())

{

pPlayer->Unmount();

pPlayer->RemoveAurasByType(SPELL_AURA_MOUNTED);

}

 

pPlayer->ModifyMoney(-PRICE);

pCreature->AddAura(mount, pPlayer);

}

else

pCreature->MonsterWhisper(MSG4, pPlayer->GetGUID());

}

};

 

void AddSC_custom_npc_mounts()

{

new custom_npc_mounts();

}

 

 

 

K čemu došlo:

 

1.

 

 

- #define MSG5 "Nemas spell Cold Weather Flying."

 

 

 

2.

 

 

private:

void AddAuraMount(Player *pPlayer, Creature *pCreature, uint32 mount)

{

if (pPlayer->GetMoney() >= PRICE)

{

- if(pPlayer->HasSpell(54197))

- {

if(pPlayer->IsMounted())

{

pPlayer->Unmount();

pPlayer->RemoveAurasByType(SPELL_AURA_MOUNTED);

}

 

pPlayer->ModifyMoney(-PRICE);

pCreature->AddAura(mount, pPlayer);

- }

- else

pCreature->MonsterWhisper(MSG5, pPlayer->GetGUID());

}

else

pCreature->MonsterWhisper(MSG4, pPlayer->GetGUID());

}

};

 

void AddSC_custom_npc_mounts()

{

new custom_npc_mounts();

}

 

 

Edited by AntReX
  • Upvote 1

Share this post


Link to post
Share on other sites

Dík, mluvím sice za někoho ale urcite to pouzit muzes proc by to tu jinak bylo ale radil bych ti nevydavat za svoje.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×