AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   can't darg (https://forums.alliedmods.net/showthread.php?t=93620)

~Ice*shOt 05-31-2009 04:46

can't darg
 
what i can't drag players ? look:
PHP Code:

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#define PLUGIN "[ZP] Class Smoker"
#define VERSION "0.3.1"
#define AUTHOR "4eRT"
//Main Class, modelT & Sprite Beam
new g_zclass_smokerg_Line
new const generic_models[][] = 

"models/player/Smoker/Smoker.mdl" 

new const 
generic_hands[][] = 

"models/v_knife_zombie.mdl" 

//Sounds
new g_sndMiss[] = "zombie_plague/Smoker_TongueHit_miss.wav"
new g_sndDrag[] = "zombie_plague/Smoker_TongueHit_drag.wav"
//Some vars
new g_hooked[33], g_hooksLeft[33]
new 
Float:g_lastHook[33]
//Cvars
new cvar_maxdragscvar_dragspeedcvar_cooldowncvar_dmg2stopcvar_matescvar_bind
public plugin_init()
{
cvar_dragspeed register_cvar("zp_smoker_dragspeed""160")
cvar_maxdrags register_cvar("zp_smoker_maxdrags""5000")
cvar_cooldown register_cvar("zp_smoker_cooldown""5")
cvar_dmg2stop register_cvar("zp_smoker_dmg2stop""75")
cvar_mates register_cvar("zp_smoker_mates""0")
cvar_bind register_cvar("zp_smoker_bind""1")
register_event("ResetHUD""newSpawn""b")
register_event("DeathMsg""smoker_death""a")
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
register_clcmd("+drag","drag_start"ADMIN_USER"bind ^"key^" ^"+drag^"")
register_clcmd("-drag","drag_end")
}
public 
plugin_precache()
{
register_plugin(PLUGINVERSIONAUTHOR)
precache_sound(g_sndDrag)
precache_sound(g_sndMiss)
g_Line precache_model("sprites/zbeam4.spr")

for (new 
0sizeof generic_modelsi++)
precache_model(generic_models[i])
for (new 
0sizeof generic_handsi++)
precache_model(generic_hands[i])
}
public 
zp_user_infected_post(idinfector)
{
if (
get_user_team(id) == 1) {
g_hooksLeft[id] = get_pcvar_num(cvar_maxdrags)
new 
mode get_pcvar_num(cvar_bind)

if (
mode == 1) {
client_cmd(id"bind v ^"+drag^"")
client_print(idprint_chat"[ZP] To drag player to youself hold ^'^'V^'^'")
}
if (
mode == 0) {
client_print(idprint_chat"[ZP] To drag player to youself (bind ^'^'key^'^' ^'^'+drag^'^') hold binded key")
}
}
}
public 
newSpawn(id)
{
g_lastHook[id] = get_gametime()

beam_remove(id)
if (
g_hooked[id])
drag_end(id)
}
public 
drag_start(id// starts drag, checks if player is Smoker, checks cvars
{
if (
get_user_team(id) == 1) {

static 
Float:cdown
cdown 
get_pcvar_float(cvar_cooldown)

if (!
is_user_alive(id)) {
client_print(idprint_chat"[ZP] You can't drag if you are dead!")
return
}
if (
g_hooksLeft[id] <= 0) {
client_print(idprint_chat"[ZP] You can't drag anymore!")
return
}

if (
get_gametime() - g_lastHook[id] < cdown) {
client_print(idprint_chat"[ZP] Wait %.fsec. to drag again!"get_pcvar_float(cvar_cooldown) - (get_gametime() - g_lastHook[id]))
return
}
if (
g_hooksLeft[id] > 0) {
g_hooksLeft[id]--
client_print(idprint_chat"[ZP] You can drag player to youself %d time%s"g_hooksLeft[id], (g_hooksLeft[id] < 2) ? "" "s")
}
new 
hooktargetbody
get_user_aiming
(idhooktargetbody)

if (
is_user_alive(hooktarget)) {
if (
get_user_team(hooktarget) != get_user_team(id)) {
g_hooked[id] = hooktarget
emit_sound
(hooktargetCHAN_BODYg_sndDrag1.0ATTN_NORM0PITCH_HIGH)
} else {
if (
get_user_team(hooktarget) == get_user_team(id)) {
if (
get_pcvar_num(cvar_mates) == 0) {
client_print(idprint_chat"[ZP] You can't drag teammates!")
return
}
if (
get_pcvar_num(cvar_mates) == 1) {
g_hooked[id] = hooktarget
emit_sound
(hooktargetCHAN_BODYg_sndDrag1.0ATTN_NORM0PITCH_HIGH)
}
} else {
g_hooked[id] = 33
noTarget
(id)
emit_sound(hooktargetCHAN_BODYg_sndMiss1.0ATTN_NORM0PITCH_HIGH)
return
}
}
new 
parm[2]
parm[0] = id
parm
[1] = hooktarget

set_task
(0.1"smoker_reelin"idparm2"b")
harpoon_target(parm)
} else {
g_hooked[id] = 33
noTarget
(id)
emit_sound(hooktargetCHAN_BODYg_sndMiss1.0ATTN_NORM0PITCH_HIGH)
}
} else {
return
}
}
public 
smoker_reelin(parm[]) // dragging player to smoker
{
new 
id parm[0]
new 
victim parm[1]
if (!
g_hooked[id])
return
if (!
is_user_alive(victim)) {
drag_end(id)
return
}
new 
Float:fl_Velocity[3]
new 
idOrigin[3], vicOrigin[3]
get_user_origin(victimvicOrigin)
get_user_origin(ididOrigin)
new 
distance get_distance(idOriginvicOrigin)
if (
distance 1) {
new 
Float:fl_Time distance get_pcvar_float(cvar_dragspeed)
fl_Velocity[0] = (idOrigin[0] - vicOrigin[0]) / fl_Time
fl_Velocity
[1] = (idOrigin[1] - vicOrigin[1]) / fl_Time
fl_Velocity
[2] = (idOrigin[2] - vicOrigin[2]) / fl_Time
} else {
fl_Velocity[0] = 0.0
fl_Velocity
[1] = 0.0
fl_Velocity
[2] = 0.0
}
entity_set_vector(victimEV_VEC_velocityfl_Velocity//<- rewritten. now uses engine
}
public 
drag_end(id// drags end function
{
g_hooked[id] = 0
beam_remove
(id)
remove_task(id)

if (
get_gametime() - g_lastHook[id] <= get_pcvar_float(cvar_cooldown) + 0.08) {
return
} else {
g_lastHook[id] = get_gametime()
}
}
public 
smoker_death() // if smoker dies drag off
{
new 
id read_data(2)

beam_remove(id)

if (
g_hooked[id])
drag_end(id)
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type// if take damage drag off
{
if (
victim == attacker || !is_user_connected(attacker)) {
if (
damage 25) {
drag_end(victim)
return 
HAM_IGNORED;
}
}

if (
get_user_team(attacker) != get_user_team(victim)) {
if (
damage get_pcvar_num(cvar_dmg2stop)) {
drag_end(victim)
return 
HAM_IGNORED;
}
}

return 
HAM_IGNORED;
}
public 
client_disconnect(id// if client disconnects drag off
{
if (
id <= || id 32)
return

if (
g_hooked[id])
drag_end(id)
}
public 
harpoon_target(parm[]) // set beam (ex. tongue:) if target is player
{
new 
id parm[0]
new 
hooktarget parm[1]
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
write_byte(8// TE_BEAMENTS
write_short(id)
write_short(hooktarget)
write_short(g_Line// sprite index
write_byte(0// start frame
write_byte(0// framerate
write_byte(200// life
write_byte(8// width
write_byte(1// noise
write_byte(155// r, g, b
write_byte(155// r, g, b
write_byte(55// r, g, b
write_byte(90// brightness
write_byte(10// speed
message_end()
}
public 
noTarget(id// set beam if target isn't player
{
new 
endorigin[3]
get_user_origin(idendorigin3)
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
write_byteTE_BEAMENTPOINT ); // TE_BEAMENTPOINT
write_short(id)
write_coord(endorigin[0])
write_coord(endorigin[1])
write_coord(endorigin[2])
write_short(g_Line// sprite index
write_byte(0// start frame
write_byte(0// framerate
write_byte(200// life
write_byte(8// width
write_byte(1// noise
write_byte(155// r, g, b
write_byte(155// r, g, b
write_byte(55// r, g, b
write_byte(75// brightness
write_byte(0// speed
message_end()
}
public 
beam_remove(id// remove beam
{
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
write_byte(99//TE_KILLBEAM
write_short(id//entity
message_end()



TitANious 05-31-2009 04:57

Re: can't darg
 
Indent!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!
Code:
#include <amxmodx> #include <fakemeta> #include <hamsandwich> #include <engine> #define PLUGIN "[ZP] Class Smoker" #define VERSION "0.3.1" #define AUTHOR "4eRT" //Main Class, modelT & Sprite Beam new g_zclass_smoker, g_Line new const generic_models[][] = {     "models/player/Smoker/Smoker.mdl" } new const generic_hands[][] = {     "models/v_knife_zombie.mdl" } //Sounds new g_sndMiss[] = "zombie_plague/Smoker_TongueHit_miss.wav" new g_sndDrag[] = "zombie_plague/Smoker_TongueHit_drag.wav" //Some vars new g_hooked[33], g_hooksLeft[33] new Float:g_lastHook[33] //Cvars new cvar_maxdrags, cvar_dragspeed, cvar_cooldown, cvar_dmg2stop, cvar_mates, cvar_bind public plugin_init() {     cvar_dragspeed = register_cvar("zp_smoker_dragspeed", "160")     cvar_maxdrags = register_cvar("zp_smoker_maxdrags", "5000")     cvar_cooldown = register_cvar("zp_smoker_cooldown", "5")     cvar_dmg2stop = register_cvar("zp_smoker_dmg2stop", "75")     cvar_mates = register_cvar("zp_smoker_mates", "0")     cvar_bind = register_cvar("zp_smoker_bind", "1")     register_event("ResetHUD", "newSpawn", "b")     register_event("DeathMsg", "smoker_death", "a")     RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")     register_clcmd("+drag","drag_start", ADMIN_USER, "bind ^"key^" ^"+drag^"")     register_clcmd("-drag","drag_end") } public plugin_precache() {     register_plugin(PLUGIN, VERSION, AUTHOR)     precache_sound(g_sndDrag)     precache_sound(g_sndMiss)     g_Line = precache_model("sprites/zbeam4.spr")         for (new i = 0; i < sizeof generic_models; i++)         precache_model(generic_models[i])     for (new i = 0; i < sizeof generic_hands; i++)         precache_model(generic_hands[i]) } public zp_user_infected_post(id, infector) {     if (get_user_team(id) == 1) {         g_hooksLeft[id] = get_pcvar_num(cvar_maxdrags)         new mode = get_pcvar_num(cvar_bind)                 if (mode == 1) {             client_cmd(id, "bind v ^"+drag^"")             client_print(id, print_chat, "[ZP] To drag player to youself hold ^'^'V^'^'")         }         if (mode == 0) {             client_print(id, print_chat, "[ZP] To drag player to youself (bind ^'^'key^'^' ^'^'+drag^'^') hold binded key")         }     } } public newSpawn(id) {     g_lastHook[id] = get_gametime()         beam_remove(id)     if (g_hooked[id])         drag_end(id) } public drag_start(id) // starts drag, checks if player is Smoker, checks cvars {     if (get_user_team(id) == 1) {                 static Float:cdown         cdown = get_pcvar_float(cvar_cooldown)                 if (!is_user_alive(id)) {             client_print(id, print_chat, "[ZP] You can't drag if you are dead!")             return         }         if (g_hooksLeft[id] <= 0) {             client_print(id, print_chat, "[ZP] You can't drag anymore!")             return         }                 if (get_gametime() - g_lastHook[id] < cdown) {             client_print(id, print_chat, "[ZP] Wait %.fsec. to drag again!", get_pcvar_float(cvar_cooldown) - (get_gametime() - g_lastHook[id]))             return         }         if (g_hooksLeft[id] > 0) {             g_hooksLeft[id]--             client_print(id, print_chat, "[ZP] You can drag player to youself %d time%s", g_hooksLeft[id], (g_hooksLeft[id] < 2) ? "" : "s")         }         new hooktarget, body         get_user_aiming(id, hooktarget, body)                 if (is_user_alive(hooktarget)) {             if (get_user_team(hooktarget) != get_user_team(id)) {                 g_hooked[id] = hooktarget                 emit_sound(hooktarget, CHAN_BODY, g_sndDrag, 1.0, ATTN_NORM, 0, PITCH_HIGH)             } else {                 if (get_user_team(hooktarget) == get_user_team(id)) {                     if (get_pcvar_num(cvar_mates) == 0) {                         client_print(id, print_chat, "[ZP] You can't drag teammates!")                         return                     }                     if (get_pcvar_num(cvar_mates) == 1) {                         g_hooked[id] = hooktarget                         emit_sound(hooktarget, CHAN_BODY, g_sndDrag, 1.0, ATTN_NORM, 0, PITCH_HIGH)                     }                 } else {                     g_hooked[id] = 33                     noTarget(id)                     emit_sound(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH)                     return                 }             }             new parm[2]             parm[0] = id             parm[1] = hooktarget                         set_task(0.1, "smoker_reelin", id, parm, 2, "b")             harpoon_target(parm)         } else {             g_hooked[id] = 33             noTarget(id)             emit_sound(hooktarget, CHAN_BODY, g_sndMiss, 1.0, ATTN_NORM, 0, PITCH_HIGH)         }     } else {         return     } } public smoker_reelin(parm[]) // dragging player to smoker {     new id = parm[0]     new victim = parm[1]     if (!g_hooked[id])         return     if (!is_user_alive(victim)) {         drag_end(id)         return     }     new Float:fl_Velocity[3]     new idOrigin[3], vicOrigin[3]     get_user_origin(victim, vicOrigin)     get_user_origin(id, idOrigin)     new distance = get_distance(idOrigin, vicOrigin)     if (distance > 1) {         new Float:fl_Time = distance / get_pcvar_float(cvar_dragspeed)         fl_Velocity[0] = (idOrigin[0] - vicOrigin[0]) / fl_Time         fl_Velocity[1] = (idOrigin[1] - vicOrigin[1]) / fl_Time         fl_Velocity[2] = (idOrigin[2] - vicOrigin[2]) / fl_Time     } else {         fl_Velocity[0] = 0.0         fl_Velocity[1] = 0.0         fl_Velocity[2] = 0.0     }     entity_set_vector(victim, EV_VEC_velocity, fl_Velocity) //<- rewritten. now uses engine } public drag_end(id) // drags end function {     g_hooked[id] = 0     beam_remove(id)     remove_task(id)         if (get_gametime() - g_lastHook[id] <= get_pcvar_float(cvar_cooldown) + 0.08) {         return     } else {         g_lastHook[id] = get_gametime()     } } public smoker_death() // if smoker dies drag off {     new id = read_data(2)         beam_remove(id)         if (g_hooked[id])         drag_end(id) } public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) // if take damage drag off {     if (victim == attacker || !is_user_connected(attacker)) {         if (damage > 25) {             drag_end(victim)             return HAM_IGNORED;         }     }         if (get_user_team(attacker) != get_user_team(victim)) {         if (damage > get_pcvar_num(cvar_dmg2stop)) {             drag_end(victim)             return HAM_IGNORED;         }     }         return HAM_IGNORED; } public client_disconnect(id) // if client disconnects drag off {     if (id <= 0 || id > 32)         return         if (g_hooked[id])         drag_end(id) } public harpoon_target(parm[]) // set beam (ex. tongue:) if target is player {     new id = parm[0]     new hooktarget = parm[1]     message_begin(MSG_BROADCAST, SVC_TEMPENTITY)     write_byte(8) // TE_BEAMENTS     write_short(id)     write_short(hooktarget)     write_short(g_Line) // sprite index     write_byte(0) // start frame     write_byte(0) // framerate     write_byte(200) // life     write_byte(8) // width     write_byte(1) // noise     write_byte(155) // r, g, b     write_byte(155) // r, g, b     write_byte(55) // r, g, b     write_byte(90) // brightness     write_byte(10) // speed     message_end() } public noTarget(id) // set beam if target isn't player {     new endorigin[3]     get_user_origin(id, endorigin, 3)     message_begin(MSG_BROADCAST, SVC_TEMPENTITY)     write_byte( TE_BEAMENTPOINT ); // TE_BEAMENTPOINT     write_short(id)     write_coord(endorigin[0])     write_coord(endorigin[1])     write_coord(endorigin[2])     write_short(g_Line) // sprite index     write_byte(0) // start frame     write_byte(0) // framerate     write_byte(200) // life     write_byte(8) // width     write_byte(1) // noise     write_byte(155) // r, g, b     write_byte(155) // r, g, b     write_byte(55) // r, g, b     write_byte(75) // brightness     write_byte(0) // speed     message_end() } public beam_remove(id) // remove beam {     message_begin(MSG_BROADCAST, SVC_TEMPENTITY)     write_byte(99) //TE_KILLBEAM     write_short(id) //entity     message_end() }

xPaw 05-31-2009 05:45

Re: can't darg
 
say the problem :E

~Ice*shOt 05-31-2009 05:46

Re: can't darg
 
i bind: bnd z +drag, and i click "z" in chat print: [ZP] You can't darg anymore

crazyeffect 06-01-2009 11:39

Re: can't darg
 
Look at this:
http://forums.alliedmods.net/search....archid=3938232

And your joindate is: 02-03-09

You are here 3 months and collected 4 pages of topics...

I suppose you first read the "How to script" page again...

AND THEN YOU ARE SAYING TO OTHER PEOPLE: "NOOB"...


All times are GMT -4. The time now is 13:54.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.