سلام ، آیا این بازدید اول شماست ؟ یا
logo_forum_header

تبلیغات
×
+
سفارش تبلیغات

نمایش نتایج: از 1 به 4 از 4

موضوع: اسکریپت TopArena

  1. #1

    شماره عضویت
    13
    تاریخ عضویت
    Oct 2014
    نوشته ها
    41
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 58
    مورد پسند : 72 بار در 27 پست
    سیستم عامل و مرورگر:

    اسکریپت TopArena

    دورد دوباره...

    اسکریپت TopArenaبرای 3.3.5 ترینتی
    این اسکریپت مربوط به جوین دادن در ارنا و تیم ارنا میباشد...

    کاملا تست شده و سالم میباشد...

    کد PHP:
    #include "ScriptPCH.h"
    #include <cstring>
    #include <string.h>
    #include "ObjectMgr.h"
    #include "ScriptMgr.h"
    #include "ArenaTeam.h"
    #include "ArenaTeamMgr.h"
    #include "World.h"

    enum enus
    {
        
    ARENA_MAX_RESULTS 10,
        
    ARENA_2V2_LADDER GOSSIP_ACTION_INFO_DEF 1,
        
    ARENA_3V3_LADDER GOSSIP_ACTION_INFO_DEF 2,
        
    ARENA_5V5_LADDER GOSSIP_ACTION_INFO_DEF 3,
        
    ARENA_GOODBYE GOSSIP_ACTION_INFO_DEF 4,
        
    ARENA_START_TEAM_LOOKUP GOSSIP_ACTION_INFO_DEF 5,
        
    ARENA_HELP GOSSIP_ACTION_INFO_DEF 9999,
    };

    class 
    arena_top_teams : public CreatureScript
    {
        private:
        
    uint32 optionToTeamType(uint32 option
        {
            
    uint32 teamType;
            switch(
    option)
            {
                case 
    ARENA_2V2_LADDER
                    
    teamType 2;
                break;
                        
                case 
    ARENA_3V3_LADDER:
                    
    teamType 3
                break;
                    
                case 
    ARENA_5V5_LADDER:
                    
    teamType 5
                break;
            }
            return 
    teamType;
        }
            
        
    uint32 teamTypeToOption(uint32 teamType
        {
            
    uint32 option;
            switch(
    teamType
            {
                case 
    2
                    
    option ARENA_2V2_LADDER
                break;
                        
                case 
    3
                    
    option ARENA_3V3_LADDER
                break;
                        
                case 
    5
                    
    option ARENA_5V5_LADDER
                break;
            }
            return 
    option;
        }
            
        
    std::string raceToString(uint8 race
        {
            
    std::string race_s "Unknown";
            switch (
    race)
            {
                case 
    RACE_HUMAN:            
                    
    race_s "Human";       
                break;
                    
                case 
    RACE_ORC:              
                    
    race_s "Orc";         
                break;
                    
                case 
    RACE_DWARF:           
                    
    race_s "Dwarf";       
                break;
                    
                case 
    RACE_NIGHTELF:         
                    
    race_s "Night Elf";   
                break;
                    
                case 
    RACE_UNDEAD_PLAYER:   
                    
    race_s "Undead";      
                break;
                    
                case 
    RACE_TAUREN:          
                    
    race_s "Tauren";      
                break;
                    
                case 
    RACE_GNOME:            
                    
    race_s "Gnome";       
                break;
                    
                case 
    RACE_TROLL:            
                    
    race_s "Troll";       
                break;
                    
                case 
    RACE_BLOODELF:         
                    
    race_s "Blood Elf";   
                break;
                    
                case 
    RACE_DRAENEI:          
                    
    race_s "Draenei";     
                break;
            }
            return 
    race_s;
        }
            
        
    std::string classToString(uint8 Class) 
        {
            
    std::string Class_s "Unknown";
            switch (Class)
            {
                case 
    CLASS_WARRIOR:         
                    
    Class_s "Warrior";        
                break;
                    
                case 
    CLASS_PALADIN:        
                    
    Class_s "Paladin";       
                break;
                    
                case 
    CLASS_HUNTER:         
                    
    Class_s "Hunter";        
                break;
                    
                case 
    CLASS_ROGUE:          
                    
    Class_s "Rogue";          
                break;
                    
                case 
    CLASS_PRIEST:
                    
    Class_s "Priest";
                break;
                    
                case 
    CLASS_DEATH_KNIGHT:
                    
    Class_s "Death Knight";
                break;
                    
                case 
    CLASS_SHAMAN
                    
    Class_s "Shaman";       
                break;
                    
                case 
    CLASS_MAGE
                    
    Class_s "Mage";          
                break;
                    
                case 
    CLASS_WARLOCK
                    
    Class_s "Warlock";       
                break;
                    
                case 
    CLASS_DRUID:          
                    
    Class_s "Druid";          
                break;
            }
            return 
    Class_s;
        }
            
        
    std::string getPlayerStatus(uint32 guid
        {
            
    Player *player sObjectAccessor->FindPlayer(guid);
            if(!
    player)
                return 
    "Offline";
            if(
    player->isAFK()) 
                return 
    "Online, <AFK> " player->afkMsg
            if(
    player->isDND()) 
                return 
    "Online, <Busy> " player->dndMsg;
            return 
    "Online";
        }
            
        
    std::string getWinPercent(uint32 winsuint32 losses)
        {
            
    uint32 totalGames wins losses;
            if (
    totalGames == 0)
                return 
    "0%";
                
            
    std::stringstream buf;
            
    uint32 percentage = (wins 100) / totalGames;
            
    buf << percentage << "%";
            return 
    buf.str();
        }

        public:
            
    arena_top_teams() : CreatureScript("arena_top_teams"){}
            
        
    bool OnGossipHello(Player *playerCreature *creature)
        {
            
    player->ADD_GOSSIP_ITEM(4,"|cff00ff00|TInterface\\icons\\spell_chargepositive:26|t|r How this npc work?"GOSSIP_SENDER_MAINARENA_HELP);
            
    player->ADD_GOSSIP_ITEM(4,"|cff00ff00|TInterface\\icons\\Achievement_Arena_2v2_7:26|t|r Top 10: 2v2 Arena"GOSSIP_SENDER_MAINARENA_2V2_LADDER);
            
    player->ADD_GOSSIP_ITEM(4,"|cff00ff00|TInterface\\icons\\Achievement_Arena_3v3_7:26|t|r Top 10: 3v3 Arena"GOSSIP_SENDER_MAINARENA_3V3_LADDER);
            
    player->ADD_GOSSIP_ITEM(4,"|cff00ff00|TInterface\\icons\\Achievement_Arena_5v5_7:26|t|r Top 10: 5v5 Arena"GOSSIP_SENDER_MAINARENA_5V5_LADDER);
            
    player->ADD_GOSSIP_ITEM(4,"|cff00ff00|TInterface\\icons\\spell_chargenegative:26|t|r Nevermind"GOSSIP_SENDER_MAINARENA_GOODBYE);
            
    player->SEND_GOSSIP_MENU(90085creature->GetGUID());
            return 
    true;
        }
            
        
    bool OnGossipSelect(PlayerplayerCreaturecreatureuint32 /*uiSender*/uint32 uiAction
        {
            
    player->PlayerTalkClass->ClearMenus();
            switch(
    uiAction
            {
                case 
    ARENA_GOODBYE:
                {
                    
    player->PlayerTalkClass->SendCloseGossip();
                    break;
                }

                case 
    ARENA_HELP:
                {
                    
    ChatHandler(player->GetSession()).PSendSysMessage("|cffff6060[Information]:|r This npc show server gladiators (Top 10).Simple click on team name and see team details");
                    break;
                }

                case 
    ARENA_2V2_LADDER:
                case 
    ARENA_5V5_LADDER:
                case 
    ARENA_3V3_LADDER:
                {
                    
    uint32 teamType optionToTeamType(uiAction);
                    
    QueryResult result CharacterDatabase.PQuery("SELECT arenaTeamId, name, rating FROM arena_team WHERE type = '%u' ORDER BY rating DESC LIMIT %u;"teamTypeARENA_MAX_RESULTS);
                        
                    if(!
    result
                    {
                        
    player->ADD_GOSSIP_ITEM(7"Nevermind"GOSSIP_SENDER_MAINARENA_GOODBYE);
                        
    player->SEND_GOSSIP_MENU(1creature->GetGUID());
                    } 
                    else
                    {
                        
    std::string name;
                        
    uint32 teamIdratingrank 1;
                        
    player->ADD_GOSSIP_ITEM(0,"Top Arena List - Gladiators:"GOSSIP_SENDER_MAINARENA_GOODBYE);
                        do 
                        {
                            
    Field *fields result->Fetch();
                            
    teamId fields[0].GetUInt32();
                            
    name fields[1].GetString();
                            
    rating fields[2].GetUInt32();
                                
                            
    std::stringstream buffer;
                            
    buffer << rank << ". " << name;
                            
    buffer << ": " << "|cFF1E90FF" << rating << "|r" << " rating!";
                            
    player->ADD_GOSSIP_ITEM(4buffer.str(), GOSSIP_SENDER_MAINARENA_START_TEAM_LOOKUP teamId);
                                
                            
    rank++;
                        } 
                        while(
    result->NextRow());
                        
    player->ADD_GOSSIP_ITEM(7"Nevermind"GOSSIP_SENDER_MAINARENA_GOODBYE);
                        
    player->SEND_GOSSIP_MENU(90086creature->GetGUID());
                    }
                    break;
                }
                
                default:
                {
                    if (
    uiAction ARENA_START_TEAM_LOOKUP
                    {
                        
    uint32 teamId uiAction ARENA_START_TEAM_LOOKUP;
                        
    QueryResult result CharacterDatabase.PQuery("SELECT name, rating, seasonWins, seasonGames - seasonWins, weekWins, weekGames - weekWins, rank, captainGuid , type FROM arena_team WHERE arenaTeamId = '%u'"teamId);
                            
                        if(!
    result
                        {
                            
    player->GetSession()->SendNotification("Arena team not found...");
                            
    player->PlayerTalkClass->SendCloseGossip();
                            return 
    true;
                        }
                            
                        
    Field *fields result->Fetch();
                        
    std::string name fields[0].GetString();
                        
    uint32 rating fields[1].GetUInt32();
                        
    uint32 seasonWins fields[2].GetUInt32();
                        
    uint32 seasonLosses fields[3].GetUInt32();
                        
    uint32 weekWins fields[4].GetUInt32();
                        
    uint32 weekLosses fields[5].GetUInt32();
                        
    uint32 rank fields[6].GetUInt32();
                        
    uint32 captainGuid fields[7].GetUInt32();
                        
    uint32 type fields[8].GetUInt32();
                        
    uint32 parentOption teamTypeToOption(type);
                            
                        
    std::string seasonWinPercentage getWinPercent(seasonWinsseasonLosses);
                        
    std::string weekWinPercentage getWinPercent(weekWinsweekLosses);
                            
                        
    std::stringstream buf;
                        
    buf << "Team Name: " << "|cFF1E90FF" << name << "|r";
                        
    player->ADD_GOSSIP_ITEM(7buf.str(), GOSSIP_SENDER_MAINparentOption);
                        
    buf.str("");
                        
                        
    buf << "Rating: " << "|cFF1E90FF" << rating << "|r" << " (Rank: " << "|cFF1E90FF" << rank << "|r" << ", Type: " << "|cFF1E90FF" << type << "v" << type << "|r"")";
                        
    player->ADD_GOSSIP_ITEM(4buf.str(), GOSSIP_SENDER_MAINparentOption);
                        
    buf.str("");
                        
                        
    buf << "Total Week: " << "|cFF1E90FF" << weekWins << "-" << weekLosses << "|r"" (" << "|cFF1E90FF" << weekWinPercentage << "|r" << "win)"
                        
    player->ADD_GOSSIP_ITEM(4buf.str(), GOSSIP_SENDER_MAINparentOption);
                        
    buf.str("");
                        
                        
    buf << "Total Season: " << "|cFF1E90FF" << seasonWins << "-" << seasonLosses << "|r" << " (" << "|cFF1E90FF" << seasonWinPercentage << "|r" << " win)"
                        
    player->ADD_GOSSIP_ITEM(4buf.str(), GOSSIP_SENDER_MAINparentOption);
                            
                        
    QueryResult members CharacterDatabase.PQuery("SELECT  a.guid, a.personalRating, a.weekWins, a.weekGames - a.weekWins, a.seasonWins, a.seasonGames - a.seasonWins, c.name, c.race, c.class, c.level FROM arena_team_member a LEFT JOIN characters c ON c.guid = a.guid WHERE arenaTeamId = '%u' ORDER BY a.guid = '%u' DESC, a.seasonGames DESC, c.name ASC"teamIdcaptainGuid);
                        if(!
    members
                        {
                            
    player->ADD_GOSSIP_ITEM(7"No team members found...?"GOSSIP_SENDER_MAINparentOption);
                        } 
                        else 
                        {
                            
    uint32 memberPos 1;
                            
    uint32 memberCount members->GetRowCount();
                            
    uint32 guidpersonalRatinglevel;
                            
    std::string namerace, Class;
                                
                            
    buf.str("");
                            
    buf << "      --- " << memberCount << " team" << ((memberCount == 1) ? " member" " members") << " found" << " ---";
                            
    player->ADD_GOSSIP_ITEM(0buf.str(), GOSSIP_SENDER_MAINparentOption);
                            do 
                            {
                                
    fields members->Fetch();
                                
    guid fields[0].GetUInt32();
                                
    personalRating fields[1].GetUInt32();
                                
    weekWinsfields[2].GetUInt32();
                                
    weekLosses fields[3].GetUInt32();
                                
    seasonWins fields[4].GetUInt32();
                                
    seasonLosses fields[5].GetUInt32();
                                
    name fields[6].GetString();
                                
    race raceToString(fields[7].GetUInt8());
                                Class = 
    classToString(fields[8].GetUInt8());
                                
    level fields[9].GetUInt32();
                                    
                                
    seasonWinPercentage getWinPercent(seasonWinsseasonLosses);
                                
    weekWinPercentage getWinPercent(weekWinsweekLosses);
                                    
                                
    buf.str(""); 
                                
    buf << memberPos << ". "
                                if (
    guid == captainGuid
                                    
    buf <<  "Team Captain ";
                                    
                                
    buf << name << ", " << getPlayerStatus(guid);
                                
    player->ADD_GOSSIP_ITEM(7buf.str(), GOSSIP_SENDER_MAINparentOption);
                                
    buf.str("");
                                
                                
    buf << race << " " << Class << ", " << "|cFF1E90FF" << personalRating << "|r" << " personal rating!";
                                
    player->ADD_GOSSIP_ITEM(4buf.str(), GOSSIP_SENDER_MAINparentOption);
                                
    buf.str("");
                                
                                
    buf << "Week: " << "|cFF1E90FF" << weekWins << "-" << weekLosses << "|r" << " (" << "|cFF1E90FF" << weekWinPercentage << "|r" << " win), " << "|cFF1E90FF" << (weekWins weekLosses) << "|r" << " played!"
                                
    player->ADD_GOSSIP_ITEM(4buf.str(), GOSSIP_SENDER_MAINparentOption);
                                
    buf.str("");
                                
                                
    buf << "Season: " << "|cFF1E90FF" << seasonWins << "-" << seasonLosses << "|r" << " (" << "|cFF1E90FF" << seasonWinPercentage << "|r" << " win), " << "|cFF1E90FF" << (seasonWins seasonLosses) << "|r" << " played!"
                                
    player->ADD_GOSSIP_ITEM(4buf.str(), GOSSIP_SENDER_MAINparentOption);
                                
    memberPos++;
                            } 
                            while(
    members->NextRow());
                        }
                        
    player->SEND_GOSSIP_MENU(90087creature->GetGUID());
                    }
                }
            }
            return 
    true;
        }
    };

    void AddSC_arena_top_teams()
    {
        new 
    arena_top_teams();

    موفق باشید...

    کاربر مقابل پست Mr_Mohammad عزیز را پسندیده است:

    Nightprince (11-09-2014)

    ویرایش توسط Mr_Mohammad : 11-09-2014 در ساعت 11:09 AM
    مشکل ما اینه که میخوایم تو دنیایی مجازی کاربر برتر بشیم
    که اگه یه روز اینترنت نداشته باشیم فراموزش میشیم
    داداش گلم
    سعی کن تو دنیای واقعی ت برتر باشی
    نه اینجا که یه مشت بچه مچه شدن شاخ

  2. # ADS
    سیستم تبلیغات
    تاریخ عضویت
    01/01/2014
    نوشته ها
    پستی ندارد.
     

  3. #2

    شماره عضویت
    92
    تاریخ عضویت
    Dec 2014
    محل سکونت
    گلستان
    نوشته ها
    97
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پچ
    پچ مورد علاقه
    پسندیده : 53
    مورد پسند : 56 بار در 29 پست
    سیستم عامل و مرورگر:
    این اسکریپ رو برای اخرین ورژن اپدیت کنید اررور میده
    هیچ چیز انی نیست که در نگاه اول به نظر میرسد (اهورا)

  4. #3

    شماره عضویت
    548
    تاریخ عضویت
    Jul 2015
    نوشته ها
    9
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پسندیده : 14
    مورد پسند : 1 بار در 1 پست
    سیستم عامل و مرورگر:
    این توی world بریزیم ؟

  5. #4
    جایزه ها:
    پایان دهنده بحث ها

    شماره عضویت
    8
    تاریخ عضویت
    Oct 2014
    نوشته ها
    255
    نسل
    نسل مورد علاقه
    نژاد
    نژاد  مورد علاقه
    کلاس
     کلاس  مورد علاقه
    سورس
     سورس مورد علاقه
    پسندیده : 110
    مورد پسند : 309 بار در 152 پست
    سیستم عامل و مرورگر:
    نه تو سورس تو پوشه

    src\server\scripts\Custom

    کاربر مقابل پست Ezio عزیز را پسندیده است:

    Nightprince (07-24-2015)

    مردم دنیا زمان رو 3 حالت می بینن

    اما ما ایرانیا 4 حالت:

    زمان گذشته ، زمان حال ، زمان آینده ، زمـــان شـــــــاہ.....!!!!

    Hamed.Wower@yahoo.com

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •