Raised This Month: $ Target: $400
 0% 

make the plugin can be used only by the g_Iexempleid


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Zyphir
Junior Member
Join Date: Aug 2015
Old 09-16-2015 , 10:33   make the plugin can be used only by the g_Iexempleid
Reply With Quote #1

how to make the magic marker used only by g_iChiefId ?

Quote:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <xs>

#define PLUGIN "Magic Marker"
#define VERSION "3.1"
#define AUTHOR "stupok69"

#define MAX_PLAYERS 32
#define USAGE_LEVEL ADMIN_KICK

new Floatrigin[MAX_PLAYERS+1][3]
new prethink_counter[MAX_PLAYERS+1]
new bool:is_drawing[MAX_PLAYERS+1]
new bool:is_holding[MAX_PLAYERS+1]

new spriteid

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("+paint", "paint_handler", USAGE_LEVEL, "Paint on the walls!")
register_clcmd("-paint", "paint_handler", USAGE_LEVEL, "Paint on the walls!")
register_forward(FM_PlayerPreThink, "forward_FM_PlayerPreThink", 0)
}

public plugin_precache()
{
spriteid = precache_model("sprites/lgtning.spr")
}

public paint_handler(id, level, cid)
{
if(!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

if(!is_user_alive(id))
{
client_print(id, print_chat, "* You cannot use the magic marker when you are dead.")
return PLUGIN_HANDLED
}

static cmd[2]
read_argv(0, cmd, 1)

switch(cmd[0])
{
case '+': is_drawing[id] = true
case '-': is_drawing[id] = false
}
return PLUGIN_HANDLED
}

public forward_FM_PlayerPreThink(id)
{
if(prethink_counter[id]++ > 5)
{
if(is_drawing[id] && !is_aiming_at_sky(id))
{
static Float:cur_origin[3], Float:distance

cur_origin = origin[id]

if(!is_holding[id])
{
fm_get_aim_origin(id, origin[id])
move_toward_client(id, origin[id])
is_holding[id] = true
return FMRES_IGNORED
}

fm_get_aim_origin(id, origin[id])
move_toward_client(id, origin[id])

distance = get_distance_f(origin[id], cur_origin)

if(distance > 2)
{
draw_line(origin[id], cur_origin)
}
}
else
{
is_holding[id] = false
}
prethink_counter[id] = 0
}

return FMRES_IGNORED
}

stock draw_line(Floatrigin1[3], Floatrigin2[3])
{
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(TE_BEAMPOINTS)
engfunc(EngFunc_WriteCoord, origin1[0])
engfunc(EngFunc_WriteCoord, origin1[1])
engfunc(EngFunc_WriteCoord, origin1[2])
engfunc(EngFunc_WriteCoord, origin2[0])
engfunc(EngFunc_WriteCoord, origin2[1])
engfunc(EngFunc_WriteCoord, origin2[2])
write_short(spriteid)
write_byte(0)
write_byte(10)
write_byte(255)
write_byte(50)
write_byte(0)
write_byte(random(255))
write_byte(random(255))
write_byte(random(255))
write_byte(255)
write_byte(0)
message_end()
}

//from fakemeta_util.inc
stock fm_get_aim_origin(index, Floatrigin[3])
{
static Float:start[3], Float:view_ofs[3]
pev(index, pev_origin, start)
pev(index, pev_view_ofs, view_ofs)
xs_vec_add(start, view_ofs, start)

static Float:dest[3]
pev(index, pev_v_angle, dest)
engfunc(EngFunc_MakeVectors, dest)
global_get(glb_v_forward, dest)
xs_vec_mul_scalar(dest, 9999.0, dest)
xs_vec_add(start, dest, dest)

engfunc(EngFunc_TraceLine, start, dest, 0, index, 0)
get_tr2(0, TR_vecEndPos, origin)

return 1
}

stock move_toward_client(id, Floatrigin[3])
{
static Float:player_origin[3]

pev(id, pev_origin, player_origin)

origin[0] += (player_origin[0] > origin[0]) ? 1.0 : -1.0
origin[1] += (player_origin[1] > origin[1]) ? 1.0 : -1.0
origin[2] += (player_origin[2] > origin[2]) ? 1.0 : -1.0
}
//Thanks AdaskoMX!
bool:is_aiming_at_sky(index)
{
new Floatrigin[3];
fm_get_aim_origin(index, origin);

return engfunc(EngFunc_PointContents, origin) == CONTENTS_SKY;
}
Attached Files
File Type: sma Get Plugin or Get Source (magic_marker.sma - 312 views - 3.5 KB)

Last edited by Zyphir; 09-16-2015 at 10:35.
Zyphir is offline
nico_barrera
Junior Member
Join Date: Nov 2009
Location: PC
Old 10-04-2015 , 23:21   Re: make the plugin can be used only by the g_Iexempleid
Reply With Quote #2

who's g_iChiefId??

And put the code on code or php tags!
nico_barrera is offline
Send a message via MSN to nico_barrera
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 10-05-2015 , 06:31   Re: make the plugin can be used only by the g_Iexempleid
Reply With Quote #3

JailBreak, I assume. You need to create natives for the JailBreak mod itself, then create a library, and finally include the library in this code and make it available only for the chief.

//Edit: https://forums.alliedmods.net/showthread.php?t=271617, https://forums.alliedmods.net/showthread.php?t=271151, https://forums.alliedmods.net/showthread.php?t=271113 - you're quite annoying and your topic should be trashed.

Last edited by OciXCrom; 10-05-2015 at 06:33.
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:05.


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