求助:玩家死亡后变急救包插件
最近在Super Hero的官方网上找到了一个很有趣的英雄,他的技能有点像七龙珠里的魔人布欧(sh_majinbuu.amxx),可以把玩家打死后让其变成巧克力(急救包),无论谁去捡起掉在地上的急救包都可以增加50HP!我个人认为这个插件有三个好处:
1. 因为玩家死亡后尸体变成急救包了,因此可以避免死后被人鞭尸。
2. 同时因为急救包可以补充50HP,通过吃急救包,HP会一直增加,甚至可以突破100HP而无上限!因此大家就不会因为一番搏杀后由于血太少而无力回天了。
3. 死后玩家的尸体也是能做出贡献的,“落叶不是无情物,化作春泥更护花”,呵呵,他补充了别人的HP,物尽其用啊!
所以,我想请高手帮忙把这个英雄插件改成普通的大家都能共享的插件,改后的插件可以增加以下指令:
amx_medkit 1 // 插件开关控制
amx_medkithealth 50 //急救包补充的血值(默认是50)
向辛勤的插件幕后编译者致以最崇高的敬意!
回复: 求助:玩家死亡后变急救包插件
方面起见,我发些图片上来。回复: 求助:玩家死亡后变急救包插件
不知道有人尝试过把超级英雄插件改成普通的共享插件没?其实Super Hero官方网的超级英雄大概有200多个,并且各个英雄插件之间是相互独立的,其中某些单个插件就我个人认为是很优秀的。
唉,问题难就难在想要把它们转化成普通插件可不是一件容易的事情啊!尤其是对于一个菜鸟来说......:burn:
回复: 求助:玩家死亡后变急救包插件
我自己试着把插件的源代码改了一下,但无法成功地在Amxmodx1.76d下编译出来。我知道里面肯定还有很多地方没有修改好,麻烦大家帮帮忙了......:burn:*/
#include <amxmodx>
#include <cstrike>
#include <csx>
// GLOBAL VARIABLES
#define Smoke
//----------------------------------------------------------------------------------------------
public plugin_init()
{
// Plugin Info
register_plugin("AMX Medkit","1.0","duper/Rockell")
// DO NOT EDIT THIS FILE TO CHANGE CVARS, USE THE SHCONFIG.CFG
register_cvar("amx_medkit", "1" )
register_cvar("amx_medkithealth", "50")
// REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS)
// INIT
register_event("ResetHUD", "newRound","b")
register_event("DeathMsg","deathevent","a")
}
//----------------------------------------------------------------------------------------------
public newRound()
{
new chocolate = find_ent_by_class(-1, "chocolate")
while(chocolate) {
remove_entity(chocolate)
chocolate = find_ent_by_class(chocolate, "chocolate")
}
}
//----------------------------------------------------------------------------------------------
public deathevent()
{
new killer = read_data(1)
new victim = read_data(2)
if ( killer != victim )
{
if ( gHasBuuPower && is_user_alive(killer) )
{
createChocolate(victim)
new aimvec
get_user_origin(victim, aimvec)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(23)
write_coord(aimvec)
write_coord(aimvec)
write_coord(aimvec)
write_short(Smoke)
write_byte(001)
write_byte(65)
write_byte(200)
message_end()
aimvec -= 100
set_user_origin(victim, aimvec)
}
}
return PLUGIN_HANDLED
}
//----------------------------------------------------------------------------------------------
public createChocolate(victim)
{
new Float:vAim, Float:vOrigin
entity_get_vector(victim, EV_VEC_origin, vOrigin)
VelocityByAim(victim, random_num(2, 4), vAim)
vOrigin += vAim
vOrigin += vAim
vOrigin += 30.0
new chocolate = create_entity("info_target")
entity_set_string(chocolate, EV_SZ_classname, "chocolate")
entity_set_model(chocolate, "models/w_medkit.mdl")
entity_set_size(chocolate, Float:{-2.5, -2.5, -1.5}, Float:{2.5, 2.5, 1.5})
entity_set_int(chocolate, EV_INT_solid, 2)
entity_set_int(chocolate, EV_INT_movetype, 6)
entity_set_vector(chocolate, EV_VEC_origin, vOrigin)
}
//----------------------------------------------------------------------------------------------
public plugin_precache() {
precache_model("models/w_medkit.mdl")
Smoke = precache_model("sprites/wall_puff4.spr")
}
//----------------------------------------------------------------------------------------------
public pfn_touch(ptr, ptd)
{
if(!is_valid_ent(ptd) || !is_valid_ent(ptr))
return PLUGIN_CONTINUE
if(!is_user_connected(ptd) || !is_user_alive(ptd))
return PLUGIN_CONTINUE
if( !gHasBuuPower )
return PLUGIN_CONTINUE
new classname
entity_get_string(ptr, EV_SZ_classname, classname, 31)
if(equal(classname, "chocolate"))
{
new gOrigHealth = get_user_health(ptd)
new health = gOrigHealth + get_cvar_num("buu_chocolatehealth")
set_user_health(ptd, health)
remove_entity(ptr)
}
return PLUGIN_CONTINUE
}
回复: 求助:玩家死亡后变急救包插件
呵呵,整整花了我两个多个小时,终于改好了!(唉,真是求人不如求己啊......):burn:这个插件是在Amxmodx1.76d下编译成功的,修改后的源代码如有什么问题,欢迎高手不吝赐教和斧正!
回复: 求助:玩家死亡后变急救包插件
今天测试了一下插件,还真发现了问题:就是当玩家被人打死后,第一人称的主视觉画面会变得支离破碎,同时还会出现别的玩家在空中走动的错误画面,并且这种情况会持续几秒钟。如果玩家以第三方的视觉观察别的玩家时,当别的玩家阵亡时主视觉的画面也会出现类似的情况。因此今天对插件又做了修改,即让玩家死后的尸体不再消失,同时死亡的瞬间会掉出一个急救包,别的玩家捡了依然可以增加HP,这样一来就可以解决上面的BUG了!这次修改也解决了尽管玩家在控制台输入了“amx_medkit 0”这个关闭命令,但玩家死亡时依然会掉出急救包的BUG!
另外,当玩家捡起急救包时,增加了相应的音效提示。
当然,要是大家还有什么更好的建议,也不妨自己去作修改。
回复: 求助:玩家死亡后变急救包插件
Post by Osker Lee今天测试了一下插件,还真发现了问题:就是当玩家被人打死后,第一人称的主视觉画面会变得支离破碎,同时还会出现别的玩家在空中走动的错误画面,并且这种情况会持续几秒钟。如果玩家以第三方的视觉观察别的玩家时,当别的玩家阵亡时主视觉的画面也会出现类似的情况。
因此今天对插件又做了修改,即让玩家死后的尸体不再消失,同时死亡的瞬间会掉出一个急救包,别的玩家捡了依然可以增加HP,这样一来就可以解决上面的BUG了!这次修改也解决了尽管玩家在控制台输入了“amx_medkit 0”这个关闭命令,但玩家死亡时依然会掉出急救包的BUG!
另外,当玩家捡起急救包时,增加了相应的音效提示。
当然,要是大家还有...
尸体不消失的话会让服务器资源占用很大,客户端FPS值会爆减
回复: 求助:玩家死亡后变急救包插件
呵呵,对插件又作了些许调整,附带了amxmod.inc文件,不然是无法编译的!:byebye:回复: 求助:玩家死亡后变急救包插件
辛苦了!!!!!努力~……
回复: 求助:玩家死亡后变急救包插件
支持辛苦了
..............