找回密码
 防止广告:仅有QQ可以登录注册

QQ登录

只需一步,快速开始

搜索

工具/补丁 dayz防刷钱代码免费分享,

熊天琪 2020-6-11 17:51:01 显示全部楼层 阅读模式
感谢分享:岁月无声
感谢更新:九幽

代码作者九幽:将代码更新成MOD,这样就不在需要修改init.c
创意工坊地址:防刷钱代码
创意工坊名字:杜绝交易区刷钱



使用方法:将代码放入init.c文件的"void main()"格式下

防刷钱代码:
  1. int getItemAmount(ItemBase item)
  2.         {
  3.                 Magazine mgzn = Magazine.Cast(item);
  4.                                 
  5.                 int itemAmount = 0;
  6.                 if( item.IsMagazine() )
  7.                 {
  8.                         itemAmount = mgzn.GetAmmoCount();
  9.                 }
  10.                 else
  11.                 {
  12.                         itemAmount = QuantityConversions.GetItemQuantity(item);
  13.                 }
  14.                
  15.                 return itemAmount;
  16.         }
  17.         //断开连接时调用
  18.         void OnClientDisconnectedEvent(PlayerIdentity identity, PlayerBase player, int logoutTime, bool authFailed)
  19.         {
  20.                 PlayerBase m_Player = player;
  21.                
  22.                 int currencyAmount = 0;
  23.                
  24.                 array<EntityAI> itemsArray = new array<EntityAI>;
  25.                 m_Player.GetInventory().EnumerateInventory(InventoryTraversalType.PREORDER, itemsArray);

  26.                 ItemBase item;
  27.                
  28.                 for (int i = 0; i < itemsArray.Count(); i++)
  29.                 {
  30.                         Class.CastTo(item, itemsArray.Get(i));

  31.                         if (!item)
  32.                                 continue;

  33.                         for (int j = 0; j < m_Player.m_Trader_CurrencyClassnames.Count(); j++)
  34.                         {
  35.                                 if(item.GetType() == m_Player.m_Trader_CurrencyClassnames.Get(j))
  36.                                 {
  37.                                         currencyAmount += getItemAmount(item) * m_Player.m_Trader_CurrencyValues.Get(j);
  38.                                 }
  39.                         }
  40.                 }
  41.                 if(currencyAmount>50000)
  42.                 {
  43.                         Print(identity.GetName()+" 下线存款:"+currencyAmount+"   guid:"+identity.GetPlainId());
  44.                 }
  45.                 bool disconnectNow = true;
  46.                 if (GetHive() && !authFailed)
  47.                 {                        
  48.                         if (player.IsAlive())
  49.                         {        
  50.                                 if (!m_LogoutPlayers.Contains(player))
  51.                                 {
  52.                                         //Print("[Logout]: New player " + identity.GetId() + " with logout time " + logoutTime.ToString());
  53.                                         GetGame().SendLogoutTime(player, logoutTime);
  54.                                         LogoutInfo params = new LogoutInfo(GetGame().GetTime() + logoutTime * 1000, identity.GetId());
  55.                                         m_LogoutPlayers.Insert(player, params);
  56.                                         disconnectNow = false;               
  57.                                 }
  58.                                 return;
  59.                         }               
  60.                 }
  61.                 if (disconnectNow)
  62.                 {
  63.                         if(player.IsUnconscious() || player.IsRestrained())
  64.                         {
  65.                                 Print("[可能刷钱了]名称: "+identity.GetId()+"  guid:"+identity.GetPlainId());
  66.                                 player.SetAllowDamage(true);
  67.                                 player.SetHealth("", "", 0.0);
  68.                                 if (GetHive())
  69.                                 {
  70.                                         GetHive().CharacterKill(player);
  71.                                 }
  72.                         }        
  73.                         player.Save();
  74.                         Print("[Logout]: New player " + identity.GetId() + " with instant logout");
  75.                         GetGame().SendLogoutTime(player, 0);
  76.                         PlayerDisconnected(player, identity, identity.GetId());
  77.                 }
  78.         }
  79.         //杜绝刷装备
  80.         override void HandleBody(PlayerBase player)
  81.         {
  82.                 if (player.IsAlive() && !player.IsRestrained() && !player.IsUnconscious())
  83.                 {
  84.                         player.Delete();        
  85.                 }
  86.                 else if (player.IsUnconscious() || player.IsRestrained())
  87.                 {
  88.                         player.SetAllowDamage(true);
  89.                         player.SetHealth("", "", 0.0);
  90.                         if (GetHive())
  91.                         {
  92.                                 GetHive().CharacterKill(player);                        
  93.                         }
  94.                 }
  95.         }
