Witam czy mógł by ktoś przerobić mi ten plugin tak żeby liny mógł używać tylko ct?
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
LINA TYLKO DLA CT
#1
Napisano 31.07.2017 02:18
#2
Napisano 31.07.2017 09:14
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define PLUGIN "ProKreedz Hook"
#define VERSION "v2.3"
#define AUTHOR "vato loco [GE-S] & p4ddY"
#define KZ_ACCESS ADMIN_KICK
#define RANDOM_NUM random_num(0,255)
#define RED 255
#define GREEN 99
#define BLUE 71
enum color {normal = 1, green, team}
enum {HOOK_OFF, HOOK_RELEASE, HOOK_ON}
new is_plr_connected[33]
new bool:g_bCanUseHook[33]
new g_bIsHooked[33]
new g_iHookOrigin[33][3]
new g_bPlayerIsAdmin[33]
new g_SpriteBeam
new g_SpriteLaser
new g_SayText
new g_iMaxPlayers
new g_kz_tag
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_forward(FM_Think, "fw_ThinkEnt")
register_clcmd("+hook", "HookOn", KZ_ACCESS)
register_clcmd("-hook", "HookOff", KZ_ACCESS)
register_clcmd("kz_hook", "cmd_give_hook", KZ_ACCESS ,"<name|#userid|steamid|@ALL> <on/off>")
register_dictionary("prokreedz_v2.3.txt")
g_kz_tag = register_cvar("kz_tag", "[ProKreedz]")
new iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString , "info_target"))
set_pev(iEnt, pev_classname, "hook_think")
set_pev(iEnt, pev_nextthink, get_gametime() + 0.1)
g_SayText = get_user_msgid("SayText")
g_iMaxPlayers = get_maxplayers()
}
public plugin_precache()
{
g_SpriteBeam = engfunc(EngFunc_PrecacheModel, "sprites/zbeam1.spr")
g_SpriteLaser = engfunc(EngFunc_PrecacheModel,"sprites/zbeam1.spr")
}
public client_putinserver(id)
{
is_plr_connected[id] = true
g_bIsHooked[id] = HOOK_OFF
if(get_user_flags(id) & KZ_ACCESS)
g_bPlayerIsAdmin[id] = true
}
public client_disconnect(id)
{
is_plr_connected[id] = false
g_bIsHooked[id] = HOOK_OFF
if(g_bPlayerIsAdmin[id])
g_bPlayerIsAdmin[id] = false
}
public kz_prize_hook(id, status[])
{
switch(status[0])
{
case '0': g_bCanUseHook[id] = false
case '1':
{
g_bCanUseHook[id] = true
kz_colorchat(id, green, "%L", id, "PKU_PRIZE_HOOK")
}
}
}
public cmd_give_hook(id,level,cid)
{
if(!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED
new name[32]
get_user_name(id,name,31)
new szarg1[32], szarg2[8], bool:mode
read_argv(1,szarg1,31)
read_argv(2,szarg2,7)
if(equal(szarg2,"on"))
mode = true
if(equal(szarg1,"@ALL"))
{
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(is_plr_connected[i] && is_user_alive(i) && get_user_team(i) == 2)
{
g_bCanUseHook[i] = mode
if(mode)
kz_colorchat(i, green, "%L", i, "PKU_HOOK_AT_ALL", name)
else
kz_colorchat(i, green, "%L", i, "PKU_HOOK_TAKE_ALL", name)
}
}
}
else
{
new pid = cmd_target(id,szarg1,2)
if(pid > 0)
{
g_bCanUseHook[pid] = mode
if(mode)
kz_colorchat(pid, green, "%L", pid, "PKU_HOOK_AT_TARGET", name)
else
kz_colorchat(pid, green, "%L", pid, "PKU_HOOK_TAKE_TARGET", name)
}
}
return PLUGIN_HANDLED
}
public HookOn(id)
{
if(!g_bCanUseHook[id] && !g_bPlayerIsAdmin[id])
return PLUGIN_HANDLED
if(is_plr_connected[id] && is_user_alive(id))
{
get_user_origin(id, g_iHookOrigin[id], 3)
if(callfunc_begin("DetectCheat","ProKreedz_v2.3.amxx") == 1)
{
callfunc_push_int(id)
callfunc_push_str("Hook")
callfunc_end()
}
g_bIsHooked[id] = HOOK_ON
}
return PLUGIN_HANDLED
}
public HookOff(id)
{
g_bIsHooked[id] = HOOK_RELEASE
return PLUGIN_HANDLED
}
public fw_ThinkEnt(iEnt)
{
if (pev_valid(iEnt))
{
static ClassName[33]
pev(iEnt, pev_classname, ClassName, 32)
if(equal(ClassName, "hook_think"))
{
fw_HookThink()
set_pev(iEnt, pev_nextthink, get_gametime() + 0.1)
}
}
}
public fw_HookThink()
{
static id, origin[3], Float:velocity[3], distance
for(id = 1 ; id <= g_iMaxPlayers ; id++)
{
if(g_bIsHooked[id] == HOOK_ON)
{
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(1) // TE_BEAMENTPOINT
write_short(id) // entid
write_coord(g_iHookOrigin[id][0]) // origin
write_coord(g_iHookOrigin[id][1]) // origin
write_coord(g_iHookOrigin[id][2]) // origin
if(g_bPlayerIsAdmin[id])
{
write_short(g_SpriteBeam) // sprite index
write_byte(0) // start frame
write_byte(0) // framerate
write_byte(2) // life
write_byte(30) // width
write_byte(0)
write_byte(RANDOM_NUM) // r
write_byte(RANDOM_NUM) // g
write_byte(RANDOM_NUM) // b
}
else
{
write_short(g_SpriteLaser) // sprite index
write_byte(0) // start frame
write_byte(0) // framerate
write_byte(2) // life
write_byte(30) // width
write_byte(0)
write_byte(RED) // r
write_byte(GREEN) // g
write_byte(BLUE) // b
}
write_byte(500) // brightness
write_byte(0) // speed
message_end()
get_user_origin(id, origin)
distance = get_distance(g_iHookOrigin[id], origin)
if(distance > 25)
{
velocity[0] = (g_iHookOrigin[id][0] - origin[0]) * (2.0 * 350 / distance)
velocity[1] = (g_iHookOrigin[id][1] - origin[1]) * (2.0 * 350 / distance)
velocity[2] = (g_iHookOrigin[id][2] - origin[2]) * (2.0 * 350 / distance)
set_pev(id, pev_velocity, velocity)
}
}
else if(g_bIsHooked[id] == HOOK_RELEASE)
{
g_bIsHooked[id] = HOOK_OFF
}
}
}
kz_colorchat(id, color:type, const msg[], {Float,Sql,Result,_}:...) {
static message[256], pkmsg[180], changed[8], argscount,j
argscount = numargs()
switch(type)
{
case normal: message[0] = 0x01
case green: message[0] = 0x04
default: message[0] = 0x03
}
new pktag[32]
get_pcvar_string(g_kz_tag, pktag, 31)
if(id)
{
if(is_plr_connected[id])
{
vformat(pkmsg, 179, msg, 4)
formatex(message[1], 255, "%s %s", pktag, pkmsg)
message[192] = '^0'
replace_all(message, 191, "!g", "^x04")
replace_all(message, 191, "!n", "^x01")
replace_all(message, 191, "!t", "^x03")
kz_print_msg(id, message)
}
}
else
{
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(is_plr_connected[i])
{
new changedcount = 0
for(j = 2; j < argscount; j++)
{
if(getarg(j) == LANG_PLAYER)
{
setarg(j, 0, i);
changed[changedcount++] = j;
}
}
vformat(pkmsg, 179, msg, 4)
formatex(message[1], 255, "%s %s", pktag, pkmsg)
message[192] = '^0'
replace_all(message, 191, "!g", "^x04")
replace_all(message, 191, "!n", "^x01")
replace_all(message, 191, "!t", "^x03")
kz_print_msg(i, message)
for(j = 0; j < changedcount; j++)
{
setarg(changed[j], 0, LANG_PLAYER)
}
}
}
}
}
stock kz_print_msg(id, const msg[])
{
message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, id)
write_byte(id)
write_string(msg)
message_end()
}
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#3
Napisano 31.07.2017 09:27
#include <amxmodx> #include <amxmisc> #include <fakemeta> #define PLUGIN "ProKreedz Hook" #define VERSION "v2.3" #define AUTHOR "vato loco [GE-S] & p4ddY" #define KZ_ACCESS ADMIN_KICK #define RANDOM_NUM random_num(0,255) #define RED 255 #define GREEN 99 #define BLUE 71 enum color {normal = 1, green, team} enum {HOOK_OFF, HOOK_RELEASE, HOOK_ON} new is_plr_connected[33] new bool:g_bCanUseHook[33] new g_bIsHooked[33] new g_iHookOrigin[33][3] new g_bPlayerIsAdmin[33] new g_SpriteBeam new g_SpriteLaser new g_SayText new g_iMaxPlayers new g_kz_tag public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_forward(FM_Think, "fw_ThinkEnt") register_clcmd("+hook", "HookOn", KZ_ACCESS) register_clcmd("-hook", "HookOff", KZ_ACCESS) register_clcmd("kz_hook", "cmd_give_hook", KZ_ACCESS ,"<[email protected]<script data-cfhash='f9e31' type="text/javascript">/* */</script>> <on/off>") register_dictionary("prokreedz_v2.3.txt") g_kz_tag = register_cvar("kz_tag", "[ProKreedz]") new iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString , "info_target")) set_pev(iEnt, pev_classname, "hook_think") set_pev(iEnt, pev_nextthink, get_gametime() + 0.1) g_SayText = get_user_msgid("SayText") g_iMaxPlayers = get_maxplayers() } public plugin_precache() { g_SpriteBeam = engfunc(EngFunc_PrecacheModel, "sprites/zbeam1.spr") g_SpriteLaser = engfunc(EngFunc_PrecacheModel,"sprites/zbeam1.spr") } public client_putinserver(id) { is_plr_connected[id] = true g_bIsHooked[id] = HOOK_OFF if(get_user_flags(id) & KZ_ACCESS) g_bPlayerIsAdmin[id] = true } public client_disconnect(id) { is_plr_connected[id] = false g_bIsHooked[id] = HOOK_OFF if(g_bPlayerIsAdmin[id]) g_bPlayerIsAdmin[id] = false } public kz_prize_hook(id, status[]) { switch(status[0]) { case '0': g_bCanUseHook[id] = false case '1': { g_bCanUseHook[id] = true kz_colorchat(id, green, "%L", id, "PKU_PRIZE_HOOK") } } } public cmd_give_hook(id,level,cid) { if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED new name[32] get_user_name(id,name,31) new szarg1[32], szarg2[8], bool:mode read_argv(1,szarg1,31) read_argv(2,szarg2,7) if(equal(szarg2,"on")) mode = true if(equal(szarg1,"@ALL")) { for(new i = 1; i <= g_iMaxPlayers; i++) { if(is_plr_connected[i] && is_user_alive(i) && get_user_team(i) == 2) { g_bCanUseHook[i] = mode if(mode) kz_colorchat(i, green, "%L", i, "PKU_HOOK_AT_ALL", name) else kz_colorchat(i, green, "%L", i, "PKU_HOOK_TAKE_ALL", name) } } } else { new pid = cmd_target(id,szarg1,2) if(pid > 0) { g_bCanUseHook[pid] = mode if(mode) kz_colorchat(pid, green, "%L", pid, "PKU_HOOK_AT_TARGET", name) else kz_colorchat(pid, green, "%L", pid, "PKU_HOOK_TAKE_TARGET", name) } } return PLUGIN_HANDLED } public HookOn(id) { if(!g_bCanUseHook[id] && !g_bPlayerIsAdmin[id]) return PLUGIN_HANDLED if(is_plr_connected[id] && is_user_alive(id)) { get_user_origin(id, g_iHookOrigin[id], 3) if(callfunc_begin("DetectCheat","ProKreedz_v2.3.amxx") == 1) { callfunc_push_int(id) callfunc_push_str("Hook") callfunc_end() } g_bIsHooked[id] = HOOK_ON } return PLUGIN_HANDLED } public HookOff(id) { g_bIsHooked[id] = HOOK_RELEASE return PLUGIN_HANDLED } public fw_ThinkEnt(iEnt) { if (pev_valid(iEnt)) { static ClassName[33] pev(iEnt, pev_classname, ClassName, 32) if(equal(ClassName, "hook_think")) { fw_HookThink() set_pev(iEnt, pev_nextthink, get_gametime() + 0.1) } } } public fw_HookThink() { static id, origin[3], Float:velocity[3], distance for(id = 1 ; id <= g_iMaxPlayers ; id++) { if(g_bIsHooked[id] == HOOK_ON) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(1) // TE_BEAMENTPOINT write_short(id) // entid write_coord(g_iHookOrigin[id][0]) // origin write_coord(g_iHookOrigin[id][1]) // origin write_coord(g_iHookOrigin[id][2]) // origin if(g_bPlayerIsAdmin[id]) { write_short(g_SpriteBeam) // sprite index write_byte(0) // start frame write_byte(0) // framerate write_byte(2) // life write_byte(30) // width write_byte(0) write_byte(RANDOM_NUM) // r write_byte(RANDOM_NUM) // g write_byte(RANDOM_NUM) // b } else { write_short(g_SpriteLaser) // sprite index write_byte(0) // start frame write_byte(0) // framerate write_byte(2) // life write_byte(30) // width write_byte(0) write_byte(RED) // r write_byte(GREEN) // g write_byte(BLUE) // b } write_byte(500) // brightness write_byte(0) // speed message_end() get_user_origin(id, origin) distance = get_distance(g_iHookOrigin[id], origin) if(distance > 25) { velocity[0] = (g_iHookOrigin[id][0] - origin[0]) * (2.0 * 350 / distance) velocity[1] = (g_iHookOrigin[id][1] - origin[1]) * (2.0 * 350 / distance) velocity[2] = (g_iHookOrigin[id][2] - origin[2]) * (2.0 * 350 / distance) set_pev(id, pev_velocity, velocity) } } else if(g_bIsHooked[id] == HOOK_RELEASE) { g_bIsHooked[id] = HOOK_OFF } } } kz_colorchat(id, color:type, const msg[], {Float,Sql,Result,_}:...) { static message[256], pkmsg[180], changed[8], argscount,j argscount = numargs() switch(type) { case normal: message[0] = 0x01 case green: message[0] = 0x04 default: message[0] = 0x03 } new pktag[32] get_pcvar_string(g_kz_tag, pktag, 31) if(id) { if(is_plr_connected[id]) { vformat(pkmsg, 179, msg, 4) formatex(message[1], 255, "%s %s", pktag, pkmsg) message[192] = '^0' replace_all(message, 191, "!g", "^x04") replace_all(message, 191, "!n", "^x01") replace_all(message, 191, "!t", "^x03") kz_print_msg(id, message) } } else { for(new i = 1; i <= g_iMaxPlayers; i++) { if(is_plr_connected[i]) { new changedcount = 0 for(j = 2; j < argscount; j++) { if(getarg(j) == LANG_PLAYER) { setarg(j, 0, i); changed[changedcount++] = j; } } vformat(pkmsg, 179, msg, 4) formatex(message[1], 255, "%s %s", pktag, pkmsg) message[192] = '^0' replace_all(message, 191, "!g", "^x04") replace_all(message, 191, "!n", "^x01") replace_all(message, 191, "!t", "^x03") kz_print_msg(i, message) for(j = 0; j < changedcount; j++) { setarg(changed[j], 0, LANG_PLAYER) } } } } } stock kz_print_msg(id, const msg[]) { message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, id) write_byte(id) write_string(msg) message_end() }
nadal można używać liny w tt
#4
Napisano 31.07.2017 11:21
Sprawdź, nie testowałem.
Załączone pliki
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
#5
Napisano 31.07.2017 15:38
Sprawdź, nie testowałem.
Wszystko działa super, dzięki za pomoc
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych


Dodatki SourceMod




hook.amxx








