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:  
Filegreen

[Script]Teleporter na ScriptDev2

Recommended Posts

Teleporter

pro scriptdev2

Tady máme celej kód :
#include "../sc_defines.h"

bool GossipHello_teleporter(Player *player, Creature *_Creature)
{

player->ADD_GOSSIP_ITEM( 4, "Booty Bay", GOSSIP_SENDER_MAIN, 1200);
player->ADD_GOSSIP_ITEM(4, "Ratchet", GOSSIP_SENDER_MAIN, 1201);

          player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());

return true;

}

void SendDefaultMenu_teleporter(Player *player, Creature *_Creature, uint32 action)
{

// Teleport do Booty Bay
if (action == 1200)
{
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -14406,6f,419,353f, 22,3907f, 0.0f); 
} 

// Teleport do Ratchet
if (action == 1201)
{
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, -943,935f, -3715,49f, 11,8385f, 0.0f);
} 

} 

bool GossipSelect_teleporter(Player *player, Creature *_Creature, uint32 sender, uint32 action ) 
{
           if (sender == GOSSIP_SENDER_MAIN)
           SendDefaultMenu_teleporter(player, _Creature, action); 

           return true;
}

void AddSC_teleporter()

{

Script *newscript;

newscript = new Script;
newscript->Name="teleporter";
newscript->pGossipHello = &GossipHello_teleporter;
newscript->pGossipSelect = &GossipSelect_teleporter;
newscript->pItemHello = NULL;
newscript->pGOHello = NULL;
newscript->pAreaTrigger = NULL;
newscript->pItemQuestAccept = NULL;
newscript->pGOQuestAccept = NULL;
newscript->pGOChooseReward = NULL;

m_scripts[nrscripts++] = newscript;

}



A teď návod jak změnit místa. kam teleportovat :
1) Musíme změnit položky v menu :

player->ADD_GOSSIP_ITEM( 4, "Booty Bay", GOSSIP_SENDER_MAIN, 1200);
player->ADD_GOSSIP_ITEM(4, "Ratchet", GOSSIP_SENDER_MAIN, 1201);
player->ADD_GOSSIP_ITEM(4, "[b]Jméno odkazu v menu[/b]", GOSSIP_SENDER_MAIN, [b]tady musíme vždy přidat o jedno než to předešlé[/b]);



2) A teď přidáme lokaci :
// Teleport do Booty Bay

if (action == 1200)
{
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -14406,6f,419,353f, 22,3907f, 0.0f); 
} 

// Teleport do Ratchet
if (action == 1201)
{
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, -943,935f, -3715,49f, 11,8385f, 0.0f);
} 

// Teleport do Vaše lokace
if (action == [b]to poslední číslo jak sme přidali o 1[/b])
{
player->CLOSE_GOSSIP_MENU();
player->TeleportTo([b]mapa[/b], [b]x[/b]f, [b]y[/b]f, [b]z[/b]f, 0.0f);
}


To f za těma souřadnicema tam musí být

a teď to stačí uložit do sc_teleporter.cpp

Pak stačí dát k npc na konec Do sloupečku ScriptName napsat "teleporter"
Doufám že v tom nejsou chyby. Kdyby jo tak to pls někdo opravte nebo mě na to upozorněte
Návod jak dát script do emulátoru je zde

Share this post


Link to post
Share on other sites

mam lepsiho

 

#include "../sc_defines.h"
#include "../../../../game/GossipDef.h"
#include "../../../../game/Player.h"
long long int money;
int costo;

