Kép1: http://kepfeltoltes.hu/120829/as1_www.kepfeltoltes.hu_.jpg (http://kepfeltoltes.hu/120829/as1_www.kepfeltoltes.hu_.jpg)
Kép2: http://kepfeltoltes.hu/120829/as2_www.kepfeltoltes.hu_.jpg (http://kepfeltoltes.hu/120829/as2_www.kepfeltoltes.hu_.jpg)
Kép3: http://kepfeltoltes.hu/120829/as3_www.kepfeltoltes.hu_.jpg (http://kepfeltoltes.hu/120829/as3_www.kepfeltoltes.hu_.jpg)
Kép4: http://kepfeltoltes.hu/120829/as4_www.kepfeltoltes.hu_.jpg (http://kepfeltoltes.hu/120829/as4_www.kepfeltoltes.hu_.jpg)
Kép5: http://kepfeltoltes.hu/120829/as5_www.kepfeltoltes.hu_.jpg (http://kepfeltoltes.hu/120829/as5_www.kepfeltoltes.hu_.jpg)
Kép6: http://kepfeltoltes.hu/120829/as6_www.kepfeltoltes.hu_.jpg (http://kepfeltoltes.hu/120829/as6_www.kepfeltoltes.hu_.jpg)
Kedves fórumozók!
Mivel a saját szerveremre nincs már időm így nyugodt szívvel publikálom néhány scriptemet. Ami talán érdekes lehet számotokra (hisz ac-weben számtalan kiváló minőségű munka található) az egy transmog rendszer. Az ötletet innen merítettem:
http://www.youtube.com/watch?v=I6bzLdDgBnc (http://www.youtube.com/watch?v=I6bzLdDgBnc)
Gyakorlatilag a működése teljesen megegyezik, ehhez hasonló script eddig nem volt publikálva.
Elvégzem rajta az utolsó simításokat és felrakom pastebinre,
További szép napot :)
Üdv!
Bocs, hogy itt amatőrködök, de nem vagyok nagy játékos. Egy leírást tudnál mondani erről az egészről? Kicsit homályos nekem :).
Nem számítottam rá, de ma volt egy kis szabadidőm így hát nem húzom az időt.
1. Lépés:
Nyissuk meg a "Trinity\src\server\game\CMakeLists.txt" filet, és módosítsuk a következőképpen:
http://kepfeltoltes.hu/120829/cmakelist_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/120829/cmakelist_www.kepfeltoltes.hu_.png)
2. Lépés:
A "Trinity\src\server\scripts\Custom" mappába másoljuk be ezeket:
TransmogMgr.cpp: http://pastebin.com/04nAuDsJ (http://pastebin.com/04nAuDsJ)
TransmogMgr.h: http://pastebin.com/3hX8DTgP (http://pastebin.com/3hX8DTgP)
TransmogEngine.cpp: http://pastebin.com/KhBir4cW (http://pastebin.com/KhBir4cW)
TransmogEngine.h: http://pastebin.com/JntadrV9 (http://pastebin.com/JntadrV9)
TransmogHandler.cpp: http://pastebin.com/qindn27D (http://pastebin.com/qindn27D)
A pastebines tartalmat az előtte található fileba illesszétek be és mint említettem a Custom mappába másoljátok.
3. Lépés:
Leforgatást követően adjátok hozzá scriptloaderhez:
void AddSC_transmog();
AddSC_transmog();
void AddSC_StartUpTransmog();
AddSC_StartUpTransmog();
4. Lépés:
Core módosítások elvégzése, csináljátok meg a következő képek alapján:
LootHandler.cpp:
http://kepfeltoltes.hu/120829/loothandler1_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/120829/loothandler1_www.kepfeltoltes.hu_.png)
http://kepfeltoltes.hu/120829/loothandler2_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/120829/loothandler2_www.kepfeltoltes.hu_.png)
Player.h:
http://kepfeltoltes.hu/120829/playerh_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/120829/playerh_www.kepfeltoltes.hu_.png)
Player.cpp:
http://kepfeltoltes.hu/120829/playercpp1_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/120829/playercpp1_www.kepfeltoltes.hu_.png)
http://kepfeltoltes.hu/120829/playercpp2_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/120829/playercpp2_www.kepfeltoltes.hu_.png)
http://kepfeltoltes.hu/120907/playermod3_www.kepfeltoltes.hu_.png (http://kepfeltoltes.hu/120907/playermod3_www.kepfeltoltes.hu_.png)
5. Lépés:
Miután leforgattátok importáljátok ezt char db-be:
http://pastebin.com/S8hsv8Wf (http://pastebin.com/S8hsv8Wf)
Csináljatok egy NPC-t a következő paraméterekkel:
Flag: 1
ScriptName: npc_transmog
Entry: 100002 (TransmogEngine.h-ban van definiálva)
Holnap még átnézem az irományom esetleg kiegészítem de ma ennyire futotta.
Becsüljétek meg mert k*rva sok munkám van benne!
Rövid leírás a működéséről...
TransmogHandler.cpp:
Magát az NPC-t tartalmazza, ezenkívül idedobtam be a player scriptet (kari del kezelés etc..)
TransmogMgr.cpp, TransmogMgr.h:
Mivel a program futása során számtalanszor hozzá kell férnie a transmog adatokhoz ezért startupnál betölti azt egy listába (ami struktúrákat tartalmaz). Ez a 2file ezt a listát kezeli.
TransmogEngine.cpp, TransmogEngine.h:
A rendszer magja. Ez tartalmazza a db kezeléshez szükséges függvényektől kezdve az interface kiküldés, készítés, csekkoláson át mindent.
A scriptet Win7-en írtam, ezen az emulátoron van tesztelve:
TrinityCore rev. 2012-07-09 13:42:38 -0400 (a24b6576e2b3+) (Win32, Release)
Továbbá megkérek mindenkit, hogy NE publikálja ezt a scriptet SEHOL a beleegyezésem nélkül.
Köszönöm!
Akinek kérdése van csak írjon :)
Nem erre a működésre voltam kíváncsi, ezt nyilván értem, de nvm.
Egyébként köszi!
catában a blizzard bevezetett egy új rendszert a neve "transmogrification". a lényege az, hogy ha nem tetszik egy itemed kinézete akkor neked tetszőre alakíthatod azt át. mindemellett a statok, az enchantok, gemek megmaradnak.
tervezem publikálni az arena spectatoromat is de az még nincs egészen kész :)
Ha beteszem a Custom mappába a fájlokat ott nem kell felülírni a Cmake fájt??? Elég csak azt az 1 cmake fájt felülírni??
Nyilván felül kell írni, persze az ilyen dolgokat nem írom le, hogy:
1, kapcsoljuk be a gépet...
Jó igazad van bocsi :S Csak persze így elsőre belenézve mondom biztos valami nincs ott... Néha nem bízok magamban xd jobb a megerősítés :D
Erre valakinek valami ötlete?
12> Creating library C:\szerver\project\src\server\worldserver\Release\worldserver.lib and object C:\szerver\project\src\server\worldserver\Release\worldserver.exp
12>game.lib(Player.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl TransmogEngine::RemoveTransmogDB(unsigned int)" (?RemoveTransmogDB@TransmogEngine@@SAXI@Z) referenced in function "public: void __thiscall Player::RemoveItem(unsigned char,unsigned char,bool)" (?RemoveItem@Player@@QAEXEE_N@Z)
12>game.lib(Player.obj) : error LNK2019: unresolved external symbol "public: static bool __cdecl TransmogEngine::SetTransmogDisplay(class Player *,unsigned int)" (?SetTransmogDisplay@TransmogEngine@@SA_NPAVPlayer@@I@Z) referenced in function "public: class Item * __thiscall Player::EquipItem(unsigned short,class Item *,bool)" (?EquipItem@Player@@QAEPAVItem@@GPAV2@_N@Z)
12>game.lib(ScriptLoader.obj) : error LNK2019: unresolved external symbol "void __cdecl AddSC_StartUpTransmog(void)" (?AddSC_StartUpTransmog@@YAXXZ) referenced in function "void __cdecl AddCustomScripts(void)" (?AddCustomScripts@@YAXXZ)
12>game.lib(ScriptLoader.obj) : error LNK2019: unresolved external symbol "void __cdecl AddSC_transmog(void)" (?AddSC_transmog@@YAXXZ) referenced in function "void __cdecl AddCustomScripts(void)" (?AddCustomScripts@@YAXXZ)
12>game.lib(LootHandler.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl TransmogEngine::HandleInterfaceSelect(class Player *,class Creature *,struct Loot *,unsigned char)" (?HandleInterfaceSelect@TransmogEngine@@SAXPAVPlayer@@PAVCreature@@PAULoot@@E@Z) referenced in function "public: void __thiscall WorldSession::HandleAutostoreLootItemOpcode(class WorldPacket &)" (?HandleAutostoreLootItemOpcode@WorldSession@@QAEXAAVWorldPacket@@@Z)
12>game.lib(LootHandler.obj) : error LNK2019: unresolved external symbol "public: static bool __cdecl TransmogEngine::IsActiveInterface(unsigned __int64)" (?IsActiveInterface@TransmogEngine@@SA_N_K@Z) referenced in function "public: void __thiscall WorldSession::HandleAutostoreLootItemOpcode(class WorldPacket &)" (?HandleAutostoreLootItemOpcode@WorldSession@@QAEXAAVWorldPacket@@@Z)
12>game.lib(LootHandler.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl TransmogEngine::SendInterfaceClose(class Player *,unsigned __int64)" (?SendInterfaceClose@TransmogEngine@@SAXPAVPlayer@@_K@Z) referenced in function "public: void __thiscall WorldSession::HandleLootReleaseOpcode(class WorldPacket &)" (?HandleLootReleaseOpcode@WorldSession@@QAEXAAVWorldPacket@@@Z)
12>C:\szerver\project\bin\Release\worldserver.exe : fatal error LNK1120: 7 unresolved externals
Eddig nem jutottam még el, mert mindíg valamit elrontottam a cpp-kbe és azokra hivatkozott, de ez most új.
Utána néztem, és találtam leírást a hibára itt: http://msdn.microsoft.com/en-us/library/799kze2z(v=vs.80).aspx
de sajnos nem sokra mentem vele :S
Nekem is pontosan ugyan ez a hiba, teljesen ugyan ez. valami ötlet?
Sohasem forgattam wow emulátort windowson, de van egy olyan tippem hogy cmake fájlokhoz nem lettek hozzáadva a transmogos fájlok.
Sajnos ezzel már úgy vagyok ha én vettem a fáradtságot, és az időt nem sajnálva megírom és felrakom ezt a netre akkor ne üldözzenek már azzal, hogy hogyan tudják beüzemelni... ha valaki erre is képtelen akkor kapa, ásó a kézbe és uccu ki a szántóra!
Idézetet írta: EroniX Dátum 2013 január 14, 09:45:37 DÉLUTÁN
Sajnos ezzel már úgy vagyok ha én vettem a fáradtságot, és az időt nem sajnálva megírom és felrakom ezt a netre akkor ne üldözzenek már azzal, hogy hogyan tudják beüzemelni... ha valaki erre is képtelen akkor kapa, ásó a kézbe és uccu ki a szántóra!
Neharagudj, hogy zavartalak vele, de nem egy scriptet forgattam már be, és nem csak én, de a programozókanak is ugyan ezt a hibát írta ki.
Bocs a zavarásért..
Lehetséges, hogy a mai emukon kisebb módosítással fordul csak le. De ha valaki ezt a minimális módosítást is képtelen elvégezni az egyszerűen ne akarja berakni, senki nem tesz szívességet azzal, hogy ezt használja.
Aki pedig azt mondja, hogy nem működik annak figyelmébe ajánlom a világ egyik legnagyobb pvp szerverét:
https://www.dispersion-wow.com/
vagy magyarország egyik legnagyobb pvp szerverét:
http://www.globalwow.hu/
Idézetet írta: K3nNy Dátum 2013 január 15, 05:58:38 DÉLUTÁN
programozókanak is ugyan ezt a hibát írta ki.
Pl?
Sikerült mindent megcsinálni működik rendesen, de hogyha lootolok valamit MOBon kívül akkor DC van.
Tehát ha battlegroundon Corpset lootolok DC, vagy ha egy Ládát vagy bármilyen objectet lootolok dc.
( semmit nem írtam el, ellenőriztem ) ( nem a legújabb coreomvan, kb 2012 09 hónap, körüli. )
valami ötlet?
Próbáld meg akkor egy friss 335-ösbe forgatni, és crashlogot ellenőrizni.
Rakd fel a LootHandler.cpp-det a Player.cpp-det valamint a Player.h-dat.
Idézetet írta: Szilárd Dátum 2013 január 19, 01:06:51 DÉLUTÁN
Próbáld meg akkor egy friss 335-ösbe forgatni, és crashlogot ellenőrizni.
Működik ezzel a core-al is csak valami miatt dc van ha lootolok valamit kivéve mob.
Revision: TrinityCore rev. 0000-00-00 00:00:00 +0000 (Archived) (Win32, Release)
Date 19:1:2013. Time 11:45
//=====================================================
*** Hardware ***
Processor: Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz
Number Of Processors: 4
Physical Memory: 3857108 KB (Available: 194260 KB)
Commit Charge Limit: 4194303 KB
*** Operation System ***
Windows 7 Professional Service Pack 1 (Version 6.1, Build 7601)
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 00E42942 01:002E1942 C:\Trinity\try\bin\Release\worldserver.exe
Registers:
EAX:00000000
EBX:4A018845
ECX:850B602D
EDX:00000000
ESI:F11002F4
EDI:33630EA8
CS:EIP:0023:00E42942
SS:ESP:002B:3083FBA8 EBP:1C5A8B98
DS:002B ES:002B FS:0053 GS:002B
Flags:00010202
Call stack:
Address Frame Function SourceFile
00E42942 00000000 0001:002E1942 C:\Trinity\try\bin\Release\worldserver.exe
00D6FC71 00000000 0001:0020EC71 C:\Trinity\try\bin\Release\worldserver.exe
========================
Local Variables And Parameters
Call stack:
Address Frame Function SourceFile
00E42942 00000000 0001:002E1942 C:\Trinity\try\bin\Release\worldserver.exe
00D6FC71 00000000 0001:0020EC71 C:\Trinity\try\bin\Release\worldserver.exe
========================
Global Variables
<user defined> '??4_Init_locks@std@@QAEAAV01@ABV01@@Z'
http://www.updatexp.com/0xC0000005.html
Ez a leírás szerintem segítséget nyújthat számodra.
Idézetet írta: EroniX Dátum 2013 január 19, 01:09:07 DÉLUTÁN
Rakd fel a LootHandler.cpp-det a Player.cpp-det valamint a Player.h-dat.
Player.h: http://pastebin.com/M3j4De4y
Player.cpp ( part 1 ) http://pastebin.com/J71bmZnV
Player.cpp ( part 2 ) http://pastebin.com/G03wuSN6
Loothandler.cpp: http://pastebin.com/qD69nwPG
Idézetet írta: Szilárd Dátum 2013 január 19, 01:15:48 DÉLUTÁN
http://www.updatexp.com/0xC0000005.html
Ez a leírás szerintem segítséget nyújthat számodra.
Ezzel nem nagyon jutottam előrébb :S
talaltam neten 1 Transmog scriptet szoval en nem ezt forgattam be azomban ott goldba kerul a transmog....tudna valaki segiteni hogy tehetnem ingyenesse vagy rakhatnam at hogy pl. BOJ ba keruljon?(szetneztem DB ben az SQL ben amit kigiteltem de nem talalok benne semmit ami a goldra utalna amennyibe a transmog kerul :(
azt hiszem talaltam valamit a Transmog.cpp ben
Idéz{
switch(sTransmogrification->GetRequireGold())
{
case 1: { player->ModifyMoney(-1*(uint32)(GetFakePrice(oldItem)*sTransmogrification->GetGoldModifier())); } break;
case 2: { player->ModifyMoney(-1*(unsigned int)sTransmogrification->GetGoldCost()); } break;
}
if(sTransmogrification->GetRequireToken())
player->DestroyItemCount(sTransmogrification->GetTokenEntry(), sTransmogrification->GetTokenAmount(), true);
Transmogrification::SetFakeEntry(oldItem, newItem->GetEntry());
newItem->SetNotRefundable(player);
newItem->SetBinding(true);
player->PlayDirectSound(3337);
session->SendAreaTriggerMessage(session->GetTrinityString(LANG_ITEM_TRANSMOGRIFIED), GetSlotName(sender, session));
}
itt kellene sztem valamit atirni :P csak ha most elkezdenem atirogatni es addig forgatni mig jo nem lenne eltelne egy kis ido szoval egy kis segitseget megkoszonnek :D vagy pedig a Transmogrification.h ban
switch(sTransmogrification->GetRequireGold())
{
case 1: { player->ModifyMoney(-1*(uint32)(GetFakePrice(oldItem)*sTransmogrification->GetGoldModifier())); } break;
case 2: { player->ModifyMoney(-1*(unsigned int)sTransmogrification->GetGoldCost()); } break;
}
if(sTransmogrification->GetRequireToken())
player->DestroyItemCount(sTransmogrification->GetTokenEntry(), sTransmogrification->GetTokenAmount(), true);
Ezt vágd ki.
És valami ilyesmi:
if(!player->hasitemcount(...))
return; // nincs elég token
player->destroyitem(...,....);
megcsinaltam es forgatas failed
Idézetet írta: Nobody Dátum 2013 január 26, 08:39:33 DÉLUTÁN
megcsinaltam es forgatas failed
Ehhez a transmoghoz van worldconfigba utasítás ott tudod állítani hogy gold vagy token stb : )
Igazad volt axie valoban a worldserver.conf ban ott volt a configja :D amugy meg egy altalam keszitett backup configot masoltam at es abban nem volt mivel azt meg Transmog nelkul forgattam le...ugy latom itt mindennek az eredetinek kell lenni tobbet ilyet nem csinalok :D Koszonom szepen a segitsegetek ! :D
Idézetet írta: Nobody Dátum 2013 január 26, 08:39:33 DÉLUTÁN
megcsinaltam es forgatas failed
nyilván azért mert a "..."-okat kikellett volna cserélni a tényleges értékekre, ezenkívül nem emlékeztem a függvények pontos neveire.
az kesobb nekem is leesett de mostmar mind1 :D szerencsere sikerult megoldani alapbol rossz helyen keresgeltem persze ugyis meglehetett volna oldani..valahogy ..... de koszonom azert a segitseget ;)
Nincs definiálva a guid változó, nyilván más trinityd van.
Vicces egyébként, hogy azon a szerveren ami Mo Top 1 fun volt fél évig nem tudnak megoldani egy változó definiálását.
Sziasztok!
Az elmúlt napokban meg akartam nézni hogy milyen is és sajnos hibákba ütköztem a forgatás során. Ha véletlenül valaki rá tudna nézni hogy mi a baja azt megköszönném.
[ 24%] Building CXX object src/server/game/CMakeFiles/game.dir/Handlers/LootHandler.cpp.o
/home/novanwow/tesztcore/src/server/game/Handlers/LootHandler.cpp: In member function 'void WorldSession::HandleLootOpcode(WorldPacket&)':
/home/novanwow/tesztcore/src/server/game/Handlers/LootHandler.cpp:236:17: warning: unused variable 'creature' [-Wunused-variable]
[ 41%] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Custom/TransmogEngine.cpp.o
/home/novanwow/tesztcore/src/server/scripts/Custom/TransmogEngine.cpp: In static member function 'static bool TransmogEngine::SetTransmogDisplay(Player*, uint32)':
/home/novanwow/tesztcore/src/server/scripts/Custom/TransmogEngine.cpp:154:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
/home/novanwow/tesztcore/src/server/scripts/Custom/TransmogEngine.cpp: In static member function 'static void TransmogEngine::HandleInterfaceSelect(Player*, Creature*, Loot*, uint8)':
/home/novanwow/tesztcore/src/server/scripts/Custom/TransmogEngine.cpp:216:109: error: invalid conversion from 'uint64_t {aka long unsigned int}' to 'const Player*' [-fpermissive]
compilation terminated due to -Wfatal-errors.
Előre is köszönöm.
Üdvözlettel Locutus
Ha pastebinre feltöltenéd a LootHandler.cpp és TransmogEngine.cpp fájlokat, akkor könnyebben segíthetünk a problémádon.
Szilárd