Top aréna csapat npc

Indította rasocsabi, 2013 március 18, 08:17:00 DÉLELŐTT

Előző téma - Következő téma

rasocsabi

Találtam a gépemen egy Top aréna csapat npc-t és gondoltam megosztom veletek.

Kód (c++) Kijelölés
#include "ScriptPCH.h"
using namespace std;

class npc_arena_teamTop : public CreatureScript
{
   public:
   npc_arena_teamTop() : CreatureScript("npc_arena_teamTop") { }

   bool OnGossipHello(Player * player, Creature * creature)
   {
   player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "View top 2v2 Arena Teams", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
   player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "View top 3v3 Arena Teams", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+2);
   player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Nevermind", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+3);
   player->SEND_GOSSIP_MENU(1, creature->GetGUID());
   return true;
   }

   bool OnGossipSelect(Player * player, Creature * creature, uint32 sender, uint32 actions)
   {
   if(sender == GOSSIP_SENDER_MAIN)
   {
   switch(actions)
   {
       case GOSSIP_ACTION_INFO_DEF+1:
   {
   QueryResult result = CharacterDatabase.Query("SELECT name,rating FROM arena_team WHERE type='2' ORDER BY rating DESC LIMIT 10");
   if(!result)
   return false;

   Field * fields = NULL;
   player->MonsterWhisper("|cff4169E1Here are the top 10 2v2 arena teams:|r", player->GetGUID());
   do
   {
   fields = result->Fetch();
   string arena_name = fields[0].GetString();
   uint32 rating = fields[1].GetUInt32();
   char msg[250];
   snprintf(msg, 250, "Team Name: |cffFFFF00%s|r, Team Rating: %u \n", arena_name.c_str(), rating);
   player->MonsterWhisper(msg, player->GetGUID());
   }while(result->NextRow());
   }break;

       case GOSSIP_ACTION_INFO_DEF+2:
   {
   QueryResult result = CharacterDatabase.Query("SELECT name,rating FROM arena_team WHERE type='3' ORDER BY rating DESC LIMIT 10");
   if(!result)
   return false;

   Field * fields = NULL;
   player->MonsterWhisper("|cff4169E1Here are the top 10 3v3 arena teams:|r", player->GetGUID());
   do
   {
   fields = result->Fetch();
   string arena_name = fields[0].GetString();
   uint32 rating = fields[1].GetUInt32();
   char msg[250];
   snprintf(msg, 250, "Team Name: |cffFFFF00%s|r, Team Rating: %u \n", arena_name.c_str(), rating);
   player->MonsterWhisper(msg, player->GetGUID());
   }while(result->NextRow());
   }break;

       case GOSSIP_ACTION_INFO_DEF+3:
   {
   player->PlayerTalkClass->SendCloseGossip();
   }break;
   }
   }

   return true;
   }
};

void AddSC_npc_arena_setup()
{
new npc_arena_teamTop;
}


Armin

Jónak tűnik, viszont ez a script-en belüli SQL lekérdezés elég nagy gubancot tud okozni. Persze csak akkor, ha 2-3-400 ember egyszerre akarja megnézni a csapatokat. Ekkor már elég durván be tudja laggoltatni a szervert.

EroniX

Idézetet írta: Armin Dátum 2013 március 19, 02:50:03 DÉLUTÁN
Jónak tűnik, viszont ez a script-en belüli SQL lekérdezés elég nagy gubancot tud okozni. Persze csak akkor, ha 2-3-400 ember egyszerre akarja megnézni a csapatokat. Ekkor már elég durván be tudja laggoltatni a szervert.
He? És melyik szerveren akarja egyszerre 400ember megnézni a csapatokat? A weboldal alapú toplisták is ugyan ezeket az sql lekérdezéseket használják...
Azuregos Delta Force

Armin

Idéz
A weboldal alapú toplisták is ugyan ezeket az sql lekérdezéseket használják..
Ja, csak nem az emun keresztül  ;D

Idéz
És melyik szerveren akarja egyszerre 400ember megnézni a csapatokat?

Ezért írtam, hogy "persze csak akkor, ha...."

Azzeroth

Valakitől segítséget kérnék:

-A scriptben hol írja le, mit kell ScriptName-nek adni (ezt írtam: npc_arena_teamTop)
-creature template-be beírtam, de csak az alap szöveget írja nekem ki ez a fattyú :/
Valaki küldene egy NPC Scriptet, ami pont optimális ehhez, bele van írva, stb. ^^
Fontos lenne :/

vikideking

Hibátlan a script én is használom de kibővítettem az 5v5-el ha valaki nem akar azzal időt tölteni itt van :http://pastebin.com/rZznAufn

vikideking

Azzeroth neked küldöm INSERT INTO `creature_template` (`entry`, `modelid1`, `name`, `minlevel`, `maxlevel`, `faction_A`, `faction_H`, `npcflag`, `ScriptName`, `WDBVerified`) VALUES ('7000000', '26000', 'Aréna Top', '80', '80', '35', '35', '3', 'npc_arena_teamTop', '12340');    tessék ez működni fog

rasocsabi

IdézAzzeroth neked küldöm INSERT INTO `creature_template` (`entry`, `modelid1`, `name`, `minlevel`, `maxlevel`, `faction_A`, `faction_H`, `npcflag`, `ScriptName`, `WDBVerified`) VALUES ('7000000', '26000', 'Aréna Top', '80', '80', '35', '35', '3', 'npc_arena_teamTop', '12340');    tessék ez működni fog
ezzel biztos nem fog menni :D rossz sql :D

vikideking


rasocsabi

teszteltem nekem nem megy. De amugy subname kimaradt az SQL-ed ből :D

Azzeroth

Vikideking: közönyösséged tartsd magadban.. Segítséget kértem nem leoltást..;)
Rasocsabi: köszönöm a segìtségedet, hétvégén meg is nézem :)

rasocsabi


Powered by EzPortal