bool GossipHello_eriss(Player *player, Creature *_Creature)
{

if ( player->GetTeam() == ALLIANCE ) {
player->ADD_GOSSIP_ITEM( 3, "Portni me na Hide"	, GOSSIP_SENDER_MAIN, 1200);
player->ADD_GOSSIP_ITEM( 5, "Stormwind"			, GOSSIP_SENDER_MAIN, 1201);
player->ADD_GOSSIP_ITEM( 5, "Darnassus"			, GOSSIP_SENDER_MAIN, 1202);
player->ADD_GOSSIP_ITEM( 5, "Ironforge"			, GOSSIP_SENDER_MAIN, 1203);
player->ADD_GOSSIP_ITEM( 5, "Exodar"			, GOSSIP_SENDER_MAIN, 1204);
player->ADD_GOSSIP_ITEM( 9, "Gurubashi Arena"	, GOSSIP_SENDER_MAIN, 1210);
player->ADD_GOSSIP_ITEM( 6, "Outland"			, GOSSIP_SENDER_MAIN, 1211);
player->ADD_GOSSIP_ITEM( 6, "Shattrath"			, GOSSIP_SENDER_MAIN, 1212);
player->ADD_GOSSIP_ITEM( 6, "Botanica"			, GOSSIP_SENDER_MAIN, 1213);

}  else {

player->ADD_GOSSIP_ITEM( 3, "Portni me na Hide"	, GOSSIP_SENDER_MAIN, 1200);
player->ADD_GOSSIP_ITEM( 5, "Orgrimmar"			, GOSSIP_SENDER_MAIN, 1205);
player->ADD_GOSSIP_ITEM( 5, "Undercity"			, GOSSIP_SENDER_MAIN, 1206);
player->ADD_GOSSIP_ITEM( 5, "Thunder Bluff"		, GOSSIP_SENDER_MAIN, 1207);
player->ADD_GOSSIP_ITEM( 5, "Silvermoon"		, GOSSIP_SENDER_MAIN, 1208);
player->ADD_GOSSIP_ITEM( 9, "Gurubashi Arena"	, GOSSIP_SENDER_MAIN, 1210);
player->ADD_GOSSIP_ITEM( 6, "Outland"			, GOSSIP_SENDER_MAIN, 1211);
player->ADD_GOSSIP_ITEM( 6, "Shattrath"			, GOSSIP_SENDER_MAIN, 1212);
player->ADD_GOSSIP_ITEM( 6, "Botanica"			, GOSSIP_SENDER_MAIN, 1213);
}

player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,_Creature->GetGUID());

return true;

}


void SendDefaultMenu_eriss(Player *player, Creature *_Creature, uint32 action )
{

if(player->isAttacked())

{
player->CLOSE_GOSSIP_MENU();
_Creature->Say("Si v Combatu!", LANG_UNIVERSAL, NULL);
return;
}

if( player->getLevel() < 10  ) 

{
player->CLOSE_GOSSIP_MENU();
_Creature->Say("Portovani se odemkne od lvl 10!", LANG_UNIVERSAL, NULL);
return;
}

money = player-> GetMoney();
costo = 1000;

switch(action)

{

// Darnassus
case 1202:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, 9928.983398f, 2493.045898f, 1317.789062f, 0.770626f);

break;

// Stormwind
case 1201:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -8904.247070f, 560.248962f, 93.179588f, 0.705080f);

break;

// Undercity
case 1206:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, 1632.329590f, 237.826401f, -43.103691f, 2.973022f);

break;

// Orgrimmar
case 1205:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, 1495.540283f, -4414.777344f, 22.710794f, 0.064399f);

break;

// Exodar
case 1204:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(530, -3865.768799f, -11740.554688f, -107.265427f, 2.170840f);

break;

// Silvermoon
case 1208:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(530, 9396.139648f, -7279.220215f, 14.226899f, 0.027487f);

break;

// Ironforge
case 1203:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -4982.563477f, -881.436462f, 501.659729f, 5.391764f);

break;

// Thunder Bluff
case 1207:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, -1284.658325f, 173.225342f, 129.994095f, 4.751660f); 

break;

// Gurubashi Arena
case 1210:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(0, -13245.271484f, 194.816986f, 30.988232f, 0.944049f); 

break;

// Hide
case 1200:
player->CLOSE_GOSSIP_MENU();
player->TeleportTo(1, 7333.058105f, -1593.365234f, 164.541748f, 1.685466f); 

break;

case 1211:// Outland

if (money < costo )
{
player->CLOSE_GOSSIP_MENU();
_Creature->Say("Nemas penize!", LANG_UNIVERSAL, NULL);
return;
}
if (player->getLevel() >= 57)

{
	player->CLOSE_GOSSIP_MENU();
	player->TeleportTo(530, -248.566483f, 939.002930f, 84.379822f, 1.624252f);
	player->ModifyMoney(-10*costo);

} else {
	player->CLOSE_GOSSIP_MENU();
	_Creature->Say("Musis mit minimalne lvl 57!", LANG_UNIVERSAL, NULL);
}

break;

case 1212:// Shattrath

if (money < costo ) 
{
player->CLOSE_GOSSIP_MENU();
_Creature->Say("Nemas penize!", LANG_UNIVERSAL, NULL);
return;
}
if (player->getLevel() >= 60)

{
	player->CLOSE_GOSSIP_MENU();
	player->TeleportTo(530, -1806.125366f, 5411.108398f, 0.856998f, 2.956241f);
	player->ModifyMoney(-10*costo);

} else {
	player->CLOSE_GOSSIP_MENU();
	_Creature->Say("Musis mit minimalne lvl 60!", LANG_UNIVERSAL, NULL);
}

break;

case 1213:// Botanica

if (money < costo ) 
{
player->CLOSE_GOSSIP_MENU();
_Creature->Say("Nemas penize!", LANG_UNIVERSAL, NULL);
return;
}
if (player->getLevel() >= 70)

{
	player->CLOSE_GOSSIP_MENU();
	player->TeleportTo(530, 3354.695312f, 1527.352539f, 179.689011f, 5.628945f);
	player->ModifyMoney(-10*costo);

} else {
	player->CLOSE_GOSSIP_MENU();
	_Creature->Say("Musis mit minimalne lvl 70!", LANG_UNIVERSAL, NULL);
}

break;

}

}

bool GossipSelect_eriss(Player *player, Creature *_Creature, uint32

sender, uint32 action )

{
// Main menu
if (sender == GOSSIP_SENDER_MAIN)
SendDefaultMenu_eriss(player, _Creature, action   );

return true;

}
void AddSC_eriss()
{
Script *newscript;

newscript = new Script;
newscript->Name="eriss";
newscript->pGossipHello = &GossipHello_eriss;
newscript->pGossipSelect = &GossipSelect_eriss;
newscript->pItemHello = NULL;
newscript->pGOHello = NULL;
newscript->pAreaTrigger = NULL;
newscript->pItemQuestAccept = NULL;
newscript->pGOQuestAccept = NULL;
newscript->pGOChooseReward = NULL;

m_scripts[nrscripts++] = newscript;
}

Edited by bLuma

Share this post


Link to post
Share on other sites

charlie presne tohohle teleportera sem uz nekde videl na servereu :D aha jj na tom BUGSu kde sem hraval presne s touhe samou nabidkou i temi lokacemi :-/

Share this post


Link to post
Share on other sites
charlie presne tohohle teleportera sem uz nekde videl na servereu :D aha jj na tom BUGSu kde sem hraval presne s touhe samou nabidkou i temi lokacemi :-/

 

Hm tak tam asi tezko.. dam je ascent a todle je na mangos.. a nerikam ze je muj..

Share this post


Link to post
Share on other sites

prosim.. jsem trosku lama.. zjistil jsem ze to musim udelat v nejakem placenem visual studiu.. muze to pls nekdo udelat a nahrat to na web (toho teleportera) abych to jen stahnul a nahral do databaze? moc prosim.. nebo me kontaktujte na icq 191644953 .. moc dik :)

 

Share this post


Link to post
Share on other sites

je to script, ktery musis pridat do ScriptDev2 pred kompilaci. Samotna uprava databaze nepomuze.

Navod na Windows je tady tady

 

PLS napište někdo postup jako pridat jakykoliv scriptdev2 script k mangosu, ale pro linux.

Edited by pendialek

Share this post


Link to post
Share on other sites
PLS napište někdo postup jako pridat jakykoliv scriptdev2 script k mangosu, ale pro linux.

 

prakticky to same jako na windowsu, upravit ScriptMgr.cpp, pridat patch soubor a pak upravit soubor MakeFile.in , je v ScriptDev2 slozce.. prakticky do scripts pridat dalsi radek, podle okolnich a nastavis akorat cestu k tomu tvimu scriptu

Share this post


Link to post
Share on other sites
a teď to stačí uložit do sc_teleporter.cpp

 

Pak stačí dát k npc na konec Do sloupečku ScriptName napsat "teleporter"

Doufám že v tom nejsou chyby. Kdyby jo tak to pls někdo opravte nebo mě na to upozorněte

Návod jak dát script do emulátoru je zde

 

 

 

 

Prosím vás sem trochu lamka ale na tom odkatu nemuzu nikde najit jak to dát do emulátoru...pls napis odkaz primo na to ;)

Edited by Coyote

Share this post


Link to post
Share on other sites

Ahoj lidi prosim vas mohli by jstemi nekdo poradit jak a v čem se dela tem teleporte a jak ho pak dostat do serveru????

Jsem zacatecnik a nevm co mam delat....

Předm díky mé ICQ je 211 610 786

Share this post


Link to post
Share on other sites
Ahoj lidi prosim vas mohli by jstemi nekdo poradit jak a v čem se dela tem teleporte a jak ho pak dostat do serveru????

Jsem zacatecnik a nevm co mam delat....

Předm díky mé ICQ je 211 610 786

 

je to pres SD2 a zalezi na tom jestli to chces strucne bo full, ale na vystvětlování pres ICQ to není, spiše by to chtělo nějaky návod :-) Ale tohle je dostačující ne?

Share this post


Link to post
Share on other sites
je to pres SD2 a zalezi na tom jestli to chces strucne bo full, ale na vystvětlování pres ICQ to není, spiše by to chtělo nějaky návod :-) Ale tohle je dostačující ne?

 

a kde sezenu to SD2??

 

Share this post


Link to post
Share on other sites

ne, protože je na to nutné přidat skript do SD2. přes sql to maximálně uděláš přes portál / questy, které po skončení/zapnutí tě portnou. ale to si udělej sám

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


×