关灯
开启左侧

魔兽变态sf中的PVP从玩家身上掉落的代码

  [复制链接]
admin实名认证 发表于 2016-4-18 22:49:47 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
玩家PVP随机从包里面掉落某个物品给胜利者(自己先设置conf)貌似是M端的代码?不记得了

if (sWorld.getPvpLoot(PLAYER_LOOT_ENABLE))        {
        if (looterPlr->getLevel() - getLevel() < sWorld.getPvpLoot(PLAYER_LOOT_LEVEL_DIFF))
        {
            uint32  gold = (uint32)( urand(50, 150) * 0.016f * pow( ((float)bones->loot.gold)/5.76f, 2.5f) * sWorld.getRate(RATE_DROP_MONEY) * sWorld.getPvpLoot(PLAYER_LOOT_MONEY) );
            if (GetMoney() >= gold)
            {
                SetMoney(GetMoney()-gold);
                bones->loot.gold = gold;
                ChatHandler(this).PSendSysMessage( LANG_PVP_LOSS_MONEY_MESSAGE, UTF8Cn::GetNameLink(looterPlr->GetName()).c_str(), gold/10000 );
                ChatHandler(looterPlr).PSendSysMessage( LANG_PVP_WIN_MONEY_MESSAGE, UTF8Cn::GetNameLink(this->GetName()).c_str(), gold/10000 );
            }
            else
                bones->loot.gold = 0;

            if ( sWorld.getPvpLoot(PLAYER_LOOT_ITEM_ON_OFF))
            {
                srand((unsigned)time(0));

                                uint32 BAGID=(rand()% 4) + 19;  //想主的那个背包掉,就随机5 当是5时值定BAGID=255就行了,主背包最右边的是255,其它是19-22
                                Bag *pBag;
                                pBag = (Bag*)GetItemByPos( INVENTORY_SLOT_BAG_0, BAGID );       
                                Item * item = GetItemByPos(BAGID,rand()%(pBag->GetBagSize()));//取随机包里的随机位置


                                if(item && pBag){
                                uint32  itemid = item->GetEntry();
                                ItemPrototype const *pProto = objmgr.GetItemPrototype( itemid );
                if(pProto &&  itemid != Hearthstone && itemid != Itemteleport && pProto->Bonding ==0)
                {
                    DestroyItemCount(itemid,1,true);
                    LootStoreItem lootitem=LootStoreItem(itemid,100,0,0,1,1);
                    lootitem.needs_quest = 0;
                    bones->loot.items.push_back(LootItem(lootitem));
                    bones->loot.unlootedCount++;

                    std::string itemname;
                                        itemname=pProto->Name1;

                    ChatHandler(this).PSendSysMessage( LANG_PVP_LOSS_ITEM_MESSAGE, UTF8Cn::GetNameLink(looterPlr->GetName()).c_str(), UTF8Cn::GetItemLink(UTF8Cn::ConvertStr(itemid),itemname).c_str() );
                    ChatHandler(looterPlr).PSendSysMessage( LANG_PVP_WIN_ITEM_MESSAGE, UTF8Cn::GetNameLink(this->GetName()).c_str(), UTF8Cn::GetItemLink(UTF8Cn::ConvertStr(itemid),itemname).c_str() );
                }

                                }


            }
        }
        else    bones->loot.gold = 0;
    }

标签:魔兽
 
VIP介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

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

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

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

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

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

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

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

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

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

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

0关注

5粉丝

3421帖子

排行榜
作者专栏

QQ交流群&&微信订阅号

QQ交流群

微信订阅号

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

Www.523Play.Com

在线管理员QQ:1589479632

邮箱:Email@523play.com

QQ交流群:558936238

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