Jetpack
Lehekülg 1, lehekülgi kokku 1 • Share
- DateNJuunior
- Liitus : 14/01/2013
Postitusi : 44
Tervist, tahaks seda: https://forums.alliedmods.net/showthread.php?p=378086 - Jetpacki nii et ainult immu adminid saavad seda kasutada ja et se oleks nii et kui kirjutad selle kommandi siis se kestaks teatud aja et seda aega saaks sättida cvariga. Tänan ette ära juba (:
- Tonight
- Liitus : 19/02/2012
Postitusi : 18000
Tegin selle osa ära, et ainult immu adminid saavad seda kasutada. See aja sättimine nii lihtne pole, hiljem kui aega saan, süvenen koodi ja üritan ära teha.
- Kood:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#include <engine>
new SPRITE_MODEL[] = "sprites/explode1.spr"
new JETPACK_PMODEL[] = "models/p_longjump.mdl"
new JETPACK_GOTSOUND[] = "items/ammopickup2.wav"
new cvar_cost
new cvar_thrust
new cvar_min_speed
new cvar_max_speed
new sprite_fire
new g_HasJetpack[33]
new g_JetpackEnt[33]
static const PLUGIN_NAME[] = "SyN Surf Jetpack"
static const PLUGIN_AUTHOR[] = "Cheap_Suit"
static const PLUGIN_VERSION[] = "1.4"
public plugin_init()
{
new mapName[33]
get_mapname(mapName, 32)
if(!equali(mapName, "surf_", 5))
{
new pluginName[33]
format(pluginName, 32, "[Disabled] %s", PLUGIN_NAME)
register_plugin(pluginName, PLUGIN_VERSION, PLUGIN_AUTHOR)
pause("ade")
}
else
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
register_clcmd("sjp_givesj" , "cmd_GiveSJ", ADMIN_IMMUNITY, "<userid> - Gives free surf jetpack")
register_clcmd("sjp_stripsj" , "cmd_StripSJ", ADMIN_IMMUNITY, "<userid> - Strips users surf jetpack")
register_clcmd("say /buyjetpack", "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
register_clcmd("say buy_jetpack", "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
register_concmd("buy_jetpack", "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
register_concmd("buyjetpack", "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
cvar_cost = register_cvar("sjp_cost", "5000")
cvar_thrust = register_cvar("sjp_thrust", "10")
cvar_min_speed = register_cvar("sjp_min_speed", "400")
cvar_max_speed = register_cvar("sjp_max_speed", "1200")
register_event("DeathMsg", "Event_DeathMsg", "a")
}
}
public plugin_precache()
{
sprite_fire = precache_model(SPRITE_MODEL)
precache_sound(JETPACK_GOTSOUND)
precache_model(JETPACK_PMODEL)
}
public client_connect(id)
{
g_HasJetpack[id] = 0
_removeJetpackEnt(id)
}
public client_disconnect(id)
{
g_HasJetpack[id] = 0
_removeJetpackEnt(id)
}
public Event_DeathMsg()
{
new id = read_data(2)
g_HasJetpack[id] = 0
_removeJetpackEnt(id)
return PLUGIN_CONTINUE
}
public cmd_BuySurfJetpack(id)
{
new iMoney = cs_get_user_money(id)
new iCost = get_pcvar_num(cvar_cost)
if(!is_user_alive(id))
client_print(id, print_center, "You cant buy when your dead!")
else if(g_HasJetpack[id])
client_print(id, print_center, "You already own a surf jetpack.")
else if(iMoney < iCost)
client_print(id, print_center, "Insufficient funds! ($%d)", iCost)
else
{
_give_Jetpack(id)
cs_set_user_money(id, iMoney - iCost, 1)
}
return PLUGIN_HANDLED
}
public cmd_GiveSJ(id , level , cid)
{
if(!cmd_access(id , level , cid , 2))
return PLUGIN_HANDLED
new arg1[33]
read_argv(1 , arg1 , 32)
new target = cmd_target(id , arg1 , 0)
if(!is_user_connected(target))
{
console_print(id, "Player does not exist")
return PLUGIN_HANDLED
}
if(g_HasJetpack[target])
{
console_print(id, "Player already has a surf jetpack")
return PLUGIN_HANDLED
}
_give_Jetpack(target)
new Name[33], Name2[33]
get_user_name(id, Name, 32)
get_user_name(target, Name2, 32)
console_print(id, "You gave %s a surf jetpack", Name2)
client_print(target, print_chat, "ADMIN: %s gave you a surf jetpack", Name)
return PLUGIN_HANDLED
}
public cmd_StripSJ(id , level , cid)
{
if(!cmd_access(id , level , cid , 2))
return PLUGIN_HANDLED
new arg1[33]
read_argv(1 , arg1 , 32)
new target = cmd_target(id , arg1 , 0)
if(!is_user_connected(target))
{
console_print(id, "Player does not exist")
return PLUGIN_HANDLED
}
if(!g_HasJetpack[target])
{
console_print(id, "Player does not have a surf jetpack")
return PLUGIN_HANDLED
}
g_HasJetpack[id] = 0
_removeJetpackEnt(id)
new Name[33], Name2[33]
get_user_name(id, Name, 32)
get_user_name(target, Name2, 32)
console_print(id, "You stripped %s a surf jetpack", Name2)
client_print(target, print_chat, "ADMIN: %s stripped your surf jetpack", Name)
return PLUGIN_HANDLED
}
public _give_Jetpack(id)
{
g_HasJetpack[id] = 1
client_cmd(id, "spk %s", JETPACK_GOTSOUND)
client_print(id, print_chat, "You've got a surf jetpack! :: HOW TO USE :: ~ Just Surf ~ ")
if(g_JetpackEnt[id] < 1)
{
g_JetpackEnt[id] = create_entity("info_target")
if(is_valid_ent(g_JetpackEnt[id]))
{
entity_set_model(g_JetpackEnt[id], JETPACK_PMODEL)
entity_set_int(g_JetpackEnt[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(g_JetpackEnt[id], EV_ENT_aiment, id)
}
}
}
public _removeJetpackEnt(id)
{
if(g_JetpackEnt[id] > 0)
remove_entity(g_JetpackEnt[id])
g_JetpackEnt[id] = 0
}
public client_PreThink(id)
{
if(!is_user_alive(id) || !g_HasJetpack[id])
return PLUGIN_CONTINUE
if(get_user_speed(id) < get_pcvar_num(cvar_min_speed))
return PLUGIN_CONTINUE
new Button = get_user_button(id)
if(Button & IN_MOVELEFT || Button & IN_MOVERIGHT)
{
_jetEffect(id)
_jetThrust(id)
}
return PLUGIN_CONTINUE
}
public _jetThrust(id)
{
new Float:fVelocity[3]
entity_get_vector(id, EV_VEC_velocity, fVelocity)
new Float:fAngle[3]
entity_get_vector(id, EV_VEC_angles, fAngle)
engfunc(EngFunc_MakeVectors, fAngle)
new Float:fForward[3]
get_global_vector(GL_v_forward, fForward)
fVelocity[0] += fForward[0] * get_pcvar_num(cvar_thrust)
fVelocity[1] += fForward[1] * get_pcvar_num(cvar_thrust)
if(get_user_speed(id) < get_pcvar_num(cvar_max_speed))
entity_set_vector(id, EV_VEC_velocity, fVelocity)
return PLUGIN_CONTINUE
}
public _jetEffect(id)
{
new iOrigin[3]
get_user_origin(id, iOrigin, 0)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(17)
write_coord(iOrigin[0])
write_coord(iOrigin[1])
write_coord(iOrigin[2])
write_short(sprite_fire)
write_byte(10)
write_byte(115)
message_end()
entity_set_int(id , EV_INT_gaitsequence , 8)
}
stock get_user_speed(id)
{
new Float:fVelocity[3]
entity_get_vector(id, EV_VEC_velocity, fVelocity)
new iVelocity[3]
FVecIVec(fVelocity, iVelocity)
new iVelocity0 = iVelocity[0] * iVelocity[0]
new iVelocity1 = iVelocity[1] * iVelocity[1]
return sqroot(iVelocity0 + iVelocity1)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
- Tehnik aKKomeet
- Liitus : 28/03/2013
Postitusi : 453
Kas nüüd on aega ära teha ?
Soovid vestluses osaleda?
Selleks logi sisse või tee endale kasutaja.
Lehekülg 1, lehekülgi kokku 1
Permissions in this forum:
Sa ei saa vastata siinsetele teemadele