搜索
查看: 9073|回复: 29

[原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

[复制链接]
发表于 2006-8-31 16:57:41 | 显示全部楼层 |阅读模式 来自 中国–海南–海口
实在是受不了论坛里面发布的突破金钱16000上限的插件,说是没有问题,其实都是乱七八糟的,特从我的中家集成娱乐插件里面提出来,单独写一个突破金钱16000上限的插件。不能与中家集成娱乐插件同时使用!因为中家集成娱乐插件里面已经集成有这个功能。

参数只有一个,简单明了:
amx_maxmoney "99999"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2006-8-31 17:02:12 | 显示全部楼层 来自 中国–黑龙江–大庆

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

大哥
我刚刚发的那个已经修正了bug
莫非你没看见  
瀑布汗
回复

使用道具 举报

发表于 2006-8-31 17:03:23 | 显示全部楼层 来自 中国–江苏–南京

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

不要动不动就说别人的东西乱七八糟的,你不公布源码谁知道是你写的啊
回复

使用道具 举报

 楼主| 发表于 2006-8-31 17:05:36 | 显示全部楼层 来自 中国–海南–海口

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

源代码:
//请注意canMoneyChange这个变量的运用,还有set_task(1.0, "MChange",38541,"",0,"b")这个函数,完整地解决了其他金钱无上限插件所遗漏的细节问题。

/*
amx_maxmoney 99999
amx_addmoney #uid addmoney //op给指定用户增加钱,其中addmoney为负数时扣钱

在其他插件里面可以增加下面的一个函数,用此函数来修改用户的钱数,修改幅度不受8000的限制,注意函数里面的变量money为增加的钱数
public addmoney(id, money){
if (is_user_connected(id)){
server_cmd("amx_addmoney #%i %i", get_user_userid(id), money)
server_exec()
}
}

调用方法:给id用户扣13000块钱
addmoney(id, -13000)
*/
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define MONEY_TIER 8000//请不要修改此数值,使用内置cs核心修改金钱函数变化不能超过8000
new g_usermoney[33]//记录用户的金钱总数
new gmsg_Money
new MAX_MONEY = 99999
new canMoneyChange = true
public plugin_init()
{
register_plugin("Zhongjia Unlimited Money","1.0","Zhongjia")

register_event("Money","MoneyChange","b")
register_concmd("amx_addmoney", "addmoney",ADMIN_LEVEL_A,"<authid, nick, or #userid> <? addmoney>")

MAX_MONEY = register_cvar("amx_maxmoney", "99999")

gmsg_Money = get_user_msgid("Money")

set_task(1.0, "MChange",38541,"",0,"b")

return PLUGIN_CONTINUE
}
public client_putinserver(id){
set_task(2.0, "_client_putinserver", id)
return PLUGIN_CONTINUE
}
public _client_putinserver(id){
if (!is_user_connected(id))
return
g_usermoney[id] = cs_get_user_money(id)//每个用户进来的时候,金钱初始化
}
//提供其他插件超过$8000的金钱变化接口,当然不超过8000也可以使用此接口,使用格式为
//server_cmd("amx_addmoney #%i %i", id, addmoney)其中addmoney是负数时为扣钱
//当然管理员op也可以直接在命令行里面执行 amx_addmoney #id addmoney
public addmoney(aid, level, cid){
if ( !cmd_access(aid, level, cid, 3) )
return PLUGIN_HANDLED

new Arg1[32]
new Arg2[9]
read_argv(1, Arg1, 31)
read_argv(2, Arg2, 8)

new money = str_to_num(Arg2)
new id = cmd_target(aid, Arg1, 2)
if (is_user_connected(id))
send_moneymsg(id, g_usermoney[id], g_usermoney[id] + money)

return PLUGIN_HANDLED
}
public MChange(){//检测遗漏事件的金钱变化
new m = 0
new omoney, nmoney
for(new i=1; i<33; i++){
if (is_user_connected(i)){
m = cs_get_user_money(i)
if (m != MONEY_TIER && m != g_usermoney){
omoney = g_usermoney
nmoney = (g_usermoney > MONEY_TIER) ? (g_usermoney - (MONEY_TIER - m)) : m
send_moneymsg(i, omoney, nmoney)
}
}
}
}
public MoneyChange(id){//cs核心金钱改变事件
if (canMoneyChange)
set_task(0.0, "_MoneyChange", id)
return PLUGIN_CONTINUE
}
public _MoneyChange(id){
if(!is_user_connected(id))
return
new n = (g_usermoney[id] >= MONEY_TIER) ? MONEY_TIER : g_usermoney[id]
send_moneymsg(id, g_usermoney[id], g_usermoney[id] + (cs_get_user_money(id) - n))
}
stock send_moneymsg(id, omoney, umoney){
//控制金钱变化在0--MAX_MONEY之间变化
umoney = (umoney < 0)? 0: umoney
umoney = (umoney > MAX_MONEY)? MAX_MONEY : umoney

//记录金钱总数(显示出来的)
g_usermoney[id] = umoney

//设置cs核心内置(不显示的)金钱总数
new b = (umoney < MONEY_TIER)? umoney : MONEY_TIER
canMoneyChange = false
cs_set_user_money(id, b, 0)
canMoneyChange = true

//显示金钱总数
message_begin( MSG_ONE , gmsg_Money , {0,0,0}, id)
write_long(omoney)
write_byte(0)
message_end()

message_begin( MSG_ONE , gmsg_Money , {0,0,0}, id)
write_long(umoney)
write_byte(1)
message_end()
}
回复

使用道具 举报

发表于 2006-8-31 17:09:15 | 显示全部楼层 来自 中国–江苏–南京

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

Post by zhongjia
晕,我就公布一下源码吧,看看一下是不是我原创?

说句心里话,只要别人发布过的类似的,你怎么写都不算原创,因为不是你自己想出来的,你也脱离不了原作者的框架,最多只是让它更完美而已。有现成的构思改程序和自己构思出新的东西完全是2码事
回复

使用道具 举报

 楼主| 发表于 2006-8-31 17:10:56 | 显示全部楼层 来自 中国–海南–海口

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

Post by 52yz
说句心里话,只要别人发布过的类似的,你怎么写都不算原创,因为不是你自己想出来的,你也脱离不了原作者的框架,最多只是让它更完美而已。有现成的构思改程序和自己构思出新的东西完全是2码事

我写的就灵,别人写的灵不灵反正我没看到,算不算我原创?
回复

使用道具 举报

 楼主| 发表于 2006-8-31 17:14:03 | 显示全部楼层 来自 中国–海南–海口

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

???
版主不让我发源码了?点击管理附件按钮怎么毫无反应?我倒……
回复

使用道具 举报

 楼主| 发表于 2006-8-31 17:18:00 | 显示全部楼层 来自 中国–海南–海口

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

Post by ali_zkz
大哥
我刚刚发的那个已经修正了bug
莫非你没看见
瀑布汗

我看了你那个插件的源码,沿用的还是之前有问题的那套思路,或许在cs基础的金钱消费上能正常,但是如果其他amxx插件也消费金钱,其显示就不正常了。想突破16000上限的话,还是老老实实用我中家的这个吧。

哈哈,我是不是太嚣张了?
回复

使用道具 举报

发表于 2006-8-31 17:34:16 | 显示全部楼层 来自 中国–黑龙江–大庆

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

Post by zhongjia
我看了你那个插件的源码,沿用的还是之前有问题的那套思路,或许在cs基础的金钱消费上能正常,但是如果其他amxx插件也消费金钱,其显示就不正常了。想突破16000上限的话,还是老老实实用我中家的这个吧。

哈哈,我是不是太嚣张了?
我没太明白
你的意思是在cs里好使,别的mod就不一定了?
回复

使用道具 举报

发表于 2006-8-31 17:50:34 | 显示全部楼层 来自 中国–湖北–襄阳

回复: [原创]受不了别人发布的烂突破金钱上限的插件,破例写一个

生不带来死不带去的东西值得这么个争法???
16000我都嫌多了。。。
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表