zoukankan      html  css  js  c++  java
  • M端普通玩家积分交易系统参考

    下面是一个涉及到积分系统交易的GM命令的函数参考。函数默认是MANGOS服务端的。不过你可以通过修改来支持T端的
    
    GetAccountJf() 这个函数是自己增加的,主要是一个活的自己角色或则账号的积分数量的函数,。这里就不交代了
    
    
     //普通玩家积分交易系统
    bool ChatHandler::HandleTradeCommand(const char * args) {
    if (!*args)
    return false;
    Player *target = getSelectedPlayer();
    if(!target)
    {
    SendSysMessage(LANG_PLAYER_NOT_FOUND);
    return true;
    }
    
    uint32 guidtrade = 0;
    if(target == m_session->GetPlayer())
    {
    SendSysMessage(LANG_COMMAND_TRADESELF); 
    return true;
    guidtrade = m_session->GetPlayer()->GetSession()->GetAccountId(); //获得自己的ID号
    }
    
    
    uint32 guid = 0; //定义设置的用户ID
    if(target)
    {
    guid = target->GetSession()->GetAccountId(); //获得该玩家的注册ID号
    }
    
    uint32 amount = (uint32)atoi(args); 
    uint32 amountself = player->GetAccountJf(guidtrade);
    uint32 amountother = m_session->GetPlayer()->GetAccountJf(m_session->GetPlayer()->GetSession()->GetAccountId());
    if (amount < 0 || amount > amountself)
    {
    SendSysMessage(LANG_BAD_VALUE);
    return true;
    }
    uint32 amountpointadd = amountother + amount;
    
    loginDatabase.PExecute("UPDATE `account` SET `jf` = '%u' WHERE `id` = '%u'",amountpointless,guidtrade); //交易发送方最后点数
    loginDatabase.CommitTransaction();
    loginDatabase.PExecute("UPDATE `account` SET `jf` = '%u' WHERE `id` = '%u'",amountpointadd,guid); //被交易方最后点数
    loginDatabase.CommitTransaction();
    
    PSendSysMessage(LANG_COMMAND_MODIFY_INTEGRAL, target->GetName(), amount);
    
    return true;
    }//普通玩家积分交易系统 
  • 相关阅读:
    18.centos7基础学习与积累-004-分区理论
    绑定省份到select控件
    c#编写1-2+3-4……m
    在写按时间段查询的sql语句的时候 一般我们会这么写查询条件:
    二进制移位运算
    构造datatable临时数据
    svn代表四种检出深度
    关于TTS SpeechVoiceSpeakFlags几个值的中文意思?
    user32.dll中的所有函数
    xaml 微软帮助 url
  • 原文地址:https://www.cnblogs.com/needly/p/3751558.html
Copyright © 2011-2022 走看看