İsteyim şu hazırbi menu atıcam içine sadece Ct nin Model alabilmesini istiyorum ayreten Model gelmesi için silahin deyişmesi gerekiyor unuda engellerseniz İyi Olur
Yani 'Q' 'Q' Yapıldıgında Yeni Model Geliyor Unu Engellemenizi İstiyorum
Webailesi Portal Sistemi
AMX Mod X Compiler 1.10.0.5392
Copyright © 1997-2006 ITB CompuPhase
Copyright © 2004-2013 AMX Mod X Team
CSGO_M4A4.sma(9) : error 008: must be a constant expression; assumed zero
1 Error.
Could not locate output file CSGO_M4A4.amx (compile failed)
HATASI ALIYORUM ÇÖZÜMÜ ?
Copyright © 1997-2006 ITB CompuPhase
Copyright © 2004-2013 AMX Mod X Team
CSGO_M4A4.sma(9) : error 008: must be a constant expression; assumed zero
1 Error.
Could not locate output file CSGO_M4A4.amx (compile failed)
HATASI ALIYORUM ÇÖZÜMÜ ?
Bedava TeamSpeak Sunucusu İsteyen Varsa Şu TS3 Serverine Gelebilir IP : 185.255.94.23
merhaba bu kodda rakip onayladıktan sonra karşılıklı olarak spawn oluyoruz fakat bıçaklı düelloda silah kaybolmuyor.
q tuşuna bastığımda bıçak AWP gibi ateş ediyor
q tuşuna bastığımda bıçak AWP gibi ateş ediyor
Kod:
#define PLUGINNAME "Automatic knife duel"
#define VERSION "0.3"
#define AUTHOR "JGHG"
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#define DEBUG
#if defined DEBUG
#include <amxmisc>
#endif // defined DEBUG
#define MENUSELECT1 0
#define MENUSELECT2 1
#define TASKID_CHALLENGING 2348923
#define TASKID_BOTTHINK 3242321
#define DECIDESECONDS 10
#define ALLOWED_WEAPONS 2
#define KNIFESLASHES 3 // the nr of slashes within a short amount of time until a challenge starts...
// Globals below
new g_allowedWeapons[ALLOWED_WEAPONS] = {CSW_KNIFE, CSW_C4}
new g_MAXPLAYERS
new bool:g_challenging = false
new bool:g_knifeArena = false
new bool:g_noChallengingForAWhile = false
new g_challengemenu
new g_challenger
new g_challenged
new g_challenges[33]
new Float:g_vKnifeOrigin[2][3];
new const g_szSpawnClassname[] = "info_player_deathmatch";
enum _:max_cvars {
CVAR_COUNT = 0,
CVAR_TIMER,
CVAR_MAXDISTANCE,
CVAR_ANNOUNCE,
CVAR_RESET
};
new g_Pcvar[max_cvars];
new g_iFwdSpawn;
new g_iMaxPlayers;
public plugin_modules()
{
require_module("fakemeta")
require_module("fun")
}
public plugin_precache()
{
g_iFwdSpawn = register_forward(FM_Spawn,"fwd_Spawn",1);
}
public fwd_Spawn(ent)
{
if(!pev_valid(ent))
return FMRES_IGNORED;
static szClassname[32];
pev(ent,pev_classname,szClassname,sizeof szClassname - 1);
if(equal(szClassname,g_szSpawnClassname))
{
if(vec_null(g_vKnifeOrigin[0]))
{
pev(ent,pev_origin,g_vKnifeOrigin[0]);
}
else if(!vec_null(g_vKnifeOrigin[0]) && vec_null(g_vKnifeOrigin[1]))
{
static Float:vTmp[3];
pev(ent,pev_origin,vTmp);
if((300.0 <= vector_distance(g_vKnifeOrigin[0],vTmp) < 600.0))
g_vKnifeOrigin[1] = vTmp;
}
}
return FMRES_IGNORED;
}
public forward_emitsound(const PIRATE, const Onceuponatimetherewasaverysmall, noise[], const Float:turtlewhoateabiggerturtleand, const Float:afterthatthesmallturtlegot, const veryveryverybig, const theend) {
if (g_noChallengingForAWhile || g_knifeArena || g_challenging || PIRATE < 1 || PIRATE > g_MAXPLAYERS || !is_user_alive(PIRATE) || !equal(noise, "weapons/knife_hitwall1.wav"))
return FMRES_IGNORED
new team = get_user_team(PIRATE), otherteam = 0, matchingOpponent = 0
// Make sure exactly one person on each team is alive.
for (new i = 1; i <= g_MAXPLAYERS; i++) {
if (!is_user_connected(i) || !is_user_alive(i) || PIRATE == i)
continue
if (get_user_team(i) == team) {
// No fun.
return FMRES_IGNORED
}
else {
if (++otherteam > 1) {
// No fun.
return FMRES_IGNORED
}
matchingOpponent = i
}
}
if (matchingOpponent == 0)
return FMRES_IGNORED
if (++g_challenges[PIRATE] >= KNIFESLASHES) {
Challenge(PIRATE, matchingOpponent)
if (is_user_bot(matchingOpponent)) {
new Float:val = float(DECIDESECONDS)
if (val < 2.0)
val = 2.0
remove_task(TASKID_BOTTHINK)
set_task(random_float(1.0, float(DECIDESECONDS) - 1.0), "BotDecides", TASKID_BOTTHINK)
}
g_challenges[PIRATE] = 0
}
else
set_task(1.0, "decreaseChallenges", PIRATE)
//client_print(PIRATE, print_chat, "Your challenges: %d", g_challenges[PIRATE])
return FMRES_IGNORED
}
public decreaseChallenges(id) {
if (--g_challenges[id] < 0)
g_challenges[id] = 0
}
public BotDecides() {
if (!g_challenging)
return
if (random_num(0,9) > 0)
Accept()
else {
DeclineMsg()
}
g_challenging = false
remove_task(TASKID_CHALLENGING)
}
Challenge(challenger, challenged) {
g_challenger = challenger
g_challenged = challenged
g_challenging = true
new challenger_name[32], challenged_name[32]
get_user_name(challenger, challenger_name, 31)
get_user_name(challenged, challenged_name, 31)
client_print(challenger, print_chat, "You challenge %s to a knife duel! Await the answer within %d seconds...", challenged_name, DECIDESECONDS)
new menu[1024], keys = MENU_KEY_1 | MENU_KEY_2
format(menu, 1023, "You are challenged by %s to a knife duel!^n^nWhat will it be? You have %d seconds to answer!^n^n\y1\w. Bring it on!^n\y2\w. No, I'd rather use my boomstick!", challenger_name, DECIDESECONDS)
show_menu(challenged, keys, menu, DECIDESECONDS, "JGHG's automatic knife duel")
set_task(float(DECIDESECONDS), "timed_toolate", TASKID_CHALLENGING)
}
public timed_toolate() {
if (g_challenging) {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
client_print(0, print_chat, "%s didn't answer %s's knife duel challenge fast enough...", challenged_name, challenger_name)
CancelAll()
}
}
public client_putinserver(id) {
set_task(25.0, "Announcement", id)
return PLUGIN_CONTINUE
}
public Announcement(id) {
client_print(id, print_chat, "When only you and one enemy are left standing, you can challenge him to a knife duel by slashing a wall with your knife.")
}
public challenged_menu(id, key) {
switch (key) {
case MENUSELECT1: {
// Accept
Accept()
}
case MENUSELECT2: {
// Decline
DeclineMsg()
}
}
g_challenging = false
remove_task(TASKID_CHALLENGING)
return PLUGIN_HANDLED
}
DeclineMsg() {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
client_print(0, print_chat, "%s turns down %s's knife duel challenge...", challenged_name, challenger_name)
}
Accept() {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
client_print(0, print_chat, "%s accepts %s's knife duel challenge!", challenged_name, challenger_name)
g_knifeArena = true
give_item(g_challenger, "weapon_knife")
give_item(g_challenged, "weapon_knife")
engclient_cmd(g_challenger, "weapon_knife")
engclient_cmd(g_challenged, "weapon_knife")
engfunc(EngFunc_SetOrigin,g_challenged,g_vKnifeOrigin[0]);
engfunc(EngFunc_SetOrigin,g_challenger,g_vKnifeOrigin[1]);
fm_entity_set_aim(g_challenged,g_challenger,0);
fm_entity_set_aim(g_challenger,g_challenged,0);
if(get_pcvar_num(g_Pcvar[CVAR_RESET]))
{
set_pev(g_challenged,pev_health,100.0);
set_pev(g_challenger,pev_health,100.0);
}
}
public event_holdwpn(id) {
if (!g_knifeArena || !is_user_alive(id))
return PLUGIN_CONTINUE
new weaponType = read_data(2)
for (new i = 0; i < ALLOWED_WEAPONS; i++) {
if (weaponType == g_allowedWeapons[i])
return PLUGIN_CONTINUE
}
engclient_cmd(id, "weapon_knife")
return PLUGIN_CONTINUE
}
public event_roundend() {
if (g_challenging || g_knifeArena)
CancelAll()
g_noChallengingForAWhile = true
set_task(4.0, "NoChallengingForAWhileToFalse")
return PLUGIN_CONTINUE
}
public NoChallengingForAWhileToFalse() {
g_noChallengingForAWhile = false
}
CancelAll() {
if (g_challenging) {
g_challenging = false
// Close menu of challenged
if (is_user_connected(g_challenged)) {
new usermenu, userkeys
get_user_menu(g_challenged, usermenu, userkeys) // get user menu
// Hmm this ain't working :-/
if (usermenu == g_challengemenu) // Close it!
show_menu(g_challenged, 0, "blabla") // show empty menu
}
}
if (g_knifeArena) {
g_knifeArena = false
}
remove_task(TASKID_BOTTHINK)
remove_task(TASKID_CHALLENGING)
}
public event_death() {
if (g_challenging || g_knifeArena)
CancelAll()
return PLUGIN_CONTINUE
}
#if defined DEBUG
public challengefn(id, level, cid) {
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new challenger[64], challenged[64]
read_argv(1, challenger, 63)
read_argv(2, challenged, 63)
console_print(id, "challenger: %s, challenged: %s", challenger, challenged)
new r = str_to_num(challenger)
new d = str_to_num(challenged)
Challenge(r, d)
if (is_user_bot(d))
Accept()
return PLUGIN_HANDLED
}
#endif // defined DEBUG
public plugin_init() {
register_plugin(PLUGINNAME, VERSION, AUTHOR)
register_event("CurWeapon", "event_holdwpn", "be", "1=1")
register_forward(FM_EmitSound, "forward_emitsound")
g_MAXPLAYERS = get_maxplayers()
g_challengemenu = register_menuid("JGHG's automatic knife duel"/*"You are challenged"*/)
register_menucmd(g_challengemenu, MENU_KEY_1 | MENU_KEY_2, "challenged_menu")
register_event("DeathMsg", "event_death", "a")
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_ctwin")
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_rounddraw")
unregister_forward(FM_Spawn,g_iFwdSpawn,1);
g_Pcvar[CVAR_COUNT] = register_cvar("kd_knifecount","3");
g_Pcvar[CVAR_TIMER] = register_cvar("kd_preparetime","3");
g_Pcvar[CVAR_MAXDISTANCE] = register_cvar("kd_maxdistance","550");
g_Pcvar[CVAR_ANNOUNCE] = register_cvar("kd_announce","1");
g_Pcvar[CVAR_RESET] = register_cvar("kd_resethp","1");
g_iMaxPlayers = get_maxplayers();
#if defined DEBUG
register_clcmd("0challenge", "challengefn", ADMIN_CFG, "<challenger> <challenged> - start knife duel challenge")
#endif // defined DEBUG
new Float:maptime = get_cvar_float("mp_timelimit")
if (maptime == 0.0)
maptime = 15.0
new Float:anntime = 60.0 * 5.0 // 5 minutes
if (maptime < 5.0)
anntime = maptime / 3.0
set_task(anntime, "Announcement", 0, "", 0, "b")
}
stock fm_entity_set_aim(id,ent,bone = 0)
{
if(!is_user_connected(id) || !pev_valid(ent))
return 0;
new Float:vOrigin[3];
pev(ent,pev_origin,vOrigin);
new Float:vEntOrigin[3],Float:vAngles[3];
if(bone)
engfunc(EngFunc_GetBonePosition,id,bone,vEntOrigin,vAngles);
else
pev(id,pev_origin,vEntOrigin);
vOrigin[0] -= vEntOrigin[0];
vOrigin[1] -= vEntOrigin[1];
vOrigin[2] -= vEntOrigin[2];
new Float:v_length;
v_length = vector_length(vOrigin);
new Float:vAimVector[3];
vAimVector[0] = vOrigin[0] / v_length;
vAimVector[1] = vOrigin[1] / v_length;
vAimVector[2] = vOrigin[2] / v_length;
new Float:vNewAngles[3];
vector_to_angle(vAimVector,vNewAngles);
vNewAngles[0] *= -1;
if(vNewAngles[1] > 180.0) vNewAngles[1] -= 360;
if(vNewAngles[1] < -180.0) vNewAngles[1] += 360;
if(vNewAngles[1] == 180.0 || vNewAngles[1] == -180.0) vNewAngles[1] = -179.9;
set_pev(id,pev_angles,vNewAngles);
set_pev(id,pev_fixangle,1);
return 1;
}
stock vec_null(Float:vec[3])
{
if(!vec[0] && !vec[1] && !vec[2])
return 1;
return 0;
}
stock bool:check_players()
{
new iNum[2];
for(new i = 1 ; i <= g_iMaxPlayers ; i++)
{
if(!is_user_alive(i))
continue;
if(get_user_team(i) == 1)
++iNum[0];
else if(get_user_team(i) == 2)
++iNum[1];
}
if((iNum[0] == 1) && (iNum[1] == 1))
return true;
return false;
}
stock get_opponent(team)
{
for(new i = 0 ; i <= g_iMaxPlayers ; i++)
{
if(!is_user_alive(i))
continue;
if(get_user_team(i) == team)
return i;
}
return 0;
}
stock fm_get_speed_vector2(ent1,ent2,Float:speed,Float:new_velocity[3])
{
if(!pev_valid(ent1) || !pev_valid(ent2))
return 0;
static Float:vOrigin1[3];
pev(ent1,pev_origin,vOrigin1);
static Float:vOrigin2[3];
pev(ent2,pev_origin,vOrigin2);
new_velocity[0] = vOrigin2[0] - vOrigin1[0];
new_velocity[1] = vOrigin2[1] - vOrigin1[1];
new_velocity[2] = vOrigin2[2] - vOrigin1[2];
new Float:fNum = floatsqroot(speed * speed / (new_velocity[0] * new_velocity[0] + new_velocity[1] * new_velocity[1] + new_velocity[2] * new_velocity[2]));
new_velocity[0] *= fNum;
new_velocity[1] *= fNum;
new_velocity[2] *= fNum;
return 1;
}
stock Float:fm_get_entity_distance(ent1,ent2)
{
if(!pev_valid(ent1) || !pev_valid(ent2))
return 0.0;
static Float:vOrigin1[3];
pev(ent1,pev_origin,vOrigin1);
static Float:vOrigin2[3];
pev(ent2,pev_origin,vOrigin2);
return vector_distance(vOrigin1,vOrigin2);
}
Sa bu eklentiyi oyt için kurmak istiyorum fakat sma derleme hatası kod bozuk diye uyarı veriyor acaba sorun nedir.
Kod:
#define PLUGINNAME ""
#define VERSION "0.3"
#define AUTHOR "JGHG"
/*
Copyleft 2005
====================
Where I come from, if you cut the wall repeteadly with your knife it means you're challenging your last opponent to a knife duel. ;-)
I decided to automate this process.
If only you and another person on the opposite team remain in the round, you can hit a wall (or another object) with your knife, THREE TIMES in fast succession.
By this action you challenge your opponent to a knife duel. The person you challenge gets a menu where he can accept/decline your
challenge. The challenged person has 10 seconds to decide his mind, else the challenge is automatically declined, and the menu should be closed automatically.
Should a knife duel start, it works out pretty much like a round of Knife Arena: you can only use the knife (and the C4!).
As soon as the round ends the Knife Arena mode is turned off.
/JGHG
VERSIONS
========
050421 0.3 You must now slash with your knife three times in fast succession to challenge someone.
050208 0.2 Fixed seconds display.
Bots should now respond correctly and a little human like. They will mostly accept challenges. ;-)
Small fixes here and there. :-)
050208 0.1 First version - largely untested
*/
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <ColorChat>
#define DEBUG
#if defined DEBUG
#include <amxmisc>
#endif // defined DEBUG
#define MENUSELECT1 0
#define MENUSELECT2 1
#define TASKID_CHALLENGING 2348923
#define TASKID_BOTTHINK 3242321
#define DECIDESECONDS 10
#define ALLOWED_WEAPONS 2
#define KNIFESLASHES 3 // the nr of slashes within a short amount of time until a challenge starts...
// Globals below
new g_allowedWeapons[ALLOWED_WEAPONS] = {CSW_KNIFE, CSW_C4}
new g_MAXPLAYERS
new bool:g_challenging = false
new bool:g_knifeArena = false
new bool:g_noChallengingForAWhile = false
new g_challengemenu
new g_challenger
new g_challenged
new g_challenges[33]
// Globals above
public plugin_precache()
{
precache_sound("misc/OG/round_berserker")
precache_model("models/v_knife.mdl")
precache_model("models/p_knife.mdl")
}
public plugin_init() {
register_plugin(PLUGINNAME, VERSION, AUTHOR)
register_event("CurWeapon", "event_holdwpn", "be", "1=1")
register_forward(FM_EmitSound, "forward_emitsound")
g_MAXPLAYERS = get_maxplayers()
g_challengemenu = register_menuid("JGHG's automatic knife duel"/*"You are challenged"*/)
register_menucmd(g_challengemenu, MENU_KEY_1 | MENU_KEY_2, "challenged_menu")
register_event("DeathMsg", "event_death", "a")
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_ctwin")
register_event("SendAudio", "event_roundend", "a", "2&%!MRAD_rounddraw")
register_event("ResetHUD", "event_hud_reset", "be");
register_clcmd("fullupdate", "clcmd_fullupdate") ;
register_event("TextMsg", "event_restart_attempt", "a", "2=#Game_will_restart_in");
#if defined DEBUG
register_clcmd("0challenge", "challengefn", ADMIN_CFG, "< desafiador > < desafiado > - inicia un duelo a cuchillos")
#endif // defined DEBUG
new Float:maptime = get_cvar_float("mp_timelimit")
if (maptime == 0.0)
maptime = 15.0
new Float:anntime = 60.0 * 5.0 // 5 minutes
if (maptime < 5.0)
anntime = maptime / 3.0
set_task(anntime, "Announcement", 0, "", 0, "b")
}
public plugin_modules()
{
require_module("fakemeta")
require_module("fun")
}
public forward_emitsound(const PIRATE, const Onceuponatimetherewasaverysmall, noise[], const Float:turtlewhoateabiggerturtleand, const Float:afterthatthesmallturtlegot, const veryveryverybig, const theend) {
if (g_noChallengingForAWhile || g_knifeArena || g_challenging || PIRATE < 1 || PIRATE > g_MAXPLAYERS || !is_user_alive(PIRATE) || !equal(noise, "weapons/knife_hitwall1.wav"))
return FMRES_IGNORED
new team = get_user_team(PIRATE), otherteam = 0, matchingOpponent = 0
// Make sure exactly one person on each team is alive.
for (new i = 1; i <= g_MAXPLAYERS; i++) {
if (!is_user_connected(i) || !is_user_alive(i) || PIRATE == i)
continue
if (get_user_team(i) == team) {
// No fun.
return FMRES_IGNORED
}
else {
if (++otherteam > 1) {
// No fun.
return FMRES_IGNORED
}
matchingOpponent = i
}
}
if (matchingOpponent == 0)
return FMRES_IGNORED
if (++g_challenges[PIRATE] >= KNIFESLASHES) {
Challenge(PIRATE, matchingOpponent)
if (is_user_bot(matchingOpponent)) {
new Float:val = float(DECIDESECONDS)
if (val < 2.0)
val = 2.0
remove_task(TASKID_BOTTHINK)
set_task(random_float(1.0, float(DECIDESECONDS) - 1.0), "BotDecides", TASKID_BOTTHINK)
}
g_challenges[PIRATE] = 0
}
else
set_task(1.0, "decreaseChallenges", PIRATE)
//client_print(PIRATE, print_chat, "Sus desafios: %d", g_challenges[PIRATE])
return FMRES_IGNORED
}
public decreaseChallenges(id) {
if (--g_challenges[id] < 0)
g_challenges[id] = 0
}
public BotDecides() {
if (!g_challenging)
return
if (random_num(0,9) > 0)
Accept()
else {
DeclineMsg()
}
g_challenging = false
remove_task(TASKID_CHALLENGING)
}
Challenge(challenger, challenged) {
g_challenger = challenger
g_challenged = challenged
g_challenging = true
new challenger_name[32], challenged_name[32]
get_user_name(challenger, challenger_name, 31)
get_user_name(challenged, challenged_name, 31)
ColorChat(challenger, GREEN, "^3[OG]^1Has desafiado a ^4%s! ^1Espere la respuesta en: ^4[%d] ^31segundos...", challenged_name, DECIDESECONDS)
new menu[1024], keys = MENU_KEY_1 | MENU_KEY_2
format(menu, 1023, "%s te ha desafiado a un duelo a cuchillos!^n^nTienes %d segundos para responder!^n^n\y1\w. Dale gil!^n\y2\w. No gracias, te la doy sin faka!", challenger_name, DECIDESECONDS)
show_menu(challenged, keys, menu, DECIDESECONDS, "JGHG's automatic knife duel")
set_task(float(DECIDESECONDS), "timed_toolate", TASKID_CHALLENGING)
}
public timed_toolate() {
if (g_challenging) {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
ColorChat(0, GREEN, "^3[OG]^4%s ^1no respondio el duelo de ^4%s", challenged_name, challenger_name)
CancelAll()
}
}
public client_putinserver(id) {
set_task(25.0, "Announcement", id)
return PLUGIN_CONTINUE
}
public Announcement(id) {
ColorChat(id, GREEN, "^3[OG]^1Cuando solo quedes tu y un enemigo, golpea 3 veces el cuchillo en la pared para desafiarlo.")
}
public challenged_menu(id, key) {
switch (key) {
case MENUSELECT1: {
// Accept
Accept()
}
case MENUSELECT2: {
// Decline
DeclineMsg()
}
}
g_challenging = false
remove_task(TASKID_CHALLENGING)
return PLUGIN_HANDLED
}
DeclineMsg() {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
ColorChat(0, GREEN, "^3[OG]^4%s ^1rechazo el duelo de ^4%s", challenged_name, challenger_name)
}
Accept() {
new challenger_name[32], challenged_name[32]
get_user_name(g_challenger, challenger_name, 31)
get_user_name(g_challenged, challenged_name, 31)
set_user_health(g_challenger, 100);
set_user_health(g_challenged, 100);
ColorChat(0, GREEN, "^3[OG]^4%s ^1acepto el duelo de ^4%s", challenged_name, challenger_name)
g_knifeArena = true
give_item(g_challenger, "weapon_knife")
give_item(g_challenged, "weapon_knife")
engclient_cmd(g_challenger, "weapon_knife")
engclient_cmd(g_challenged, "weapon_knife")
client_cmd(0,"spk misc/OG/round_berserker")
}
public event_holdwpn(id) {
if (!g_knifeArena || !is_user_alive(id))
return PLUGIN_CONTINUE
new weaponType = read_data(2)
for (new i = 0; i < ALLOWED_WEAPONS; i++) {
if (weaponType == g_allowedWeapons[i])
return PLUGIN_CONTINUE
}
engclient_cmd(id, "weapon_knife")
return PLUGIN_CONTINUE
}
public event_roundend() {
if (g_challenging || g_knifeArena)
CancelAll()
g_noChallengingForAWhile = true
set_task(4.0, "NoChallengingForAWhileToFalse")
return PLUGIN_CONTINUE
}
public NoChallengingForAWhileToFalse() {
g_noChallengingForAWhile = false
}
CancelAll() {
if (g_challenging) {
g_challenging = false
// Close menu of challenged
if (is_user_connected(g_challenged)) {
new usermenu, userkeys
get_user_menu(g_challenged, usermenu, userkeys) // get user menu
// Hmm this ain't working :-/
if (usermenu == g_challengemenu) // Close it!
show_menu(g_challenged, 0, "blabla") // show empty menu
}
}
if (g_knifeArena) {
g_knifeArena = false
}
remove_task(TASKID_BOTTHINK)
remove_task(TASKID_CHALLENGING)
}
public event_death() {
if (g_challenging || g_knifeArena)
CancelAll()
return PLUGIN_CONTINUE
}
#if defined DEBUG
public challengefn(id, level, cid) {
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new challenger[64], challenged[64]
read_argv(1, challenger, 63)
read_argv(2, challenged, 63)
console_print(id, "Desafiador: %s, Desafiado: %s", challenger, challenged)
new r = str_to_num(challenger)
new d = str_to_num(challenged)
Challenge(r, d)
if (is_user_bot(d))
Accept()
return PLUGIN_HANDLED
}
#endif // defined DEBUG
stock chatcolor(id, const input[], any:...)
{
static szMsg[191], msgSayText;
if (!msgSayText)
msgSayText = get_user_msgid("SayText");
vformat(szMsg, 190, input, 3);
replace_all(szMsg, 190, "!g", "^4");
replace_all(szMsg, 190, "!y", "^1");
replace_all(szMsg, 190, "!team", "^3");
message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id);
write_byte(id ? id : 33);
write_string(szMsg);
message_end();
}
arkadaşlar merhabalar. bomba sesleri var fakat elimde sma'sı yok. buna ayarlı bir şekilde yapan olursa güzel olur.
Mapleri Yüklediğimde sw çöküyor çözümü ?
Selamlar altaki eklenti panelde derleme hatası kod bozuk diye hata veriyor sebebi nedir acaba ?
Kod:
#include <amxmodx>
#include <amxmisc>
#include <dhudmessage>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <colorchat>
#include <cstrike>
#include <nvault>
#define PLUGIN "ChatBan System v2.3"
#define VERSION "2.3"
#define AUTHOR "Kalendarky"
#define CREDITS "Belo95135"
new name[32];
new iBanTimeRemaining[33];
new g_iPlayerChatBanTime[33];
new get_minutes[32];
new bantime[32];
new g_nVault;
new voiceBan;
new const Nadavkoreklama[][] =
{
"kokot",
".kot",
"ko kot",
"mrdk",
"debil",
"dilinak",
"pico",
"prdel",
"kurva",
"dpc",
"kurvo",
"jebla",
"mrd",
"pica",
"pice",
"zkurvy",
"zmrd",
"curak",
"kkt",
"kokot",
"vyjeban",
"zasrane",
"napic",
"neser",
"jebu",
"dpc",
"devka",
"devko",
"picus",
"kotel",
"gsko",
"gamesit",
"epiczone",
"epic zone",
"slaci.eu",
"csforce",
"cs-force",
"gamenice",
"v-gaming",
"gigagame",
"cs-down",
"halfgam",
"gamesites",
"gayshits",
"gay",
"homos",
"gsko",
".cz",
".com",
".eu",
".info",
".ru",
".sk",
"buzerant",
"jebly homos",
"skap",
"skap na rakovinu",
"pojeb"
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say", "chat_madafaka");
register_clcmd("say_team", "chat_madafaka");
register_concmd("amx_chatban", "Chatban_CMD", ADMIN_BAN, "<name or #userid> <minutes> [reason]");
register_concmd("amx_unchatban", "Unban_CMD", ADMIN_IMMUNITY, "<name or #userid>");
register_forward(FM_Voice_SetClientListening, "forward_OnVoice", 0);
voiceBan = register_cvar("amx_voiceban","1");
g_nVault = nvault_open( "chatbanvault" );
}
public plugin_natives()
{
register_library("chatban_v22");
register_native("chatban_isbanned", "get_ban");
register_native("chatban_getban_time_seconds", "get_ban_time_sec");
register_native("chatban_getban_time_minutes", "get_ban_time_min");
register_native("chatban_getban_time_remain", "get_ban_time_remain");
}
public get_ban(id)
{
if(g_iPlayerChatBanTime[ id ] > 0)
iBanTimeRemaining[id] = g_iPlayerChatBanTime[id] - time();
else
iBanTimeRemaining[ id ] = 0;
if(iBanTimeRemaining[id] > 0)
{
return 1;
}
else
return 0;
}
public get_ban_time_sec(id)
{
return bantime[id];
}
public get_ban_time_minutes(id)
{
return get_minutes[id];
}
public get_ban_time_remain(id)
{
if(g_iPlayerChatBanTime[ id ] > 0)
iBanTimeRemaining[id] = g_iPlayerChatBanTime[id] - time();
else
iBanTimeRemaining[ id ] = 0;
if(iBanTimeRemaining[id] > 0)
{
return iBanTimeRemaining[id];
}
else
return 0;
}
public plugin_end( )
{
nvault_close( g_nVault );
return PLUGIN_CONTINUE;
}
public forward_OnVoice(receiver, sender, bool:bListen) {
if(g_iPlayerChatBanTime[ sender ] > 0)
iBanTimeRemaining[sender] = g_iPlayerChatBanTime[sender] - time();
else
iBanTimeRemaining[ sender ] = 0;
if(get_pcvar_num(voiceBan) == 1) {
if(receiver == sender || !is_user_connected(receiver) || !is_user_connected(sender) || iBanTimeRemaining[sender] > 0)
{
engfunc(EngFunc_SetClientListening, receiver, sender, false);
forward_return(FMV_CELL, false);
return FMRES_SUPERCEDE;
}
}
/* Priprava funkcnosti s jailbreak modom.
else if (get_pcvar_num(voiceBan) == 2)
{
if(receiver == sender || !is_user_connected(receiver) || !is_user_connected(sender) || iBanTimeRemaining[sender] > 0 || cs_get_user_team(sender) == CS_TEAM_T)
{
engfunc(EngFunc_SetClientListening, receiver, sender, false);
forward_return(FMV_CELL, false);
return FMRES_SUPERCEDE;
}
} */
return FMRES_IGNORED;
}
public chat_madafaka(id)
{
new Speech[192]
read_args(Speech,192)
remove_quotes(Speech)
if(g_iPlayerChatBanTime[ id ] > 0)
iBanTimeRemaining[id] = g_iPlayerChatBanTime[id] - time();
else
iBanTimeRemaining[ id ] = 0;
if(iBanTimeRemaining[id] > 0 && !equal(Speech,"/rs") || iBanTimeRemaining[id] > 0 && !equal(Speech,"/top15") || iBanTimeRemaining[id] > 0 && !equal(Speech,"/rank"))
{
ColorChat( id, GREEN, "^1[^4ChatBan^1] ^3Cas na ktory si dostal ban:^4 %d ^3minut (^4 %d ^3sekund)",get_minutes[id], bantime[id]);
ColorChat( id, GREEN, "^1[^4ChatBan^1] ^3Mas ban na chat! Zostava:^4 %d ^3sekund",iBanTimeRemaining[ id ]);
ColorChat( id, GREEN, "^1[^4ChatBan^1] ^3Prikazy ^4/rank, /rs, /top15 ^3su povolene!");
return PLUGIN_HANDLED;
}
for( new i = 0 ; i < sizeof ( Nadavkoreklama ) ; i++) {
if(containi(Speech, Nadavkoreklama[i]) != -1)
{
get_user_name( id, name, 31 )
ColorChat( id, GREEN, "^1[^4ChatManager^1] ^1|^4Reklamy/Nadavky^1| ^3su zakazane.");
ColorChat( id, GREEN, "^1[^4ChatBan^1] ^1Bol si zabanovany na chat na 1 minutu.");
server_cmd("amx_chatban ^"%s^" 1 ^"Porusenie pravidiel[Nadavky/Reklama]^"", name)
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}
public client_connect(id)
{
Load(id);
}
public client_disconnect(id)
{
Save(id);
}
public Chatban_CMD(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;
new target[32], minutes[8], reason[64], admin[32], steamid[32];
read_argv(1, target, 31);
read_argv(2, minutes, 7);
read_argv(3, reason, 63);
new targetid = cmd_target(id,target,8);
get_user_authid(targetid,steamid,31);
get_user_name(id,admin,31);
if(!is_user_connected(targetid))
{
set_dhudmessage( 255, 25, 60, 0.28, 0.59, 1, 0.03, 3.5, 0.03, 12.0 );
show_dhudmessage(id,"Chyba, Chat ban nejde dat hracovy^nKtory neni pripojeny!");
return PLUGIN_HANDLED;
}
get_user_name(targetid,name,31)
get_minutes[targetid] = str_to_num(minutes);
bantime[targetid] = str_to_num(minutes) * 60;
g_iPlayerChatBanTime[targetid] = time() + bantime[targetid];
set_dhudmessage( 255, 25, 60, 0.28, 0.59, 0, 6.0, 12.0);
show_dhudmessage(0,"Hrac %s Dostal Chat Ban ^nod Admina: %s ^n Dovod:%s ^n Dlzka:%d minut", name ,admin ,reason, get_minutes[targetid]);
return PLUGIN_HANDLED;
}
public Unban_CMD(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED;
new target[32], name[32], admin[32];
read_argv(1, target, 31)
new targetid = cmd_target(id,target,8)
if(!is_user_connected(targetid))
{
set_dhudmessage(0, 0, 255, 0.28, 0.59, 0, 6.0, 9.0)
show_dhudmessage(id,"Chyba, UnChatban nejde dat hracovy^nKtory neni pripojeny!")
return PLUGIN_HANDLED;
}
get_user_name(id,admin,31)
g_iPlayerChatBanTime[targetid] = 0;
iBanTimeRemaining[targetid] = 0;
Save(targetid);
Save(id)
get_user_name(targetid,name,31)
set_dhudmessage( 255, 25, 60, 0.28, 0.59, 0, 6.0, 12.0);
show_dhudmessage(0,"Hrac %s Dostal Unban na Chat ^nod Admina: %s ", name ,admin);
return PLUGIN_HANDLED;
}
public Save(id)
{
new szAuthid[ 32 ];
get_user_authid( id, szAuthid, charsmax(szAuthid) );
new szVaultKey[ 128 ], szVaultData[ 512 ];
formatex( szVaultKey, 127, "chatban-%s", szAuthid );
formatex( szVaultData, 511, "%i %i %i", g_iPlayerChatBanTime[id], bantime[id], get_minutes[id]);
nvault_set( g_nVault, szVaultKey, szVaultData );
}
public Load(id)
{
new szAuthid[ 32 ];
get_user_authid( id, szAuthid, charsmax(szAuthid) );
new szVaultKey[ 128 ], szVaultData[ 512 ];
formatex( szVaultKey, 127, "chatban-%s", szAuthid );
formatex( szVaultData, 511, "%i %i %i", g_iPlayerChatBanTime[id], bantime[id], get_minutes[id]);
nvault_get( g_nVault, szVaultKey, szVaultData, 511 );
new chat_time[33],bants[33],getmin[33];
parse( szVaultData, chat_time, 31, bants, 31, getmin, 31);
new chattime[33];
chattime[id] = str_to_num(chat_time);
new bantss[33];
bantss[id] = str_to_num(bants);
new getmins[33];
getmins[id] = str_to_num(getmin);
if(chattime[id] > 0)
g_iPlayerChatBanTime[ id ] = str_to_num(chat_time);
else
g_iPlayerChatBanTime[ id ] = 0;
if(bantss[id] > 0)
bantime[id] = str_to_num(bants);
else
bantime[id] = 0;
if(getmins[id] > 0)
get_minutes[id] = str_to_num(getmin);
else
get_minutes[id] = 0;
}
Merhaba Jbmenu'mün Bıçak Menüsünde 2 Tane Bıçak Var .
Benim İstediğim Orada 3 Tane Bıçak Olması Yani Şöyle ;
Knife 1 [-2 TL]
Knife 2 [-2 TL]
Testere + Bomba [50 TL]
Olacak Şekilde Ayarlıyabilirmisiniz?
Şimdiden Teşekkürler!
Jbmenu :
Benim İstediğim Orada 3 Tane Bıçak Olması Yani Şöyle ;
Knife 1 [-2 TL]
Knife 2 [-2 TL]
Testere + Bomba [50 TL]
Olacak Şekilde Ayarlıyabilirmisiniz?
Şimdiden Teşekkürler!
Jbmenu :
Merhaba arkadaşlar,
Zombi escape sunucum için bir eklenti gerekli yardımcı olabilecek olan varsa minnettar olurum.
ADMIN_LEVEL_B yetkisine sahip oyunculara 250 cephane paketi ile,
ADMIN_LEVEL_C yetkisine sahip oyunculara 500 cephane paketi verme eklentisini paylaşa bilirseniz gerçekten minnet duyarım. Şimdiden teşekkürler..
Zombi escape sunucum için bir eklenti gerekli yardımcı olabilecek olan varsa minnettar olurum.
ADMIN_LEVEL_B yetkisine sahip oyunculara 250 cephane paketi ile,
ADMIN_LEVEL_C yetkisine sahip oyunculara 500 cephane paketi verme eklentisini paylaşa bilirseniz gerçekten minnet duyarım. Şimdiden teşekkürler..
Hoşgeldin, Ziyaretçi
Forumda Ara
Forum İstatistikleri
Son Aktiviteler
[ReAPI] Parachute
Yorumlar:
455
•
Okunma:
64.375