复制代码



修改完成例子:

  1. void main()
  2. {
  3.         //INIT WEATHER BEFORE ECONOMY INIT------------------------
  4.         DC_FastTravel.SpawnBoard(1, "3692.1 403.3 5988.1", "163 0 0");//绿山
  5.         DC_FastTravel.SpawnBoard(2, "8349.2 293.3 5996", "280 0 0");//废墟
  6.         DC_FastTravel.SpawnBoard(3, "13568.8 7.3 11142.1", "180 0 0");//rify黑市
  7.         DC_FastTravel.SpawnBoard(4, "961.9 475.3 13832.9", "240 0 0");//狼区
  8.         DC_FastTravel.SpawnBoard(5, "7667.1 298.6 14403.1", "120 0 0");//熊区
  9.         DC_FastTravel.SpawnBoard(6, "7219.4 326.7 11324.5", "40 0 0");//古堡
  10.         DC_FastTravel.SpawnBoard(7, "2763.2 7.4 1973.9", "10 0 0");//监狱岛
  11.         Weather weather = g_Game.GetWeather();

  12.         weather.MissionWeather(false);    // false = use weather controller from Weather.c

  13.         weather.GetOvercast().Set( Math.RandomFloatInclusive(0.4, 0.6), 1, 0);
  14.         weather.GetRain().Set( 0, 0, 1);
  15.         weather.GetFog().Set( Math.RandomFloatInclusive(0.05, 0.1), 1, 0);

  16.         //INIT ECONOMY--------------------------------------
  17.         Hive ce = CreateHive();
  18.         if ( ce )
  19.                 ce.InitOffline();

  20.         //DATE RESET AFTER ECONOMY INIT-------------------------
  21.         int year, month, day, hour, minute;
  22.         int reset_month = 9, reset_day = 20;
  23.         GetGame().GetWorld().GetDate(year, month, day, hour, minute);

  24.         if ((month == reset_month) && (day < reset_day))
  25.         {
  26.                 GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
  27.         }
  28.         else
  29.         {
  30.                 if ((month == reset_month + 1) && (day > reset_day))
  31.                 {
  32.                         GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
  33.                 }
  34.                 else
  35.                 {
  36.                         if ((month < reset_month) || (month > reset_month + 1))
  37.                         {
  38.                                 GetGame().GetWorld().SetDate(year, reset_month, reset_day, hour, minute);
  39.                         }
  40.                 }
  41.         }

  42. int getItemAmount(ItemBase item)
  43.         {
  44.                 Magazine mgzn = Magazine.Cast(item);
  45.                                 
  46.                 int itemAmount = 0;
  47.                 if( item.IsMagazine() )
  48.                 {
  49.                         itemAmount = mgzn.GetAmmoCount();
  50.                 }
  51.                 else
  52.                 {
  53.                         itemAmount = QuantityConversions.GetItemQuantity(item);
  54.                 }
  55.                
  56.                 return itemAmount;
  57.         }
  58.         //断开连接时调用
  59.         void OnClientDisconnectedEvent(PlayerIdentity identity, PlayerBase player, int logoutTime, bool authFailed)
  60.         {
  61.                 PlayerBase m_Player = player;
  62.                
  63.                 int currencyAmount = 0;
  64.                
  65.                 array<EntityAI> itemsArray = new array<EntityAI>;
  66.                 m_Player.GetInventory().EnumerateInventory(InventoryTraversalType.PREORDER, itemsArray);

  67.                 ItemBase item;
  68.                
  69.                 for (int i = 0; i < itemsArray.Count(); i++)
  70.                 {
  71.                         Class.CastTo(item, itemsArray.Get(i));

  72.                         if (!item)
  73.                                 continue;

  74.                         for (int j = 0; j < m_Player.m_Trader_CurrencyClassnames.Count(); j++)
  75.                         {
  76.                                 if(item.GetType() == m_Player.m_Trader_CurrencyClassnames.Get(j))
  77.                                 {
  78.                                         currencyAmount += getItemAmount(item) * m_Player.m_Trader_CurrencyValues.Get(j);
  79.                                 }
  80.                         }
  81.                 }
  82.                 if(currencyAmount>50000)
  83.                 {
  84.                         Print(identity.GetName()+" 下线存款:"+currencyAmount+"   guid:"+identity.GetPlainId());
  85.                 }
  86.                 bool disconnectNow = true;
  87.                 if (GetHive() && !authFailed)
  88.                 {                        
  89.                         if (player.IsAlive())
  90.                         {        
  91.                                 if (!m_LogoutPlayers.Contains(player))
  92.                                 {
  93.                                         //Print("[Logout]: New player " + identity.GetId() + " with logout time " + logoutTime.ToString());
  94.                                         GetGame().SendLogoutTime(player, logoutTime);
  95.                                         LogoutInfo params = new LogoutInfo(GetGame().GetTime() + logoutTime * 1000, identity.GetId());
  96.                                         m_LogoutPlayers.Insert(player, params);
  97.                                         disconnectNow = false;               
  98.                                 }
  99.                                 return;
  100.                         }               
  101.                 }
  102.                 if (disconnectNow)
  103.                 {
  104.                         if(player.IsUnconscious() || player.IsRestrained())
  105.                         {
  106.                                 Print("[可能刷钱了]名称: "+identity.GetId()+"  guid:"+identity.GetPlainId());
  107.                                 player.SetAllowDamage(true);
  108.                                 player.SetHealth("", "", 0.0);
  109.                                 if (GetHive())
  110.                                 {
  111.                                         GetHive().CharacterKill(player);
  112.                                 }
  113.                         }        
  114.                         player.Save();
  115.                         Print("[Logout]: New player " + identity.GetId() + " with instant logout");
  116.                         GetGame().SendLogoutTime(player, 0);
  117.                         PlayerDisconnected(player, identity, identity.GetId());
  118.                 }
  119.         }
  120.         //杜绝刷装备
  121.         override void HandleBody(PlayerBase player)
  122.         {
  123.                 if (player.IsAlive() && !player.IsRestrained() && !player.IsUnconscious())
  124.                 {
  125.                         player.Delete();        
  126.                 }
  127.                 else if (player.IsUnconscious() || player.IsRestrained())
  128.                 {
  129.                         player.SetAllowDamage(true);
  130.                         player.SetHealth("", "", 0.0);
  131.                         if (GetHive())
  132.                         {
  133.                                 GetHive().CharacterKill(player);                        
  134.                         }
  135.                 }
  136.         }

  137. }

  138. class CustomMission: MissionServer
  139. {
  140.         void SetRandomHealth(EntityAI itemEnt)
  141.         {
  142.                 if ( itemEnt )
  143.                 {
  144.                         int rndHlt = Math.RandomInt(55,100);
  145.                         itemEnt.SetHealth("","",rndHlt);
  146.                 }
  147.         }

  148.         override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)
  149.         {
  150.                 Entity playerEnt;
  151.                 playerEnt = GetGame().CreatePlayer(identity, characterName, pos, 0, "NONE");//Creates random player
  152.                 Class.CastTo(m_player, playerEnt);

  153.                 GetGame().SelectPlayer(identity, m_player);

  154.                 return m_player;
  155.         }

  156.         override void StartingEquipSetup(PlayerBase player, bool clothesChosen)
  157.         {
  158.                 EntityAI itemTop;
  159.                 EntityAI itemEnt;
  160.                 ItemBase itemBs;
  161.                 float rand;

  162.                 itemTop = player.FindAttachmentBySlotName("Body");

  163.                 if ( itemTop )
  164.                 {
  165.                         itemEnt = itemTop.GetInventory().CreateInInventory("Rag");
  166.                         if ( Class.CastTo(itemBs, itemEnt ) )
  167.                                 itemBs.SetQuantity(4);

  168.                         SetRandomHealth(itemEnt);

  169.                         string chemlightArray[] = { "Chemlight_White", "Chemlight_Yellow", "Chemlight_Green", "Chemlight_Red" };
  170.                         int rndIndex = Math.RandomInt(0, 4);
  171.                         itemEnt = itemTop.GetInventory().CreateInInventory(chemlightArray[rndIndex]);
  172.                         SetRandomHealth(itemEnt);

  173.                         rand = Math.RandomFloatInclusive(0.0, 1.0);
  174.                         if ( rand < 0.35 )
  175.                                 itemEnt = player.GetInventory().CreateInInventory("Apple");
  176.                         else if ( rand > 0.65 )
  177.                                 itemEnt = player.GetInventory().CreateInInventory("Pear");
  178.                         else
  179.                                 itemEnt = player.GetInventory().CreateInInventory("Plum");

  180.                         SetRandomHealth(itemEnt);
  181.                 }
  182.         }
  183. };

  184. Mission CreateCustomMission(string path)
  185. {
  186.         return new CustomMission();
  187. }
