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  
1UK45

TeleNPC 3.3.2

Využijete tohoto NPC?  

15 members have voted

  1. 1. Využijete tohoto NPC?

    • Ano, určitě
    • Ne, radši si udělam svého v c++ nebo SQL


Recommended Posts

Zdravim,

 

protoze uz me nudil ten teleporter s SQL, pokusil jsem se skutit "elegantnejsi" reseni v C++ :) (zatim se c++ ucim, takze me neukamenujte za nejaky syntaxovy nespravnosti, funguje ale paradne)

 

A jeste predem rikam, protoze se s C++ teprve ucim, "obslehnul" jsem ulduar_teleporter a upravil ho...takze tim nechci rikat, ze je to cela moje prace, nekomu se to ale muze hodit :)

 

 

Soubor server_teleporter.cpp umistnete do src/scripts/northrend/ulduar/ulduar/

 

 

 

#include "ScriptedPch.h"
#include "../shared/Config/Config.h"



/*
* Copyright (C) 2010 Deadly
* Vyrobeno pro WoW server Alkazan
* TrinityCore, testovano s rev.7601 a 7737 (WoW 3.3.2)
* Pripominky, stiznosti, vylepseni prosim piste do prislusneho tematu na WoWResource.eu (http://www.wowresource.eu/index.php?showtopic=17856)
* ------------
* Copyright (C) 2010 Deadly
* Made for WoW private server Alkazan
* TrinityCore, tested with rev. 7601 and 7737 (WoW 3.3.2)
*/



#define SHATTRATH    20000
#define DALARAN      20001
#define GADGETZAN        20002
#define BOOTYBAY    20003
#define STORMWIND      20004
#define ORGRIMMAR      20005
#define GURUBASHI      20006
#define MAINC      20007
#define NEUC      20008
#define PVP      20009
#define THUNDER      20010
#define UNDERCITY      20011
#define SILVERMOON      20012
#define IRONFORGE      20013
#define DARNASSUS      20014
#define EXODAR      20015






bool GoHello_server_teleporter( Player *pPlayer, GameObject *pGO )
{
pPlayer->ADD_GOSSIP_ITEM(0, "--- Hlavni mesta ---", GOSSIP_SENDER_MAIN, MAINC);
		if ( pPlayer->GetTeam() == ALLIANCE ){
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Stormwindu", GOSSIP_SENDER_MAIN, STORMWIND); 
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Ironforge", GOSSIP_SENDER_MAIN, IRONFORGE);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Darnassusu", GOSSIP_SENDER_MAIN, DARNASSUS);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Exodaru", GOSSIP_SENDER_MAIN, EXODAR);
	}

	if ( pPlayer->GetTeam() == HORDE ){
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Orgrimmaru", GOSSIP_SENDER_MAIN, ORGRIMMAR);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Thunder Bluffu", GOSSIP_SENDER_MAIN, THUNDER);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Undercity", GOSSIP_SENDER_MAIN, UNDERCITY);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Silvermoonu", GOSSIP_SENDER_MAIN, SILVERMOON);
	}
pPlayer->ADD_GOSSIP_ITEM(0, "--- Neutralni mesta ---", GOSSIP_SENDER_MAIN, NEUC);
pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Shattrathu", GOSSIP_SENDER_MAIN, SHATTRATH);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Dalaranu", GOSSIP_SENDER_MAIN, DALARAN);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Booty Bay", GOSSIP_SENDER_MAIN, BOOTYBAY);
	pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Gadgetzanu", GOSSIP_SENDER_MAIN, GADGETZAN);
	pPlayer->ADD_GOSSIP_ITEM(0, "--- PVP ---", GOSSIP_SENDER_MAIN, PVP);
pPlayer->ADD_GOSSIP_ITEM(5, "Teleport do Gurubashi areny", GOSSIP_SENDER_MAIN, GURUBASHI);
   pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, pGO->GetGUID());

   return true;
}

bool GOSelect_server_teleporter( Player *pPlayer, GameObject *pGO, uint32 sender, uint32 action )
{


   switch(action)
   {
   case SHATTRATH:
       pPlayer->TeleportTo(530, -1857.94, 5417.365, -10.57, 0);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
   case DALARAN:
       pPlayer->TeleportTo(571, 5804.15, 624.77, 647.8, 1.64);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
   case BOOTYBAY:
       pPlayer->TeleportTo(0, -14297.2, 531, 8.8, 4);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
   case GADGETZAN:
       pPlayer->TeleportTo(1, -7177.15, -3785.34, 8.4, 6.1);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case STORMWIND:
       pPlayer->TeleportTo(0, -8829.2, 624.75, 93.91, 3.83);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case ORGRIMMAR:
       pPlayer->TeleportTo(1, 1629.36, -4373.39, 31.5, 3.55);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case GURUBASHI:
       pPlayer->TeleportTo(0, -13248.88, 188, 31.36, 1.08);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case MAINC:

		break;
case NEUC:

		break;
case PVP:

	break;

case THUNDER:
       pPlayer->TeleportTo(1, -1277.37, 124.8, 131.3, 5.22);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case UNDERCITY:
       pPlayer->TeleportTo(0, 1584, 242, -52.16, 0.05);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case SILVERMOON:
       pPlayer->TeleportTo(530, 9487.69, -7279.2, 14.3, 6.16);
       pPlayer->CLOSE_GOSSIP_MENU(); break;

case IRONFORGE:
       pPlayer->TeleportTo(0, -4918.88, -940, 501.57, 5.42);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case DARNASSUS:
       pPlayer->TeleportTo(1, 9949.56, 2284.2, 1341.4, 1.6);
       pPlayer->CLOSE_GOSSIP_MENU(); break;
case EXODAR:
       pPlayer->TeleportTo(530, -3965.7, -11653.6, -138.85, 0.85);
       pPlayer->CLOSE_GOSSIP_MENU(); break;

   }

   return true;
}

