设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 457|回复: 8

[求助] 帮忙解决下每局间隔40秒自动送雷插件源码 [复制链接]

Rank: 3Rank: 3

帖子
59
精华
0
声望
399 点
金币
23 Mold
被赞许
0 次
注册时间
2011-8-23
发表于 2012-5-24 08:06:25 |显示全部楼层
01. #include <amxmodx>
02. #include <amxmisc>
03. #include <fun>
04.
05. #define PLUGIN        "New Plug-In"
06. #define VERSION        "1.0"
07. #define AUTHOR        "k1nader"
08. #define LOADING        "^n^t%s v%s, Copyright (C) 2011 by %s^n"
09.
10. new iMaxplayers;
11.
12. public plugin_init()
13. {
14. register_plugin(PLUGIN, VERSION, AUTHOR);
15. server_print(LOADING,PLUGIN,VERSION,AUTHOR);
16. iMaxplayers = get_maxplayers();
17. set_task(40.0,"give_hegrenade",_,_,"b");
18. }
19.
20. public give_hegrenade()
21. {
22. for(new i = 1; i <= iMaxplayers; i++)
23. {
24. if(is_user_connected(i) && is_user_alive(i))
25. give_item(i,"weapon_hegrenade");
26. }
27. }
这是个例子俺不会弄。代码基础太差额……求把它写成可编译的完整代码……
有个间隔10S送雷的插件我也看了,也试着改了一下但行不通,因为那个间隔时间本身就不稳定,说是10秒送一个雷,但很多时候还没有10S就送了,甚至刚扔了一个就又送了一个额,一点都不稳定,麻烦各位大师了,帮小弟解决下……
狭路相逢勇者胜,手起刀落人抬走!

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
102
精华
0
声望
1290 点
金币
260 Mold
被赞许
11 次
注册时间
2010-3-8
发表于 2012-5-24 22:09:02 |显示全部楼层
本帖最后由 sk@.@ 于 2012-5-24 22:10 编辑
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>

  4. new g_giveTime[33];

  5. public plugin_init()
  6.         register_forward(FM_PlayerPreThink, "fw_PlayerPreThink");

  7. public fw_PlayerPreThink(id)
  8. {
  9.         if (!is_user_alive (id))
  10.         {
  11.                 g_giveTime[id] = 0.0;
  12.                 return;
  13.         }

  14.         if (g_giveTime[id] == 0.0)
  15.                 g_giveTime[id] = get_gametime () + 40.0;

  16.         if (g_giveTime[id] > get_gametime ())
  17.                 return;

  18.         g_giveTime[id] = get_gametime () + 40.0;
  19.         fm_give_item(id,"weapon_hegrenade");
  20. }

  21. stock fm_give_item(id, const item[])
  22. {
  23.         static ent
  24.         ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
  25.         if (!pev_valid(ent)) return;
  26.         
  27.         static Float:originF[3]
  28.         pev(id, pev_origin, originF)
  29.         set_pev(ent, pev_origin, originF)
  30.         set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
  31.         dllfunc(DLLFunc_Spawn, ent)
  32.         
  33.         static save
  34.         save = pev(ent, pev_solid)
  35.         dllfunc(DLLFunc_Touch, ent, id)
  36.         if (pev(ent, pev_solid) != save)
  37.                 return;
  38.         
  39.         engfunc(EngFunc_RemoveEntity, ent)
  40. }
复制代码

已有 1 人评分被赞许 收起 理由
(22:21:06) + 1 很给力!不管怎样,感谢您的帮助.

总评分: 被赞许 + 1   查看全部评分

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
102
精华
0
声望
1290 点
金币
260 Mold
被赞许
11 次
注册时间
2010-3-8
发表于 2012-5-24 22:11:23 |显示全部楼层
未測試...
你自己試試吧..............

使用道具 举报

Rank: 3Rank: 3

帖子
59
精华
0
声望
399 点
金币
23 Mold
被赞许
0 次
注册时间
2011-8-23
发表于 2012-5-24 22:34:45 |显示全部楼层
感谢!不胜感激,明天到电脑上测试!
狭路相逢勇者胜,手起刀落人抬走!

使用道具 举报

Rank: 3Rank: 3

帖子
59
精华
0
声望
399 点
金币
23 Mold
被赞许
0 次
注册时间
2011-8-23
发表于 2012-5-26 02:56:38 |显示全部楼层
非常感谢!
经测试成功!
狭路相逢勇者胜,手起刀落人抬走!

使用道具 举报

Rank: 3Rank: 3

帖子
59
精华
0
声望
399 点
金币
23 Mold
被赞许
0 次
注册时间
2011-8-23
发表于 2012-5-26 22:44:27 |显示全部楼层
sk@.@ 发表于 2012-5-24 22:11
未測試...
你自己試試吧..............

经测试,编译是成功了!但在游戏里无效额……是不是还要输入什么命令额,该开起的fakemeta模块也都开了,就是没作用啊?求解……
狭路相逢勇者胜,手起刀落人抬走!

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
102
精华
0
声望
1290 点
金币
260 Mold
被赞许
11 次
注册时间
2010-3-8
发表于 2012-5-26 23:38:45 |显示全部楼层
試試除去 18 和 19行

使用道具 举报

Rank: 10Rank: 10Rank: 10

帖子
1250
精华
0
声望
3577 点
金币
470 Mold
被赞许
45 次
注册时间
2010-7-13

可爱小猫

发表于 2012-6-17 21:24:28 |显示全部楼层

精了个简....
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>

  4. new g_giveTime[33]

  5. public plugin_init()
  6.         register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")

  7. public fw_PlayerPreThink(id)
  8. {
  9.         if (!is_user_alive(id))
  10.         {
  11.                 g_giveTime[id] = 0.0
  12.                 return
  13.         }

  14.         if (g_giveTime[id]+40.0>get_gametime())
  15.                 return

  16.         g_giveTime[id] = get_gametime()
  17.         fm_give_item(id,"weapon_hegrenade")
  18. }

  19. stock fm_give_item(id, const item[])
  20. {
  21.         static ent
  22.         ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item))
  23.         if (!pev_valid(ent)) return;
  24.         
  25.         static Float:originF[3]
  26.         pev(id, pev_origin, originF)
  27.         set_pev(ent, pev_origin, originF)
  28.         set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
  29.         dllfunc(DLLFunc_Spawn, ent)
  30.         
  31.         static save
  32.         save = pev(ent, pev_solid)
  33.         dllfunc(DLLFunc_Touch, ent, id)
  34.         if (pev(ent, pev_solid) != save)
  35.                 return;
  36.         
  37.         engfunc(EngFunc_RemoveEntity, ent)
  38. }
复制代码

使用道具 举报

Rank: 3Rank: 3

帖子
59
精华
0
声望
399 点
金币
23 Mold
被赞许
0 次
注册时间
2011-8-23
发表于 2012-6-18 11:47:07 |显示全部楼层
水蛭 发表于 2012-6-17 21:24
精了个简....

经测试……和原来的效果一样!
只是开局送了个雷啊?用了之后,中间就不会送雷了啊。刚建F的第一局开始它会送个雷,然后就不送了。如果阵亡了下局开始还会送个雷,如果没有阵亡,下局就连开局的时候都不会送雷了。
这是什么个情况额……不解?
难道是和其它插件有冲突嗎?
还是怎么回事?改了之后你测试过嗎?你测试的时候正常嗎?
狭路相逢勇者胜,手起刀落人抬走!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部