复制代码



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




大神点评33

ascszx 2020-6-11 23:18:08 显示全部楼层
666666666666666666666666666
回复 支持 反对

使用道具 举报

可以666666666
回复 支持 反对

使用道具 举报

114743444 2020-6-12 01:09:29 显示全部楼层
面板服能用不,维姆的
回复 支持 反对

使用道具 举报

myhi8 2020-6-12 01:51:38 显示全部楼层
谢谢大佬无私奉献!
回复 支持 反对

使用道具 举报

myhi8 2020-6-12 02:35:30 显示全部楼层
熊哥,直接复制你的成品代码进去 报错。我截不了图,int getItemAmount(ItemBase item)防刷代码第一行开始报错,说 broken expression missing?
回复 支持 反对

使用道具 举报

xlsj4x 2020-6-12 02:40:50 显示全部楼层
999999999999996666666666666666666666
回复 支持 反对

使用道具 举报

39345427 2020-6-12 03:24:10 显示全部楼层
qweeeeeeeeeeeeeeee
回复 支持 反对

使用道具 举报

a346121699 2020-6-12 10:28:57 显示全部楼层
来学习学习
回复 支持 反对

使用道具 举报

chuunn 2020-6-12 15:31:34 显示全部楼层
谢谢大佬无私奉献!
回复 支持 反对

使用道具 举报

11466805 2020-6-12 22:03:13 显示全部楼层
.............
回复 支持 反对

使用道具 举报

陈李110 2020-6-13 10:18:41 显示全部楼层
6666666666666666666
回复 支持 反对

使用道具 举报

6666666666666666
回复 支持 反对

使用道具 举报

凝眸 2020-6-25 16:03:16 显示全部楼层
本帖最后由 凝眸 于 2020-6-25 16:07 编辑

检查了好几遍,总算写好了。
回复 支持 反对

使用道具 举报

qha006 2020-7-8 01:32:05 显示全部楼层
这个代码 不对 报错~
回复 支持 反对

使用道具 举报

xiaogang 2020-7-22 11:26:17 显示全部楼层
熊大人好!活好!鸡鸡大!哈哈!
回复 支持 反对

使用道具 举报

abd采光 2020-7-27 12:53:39 显示全部楼层
5555555555555555555555555555555555555555555555555555555555555555555555555555
回复 支持 反对

使用道具 举报

小志 2020-7-28 15:22:06 显示全部楼层
165165165+16161
回复 支持 反对

使用道具 举报

贺宇 2020-7-30 21:23:18 显示全部楼层
1额2额2321321321321321321312323
回复 支持 反对

使用道具 举报

97526526 2020-8-6 11:38:48 显示全部楼层
66666666666666666
回复 支持 反对

使用道具 举报

813590500 2020-8-6 15:57:56 显示全部楼层
66666666666666666666666
回复 支持 反对

使用道具 举报

xiaotouxi 2020-8-13 08:44:38 显示全部楼层
sfsadfasdfasdfasdf
回复 支持 反对

使用道具 举报

Muhtarrr 2020-8-26 01:34:31 显示全部楼层
111111111111111111111
回复 支持 反对

使用道具 举报

3ver 2020-9-1 13:09:09 显示全部楼层
666666666666666666666666666666
回复 支持 反对

使用道具 举报

陆云轩 2020-9-20 13:10:48 显示全部楼层
676666666666666666666
回复 支持 反对

使用道具 举报

chen_czb426 2020-9-21 17:22:52 显示全部楼层
学习学习学习学习学习学习学习
回复 支持 反对

使用道具 举报

cz8981160 2020-9-28 16:35:30 显示全部楼层
jkhjkhjkhjkhjfkfghjk
回复 支持 反对

使用道具 举报

qcalmv 2020-10-25 01:56:59 显示全部楼层
00000000000000000000000000000000000000
回复 支持 反对

使用道具 举报

DcrClub 2020-10-26 01:25:41 显示全部楼层
断开连接声明?
回复 支持 反对

使用道具 举报

DcrClub 2020-10-26 01:26:46 显示全部楼层
这个是做的 刷钱提醒吧
回复 支持 反对

使用道具 举报