cs插件吧 关注:8,267贴子:88,660
  • 10回复贴,共1
求助

求助,如何改这个

只看楼主收藏回复

如何把这个代码改成:购买武器后,低于500,+300金币
#include <amxmodx>
#include <cstrike>
#include <hamsandwich>
#define PLUGIN "xxx"
#define VERSION "1.0"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, "Wilian M.")
RegisterHam(Ham_Spawn, "player", "xHam_Spawn", 1)
}
public xHam_Spawn(id)
{
if(is_user_connected(id) && is_user_alive(id))
{
new iMoney = cs_get_user_money(id)
if(iMoney < 500)
cs_set_user_money(id, iMoney + 300)
}
}


IP属地:江苏来自Android客户端1楼2024-11-19 02:33回复
    你这hook的是玩家复活事件而不是武器购买事件


    IP属地:广东来自Android客户端3楼2024-11-19 02:36
    收起回复
      目前版本应该没有 cs_buy forward
      提供一个思路:
      Ham_AddPlayerItem 挂钩玩家获取武器事件
      该事件限制在购买区域及购买时间内


      IP属地:浙江4楼2024-11-19 16:44
      收起回复
        事件item_purchase


        IP属地:广西来自Android客户端5楼2024-11-19 19:42
        回复
          // CS 1.6 金钱补助插件
          // 作者:ff1196816
          #include <amxmodx>
          #include <cstrike>
          #include <hamsandwich>
          // 定义出生地检测范围(半径)
          #define SPAWN_RADIUS 300.0
          // 插件初始化
          public plugin_init() {
          register_plugin("Money Assist Plugin", "1.0", "ff1196816");
          register_event("ResetHUD", "event_spawn", "be", "1=1"); // 玩家复活事件
          set_task(2.0, "check_money", _, _, _, "b"); // 定期检查玩家金钱
          }
          // 玩家复活时记录其位置(出生地)
          new Float:spawnLocation[33][3]; // 每位玩家的出生地坐标
          public event_spawn(id) {
          if (!is_user_alive(id)) return;
          // 获取玩家当前位置(出生地)
          new Float:origin[3];
          pev(id, pev_origin, origin);
          // 保存出生地坐标
          spawnLocation[id][0] = origin[0];
          spawnLocation[id][1] = origin[1];
          spawnLocation[id][2] = origin[2];
          }
          // 定期检查金钱
          public check_money() {
          for (new id = 1; id <= maxplayers; id++) {
          if (!is_user_connected(id) || !is_user_alive(id)) continue;
          // 检查玩家是否在出生地
          new Float:currentPosition[3];
          pev(id, pev_origin, currentPosition);
          // 计算玩家距离出生地的距离
          new Float:distance = vector_distance(currentPosition, spawnLocation[id]);
          if (distance > SPAWN_RADIUS) continue; // 如果玩家离开出生地,则不再检查
          // 获取玩家当前金钱
          new money = cs_get_user_money(id);
          // 如果金钱低于 500,则补助 300
          if (money < 500) {
          cs_set_user_money(id, money + 300, 1);
          client_print(id, print_chat, "[系统] 您的金钱少于 $500,系统已补助 $300!");
          }
          }
          }
          // 计算两点间的距离
          Float:vector_distance(const Float:v1[3], const Float:v2[3]) {
          return floatsqrt(sq(v1[0] - v2[0]) + sq(v1[1] - v2[1]) + sq(v1[2] - v2[2]));
          }
          // 平方函数
          Float:sq(Float:value) {
          return value * value;
          }


          IP属地:湖北来自iPhone客户端6楼2025-01-25 10:08
          回复