Szerző Téma: Guild Based System Patch[TrinityCore 3.3.5a]  (Megtekintve 6823 alkalommal)

Nem elérhető Pemi

  • Újonc
  • *
  • Hozzászólások: 41
Guild Based System Patch[TrinityCore 3.3.5a]
« Dátum: 2011 Június 14, 11:28:29 am »

Sziasztok!

Egyetemi tanulmányaim során felszedett C/C++ tudás gyakorlása képpen belenyúltam fél évvel ezelőtt egy TrinityCore rev.-be(10793+, 3.3.5a). A diff közel 800 sor, gondoltam megosztom Veletek, hátha ad ötletet, vagy akár segít a megvalósításban. Sokhelyen láttam felesleges dolgokat, a kód nem tökéletes, de fordítható, és működő képes, tesztelve. A project egy új játék szemléletről szólt, egy guild alapú rendszerről. Minden guildnak van egy arena rate-hez hasonló  pontja, a guildpont. Növelhető PvP-vel, instával, és csökken, ha új tag kerül a guildbe. Az ehhez szükséges parancsok hozzálettek adva mind a játékosok, mind a GM-ek számára. A vendorokba a kibővített additem parancsal beállítható, hogy melyik itemhez mennyi guildpont kell, az alatt pedig nem lesz látható a karakterek számára. Az adatbázist ennek megfelőlen bővíteni kell. A szükséges mezők: char/guild: pont; world/npc_vendor: pontkell
(A kódban szerepel néhány nem ehhez kapcsolódó változtatás, így alant összeírtam a lényeget!)


Forrás: http://pastebin.com/CMNBGhFD


A módosítások:
ArenaTeam.cpp:
-Penalties increased (5v5: *5)
Battleground.cpp:
-Remove ASSERT(m_Map) Crash
Chat.cpp:
-Help modified to "parancsok"
-New command "guildpont"
-New command "maxszint"
Chat.h:
-Added headers
Commands/Level0.cpp:
-ShowHelpForCommand "segits"
-New function: "guildpont" -> CharDB Query "guildpont"
-New function: "maxszint" -> HandleCharacterLevel lv80
Commands/cs_npc:cpp:
-New variables (pontkell)
-AddVendorItem new argument(pontkell)
-handler->PSendSysMessage new argument(pontkell)
Creature.h:
-VendorItem argument: "pontkell" (guildpont)
-AddItem argument: "pontkell"
GameEventMgr.cpp:
-AddVendorItem new argument
ObjectMgr.cpp:
-Modded Vendor Items QueryResult (pontkell)
-vList.AddItem new argument(pontkell)
-ObjectMgr::AddVendorItem new argument(pontkell)
-SaveToDatabase vendor items new argument(pontkell)
Guild.cpp:
-Set guildpont to DB
-OnGuildAddMember guildpont -300, if account = 5 SET level to 100
ScriptLoader.cpp:
-Added headers
ScriptMgr.cpp:
-OnPVPKill guildpont +1, if killer level-10 > killed level guildpont -10
ItemHandler.cpp:
-Added include
-Added DB Query to show guildpont < pontkell  //to hide items
CMakeLists.txt:
-Added new files
/scripts/../ghostlands.cpp:
-npc_blood_knight_dawnstar modded to HunterPetNPC
scripts/../stormwind_city.cpp:
-Add buffer npc
-npc_archmage_malin can teleport,castspell and modify honorpont(SQL Query) now
BOSS modded to add guildpont on kill:
-boss_amanitar.cpp
-boss_elder_nadox.cpp
-boss_herald_volazj.cpp
-boss_jedoga_shadowseeker.cpp
-boss_prince_taldaram.cpp
-boss_dred.cpp
-boss_novos.cpp
-boss_tharon_ja.cpp
-boss_trollgore.cpp
Pemi

Nem elérhető Bluerák

  • Globális Moderátor
  • Elvetemült
  • *****
  • Hozzászólások: 682
Re:Guild Based System Patch[TrinityCore 3.3.5a]
« Válasz #1 Dátum: 2011 Június 15, 12:59:36 am »
K

MacBook Pro 13' 2.26 GHZ, 4 GB RAM - White
iPhone 4S 16GB - Black
iPad 3 - Black

NEW PC:
Asus EAH6670 (1GB 128 bit)
AMD FX AM3+ (4x3.8GHZ)
ASRock 970 EXTREME3
8GB RAM

Nem elérhető Bluerák

  • Globális Moderátor
  • Elvetemült
  • *****
  • Hozzászólások: 682
Re:Guild Based System Patch[TrinityCore 3.3.5a]
« Válasz #2 Dátum: 2011 Június 15, 01:16:43 pm »

MacBook Pro 13' 2.26 GHZ, 4 GB RAM - White
iPhone 4S 16GB - Black
iPad 3 - Black

NEW PC:
Asus EAH6670 (1GB 128 bit)
AMD FX AM3+ (4x3.8GHZ)
ASRock 970 EXTREME3
8GB RAM

Nem elérhető Skyne

  • Cube Head
  • ******
  • Hozzászólások: 815
  • NeoCore Owner/Developer
Re:Guild Based System Patch[TrinityCore 3.3.5a]
« Válasz #3 Dátum: 2011 Június 18, 11:28:47 am »
naajsz, végre valaki valami értelmessel állt elő :D, kicsit itt ott találni benne szépséghibákat, de apróságok, grat, széplett :)

Nem elérhető ident

  • Cube Head
  • ******
  • Hozzászólások: 1477
  • Fhatys-WoW admin
    • Fhatys Guild of Arathor
Re:Guild Based System Patch[TrinityCore 3.3.5a]
« Válasz #4 Dátum: 2011 Június 18, 04:45:59 pm »
Ez nagyon jó ötlet, hasonlít picit a Lineage2-es raid pontos rendszerre. Gratula!
Fhatys, a sors által kirótt, elkerülhetetlen feladat szava.
http://eu.battle.net/wow/en/character/arathor/Ident/advanced

Nem elérhető Pemi

  • Újonc
  • *
  • Hozzászólások: 41
Re:Guild Based System Patch[TrinityCore 3.3.5a]
« Válasz #5 Dátum: 2011 Június 23, 05:24:30 pm »
Köszönöm, bár még van vele munka, ha valaki komolyan szeretné használni.

Viszont megkerestek, hogy hogyan lehetne beállítani minden mobra, hogy mennyi guildpontot adjon.

A dolog egyszerű:

/trinitycore/src/server/game/Entities/Player/Player.cpp:

void Player::GiveXP(..) függvény elejéhez tegyük hozzá ezt a pár sort:

QueryResult result = WorldDatabase.PQuery("SELECT KillCredit1 FROM creature_template WHERE entry='%d'", victim->ToCreature()->GetEntry());
if(result)
{
Field *fields = result->Fetch();
uint32 pontszam = fields[0].GetUInt32();
CharacterDatabase.PQuery("UPDATE guild SET pont = pont+%d WHERE guildid='%d'", pontszam, GetGuildId());
}

Így a creature_template táblában minden mobhoz megadhatjuk mennyi guildpontot adjon a KillCredit1 mezőben.
(Nem kell külön scriptelni a bossokat sem!)
Pemi

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27