关灯
开启左侧

T端魔兽世界私服中竞技场的TOP10的排名NPC系统

  [复制链接]
admin实名认证 发表于 2016-4-28 21:42:00 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
这个是一个T端WOW3.3.5(Trinity-Core)系统的脚本。。主要是对竞技场系统做一个特色的NPC排名展示系统

我们来看看代码是怎么样的!支持3.3.5版本的T端哈!

/*
The Zxtreme - Dev Core
*/

#include "ScriptPCH.h"
#include
#include
#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,  " + player->afkMsg;
        if(player->isDND())
            return "Online,  " + player->dndMsg;
        return "Online";
    }

    std::string getWinPercent(uint32 wins, uint32 losses)
    {
        uint32 totalGames = wins + losses;
        if (totalGames == 0)
            return "0%";

        std::stringstream buf;
        uint32 percentage = (wins * 100) / totalGames;
        buf << percentage << "%";
        return buf.str();
    }

上面是部分代码。全部代码看下面的下载:


游客,如果您要查看本帖隐藏内容请回复
 

精彩评论1

倒序浏览
无毒 发表于 2019-10-7 23:59:14 | 显示全部楼层
 

感谢楼主分享,祝愿吾爱尚玩越来越好!
 
VIP介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

    注册账号后积极发帖的会员
  • 活跃会员

    经常参与各类话题的讨论,发帖内容较有主见
  • 热心会员

    经常帮助其他会员答疑
  • 推广达人

    积极宣传本站,为本站带来更多注册会员
  • 宣传达人

    积极宣传本站,为本站带来更多的用户访问量
  • 灌水之王

    经常在论坛发帖,且发帖量较大
  • 突出贡献

    长期对论坛的繁荣而不断努力,或多次提出建设性意见
  • 优秀版主

    活跃且尽责职守的版主
  • 荣誉管理

    曾经为论坛做出突出贡献目前已离职的版主
  • 论坛元老

    为论坛做出突出贡献的会员

0关注

5粉丝

3421帖子

排行榜
作者专栏

QQ交流群&&微信订阅号

QQ交流群

微信订阅号

吾爱尚玩资源基地永久域名:

Www.523Play.Com

在线管理员QQ:1589479632

邮箱:Email@523play.com

QQ交流群:558936238

Copyright   ©2015-2116  吾爱尚玩资源基地|523play.comPowered by©523Pplay.Com技术支持:吾爱尚玩资源基地