void AddSC_server_teleporter()
{
   Script *newscript;
   newscript = new Script;
   newscript->Name = "server_teleporter";
   newscript->pGOHello = &GoHello_server_teleporter;
   newscript->pGOSelect = &GOSelect_server_teleporter;
   newscript->RegisterSelf();
}

 

 

pak, musite do souboru ScriptLoader.cpp v /src/game/ pridat par radku...

 

Musite v nem najit radek "//custom ", mel by byt kousek od zacatku. Pod nej pridejte:

 void AddSC_server_teleporter();

.

Dale najdete radek "AddSC_zangarmarsh();". Pod nej pridejte

AddSC_server_teleporter();

.

 

Posledni krok, ten se deli na dve casti - windowsovska kompilace a linuxova kompilace...

 

V windowsovske kompilaci musite do projektu VC90 pridat hned pod ulduar_teleporter.cpp (game/scripts/northrend/ulduar/ulduar/) pridat server_teleporter.cpp...kdyby nekdo nevedel, jak na to, tak sem napiste, ale je to hrozne jednoduchy (kliknou pravym na slozku - pridat novy soubor).

V linuxovske je to jeste jednodussi - najedte si do /src/scripts. Tam otevrete v jakemkoliv textovem editoru soubor CMakeLists.txt, a pod radek "northrend/ulduar/ulduar/ulduar_teleporter.cpp" pridejte:

northrend/ulduar/ulduar/server_teleporter.cpp

.

 

 

 

To by melo byt vse :) ted uz jen zkompilovat, udelat novy objekt / npc s scriptname server_teleporter, a uzivejte si teleportovani :)

 

Jestli by nekdo mel nejake pripominky, zlepseni, atd.. tak je rad uvitam :)

Edited by 1UK45
  • Upvote 4

Share this post


Link to post
Share on other sites

pěkný, ale mohl by jsi to vyrobit jako patch. Nováčci to ve visual studiu většinou nenajdou

Share this post


Link to post
Share on other sites

Zdravím, snažili jsme se dát na server tohoto Teleportére, ale máme menší problémy. Kompilujeme pod Linuxem Ubuntu.

 

[ 33%] Building CXX object src/scripts/CMakeFiles/scripts.dir/northrend/frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp.o
make[2]: Warning: File `../src/scripts/northrend/ulduar/ulduar/server_teleporter.cpp' has modification time 9.8 s in the future
[ 33%] [ 33%] Building CXX object src/scripts/CMakeFiles/scripts.dir/northrend/ulduar/ulduar/ulduar_teleporter.cpp.o
Building CXX object src/scripts/CMakeFiles/scripts.dir/northrend/ulduar/ulduar/server_teleporter.cpp.o
/home/kompilace/fun/sources/src/scripts/northrend/ulduar/ulduar/ulduar_teleporter.cpp:40: error: expected declaration before â}â token
/home/kompilace/fun/sources/src/scripts/northrend/frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp:433: error: âENCOUNTER_WAVE_MERCANERYâ was not declared in this scope
/home/kompilace/fun/sources/src/scripts/northrend/frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp: In member function âvirtual void npc_slyvanas_windrunner_halls_of_reflection_partone::UpdateAI(uint32)â:
/home/kompilace/fun/sources/src/scripts/northrend/frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp:474: error: âHallsofReflectionLocsâ was not declared in this scope
/home/kompilace/fun/sources/src/scripts/northrend/frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp:476: error: âSAY_SLYVANAS_2â was not declared in this scope
/home/kompilace/fun/sources/src/scripts/northrend/frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp:482: error: âSAY_UTHER_1â was not declared in this scope
make[2]: *** [src/scripts/CMakeFiles/scripts.dir/northrend/ulduar/ulduar/ulduar_teleporter.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [src/scripts/CMakeFiles/scripts.dir/northrend/frozen_halls/halls_of_reflection/instance_halls_of_reflection.cpp.o] Error 1
make[1]: *** [src/scripts/CMakeFiles/scripts.dir/all] Error 2
make: *** [all] Error 2

 

Vše jsme dělali podle návodu. Děkuji za rady.

Share this post


Link to post
Share on other sites

Je zajímavý jak někdo sepíše script na winu a pak na linuxu nejde zkompilovat...

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  

×