oyuncunun steamid sini gösterme
arkadaşlar meraba. Ban ile ilgili bi sorunum oldugunu daha önceden de söylemiştim bu sorunu %90 hallettim yeni bir plugin kodlayarak fakat şöyle bir problem var. Oyuncuyu banladıgım zaman listip.cfg ye oyuncuların ip adresleri gayet güzel yazıyo mesela addip 0:0 192.168.xx.xx şeklinde herkeisn cıkıyo alt alta fakat banned.cfg de steam id leri yazması gerekirken şu şekilde yazıyor.
banid 0.0 PENDING
anlam veremedim niye böyle yazıyo. PENDING yazan yerde normalde oyuncunun steam ıd si yazması lazım nosteam ise VALVE_ID_LAN şeklinde yazması lazım fakat her oyuncuya id ban attıgımda bu yazıyo banned.cfg de. ne yapmam lazım ? kodlama şu şekilde.
PHP- Kodu:
new authids[35]
get_user_authid(id, authids, 34)
server_cmd("banid #%d kick;writeid", authids)
fakat oyuncuyu gayet güzel banlamasına rağmen banned.cfg ye
banid 0.0 VALVE_ID_LAN yada
banid 0.0 STEAM_0:0:52124455 şeklinde yazmıyo.
banid 0.0 PENDING şeklinde yazıyor . bunu nasıl düzeltebilirim yardım istiyorum teşekkürler.
---------- Alttaki Mesaj Zamani 02:32 ---------- Önceki Mesaj Zamani 02:07 ----------
yani bunu istememin sebebi ben bütün oyunculara id ban atmaya kalksam hep banid 0.0 PENDING yazıyor banned.cfg de oyuncular steam de olsa no steam de olsa bu yazıyo ama normalde steamid lerının yazması lazım PENDING kısmında :)
---------- Alttaki Mesaj Zamani 03:42 ---------- Önceki Mesaj Zamani 02:32 ----------
admincmd.sma dosyasını editleyerek amx_ban ve amx_banip publiclerine addip ve banid satırlarını ekledim gerekli şeyleri oluşturarak. şuanda banlar yazılır durmda fakat yukarıdaki gibi bi sorunum var.
Cevap: oyuncunun steamid sini gösterme
Amx_who yazdiginda steamid ler gorunuyormu yoksa pending mi
Cevap: oyuncunun steamid sini gösterme
hemek bakıyorum
---------- Alttaki Mesaj Zamani 11:18 ---------- Önceki Mesaj Zamani 11:15 ----------
# nick authid userid imm res access
1 burak STEAM_0:0:56166032 1 Yes Yes abcdefghijklmnopqrs
buyrun bu şekilde yazıyo fakat ben şöyle bi şey yaptım. admincmd.sma yı baya bi editledim. Bişey farkettim. amx_ban nick 0 şeklinde yada amx_banip nick 0 şeklinde yanı süresiz banlarsam direk oyuncunun id sini yazıyo banned.cfg ye fakat amx_banip nick 10 yada amx_ban nick 10 gibi 0 dan farklı bir zaman yazarsam bu sefer STEAM ID yazmıyo PENDING yazıyo herkeste. smayı da paylaşıyorum belki editleyecegin bi yer vardır bunu düzeltmek icin.
PHP- Kodu:
/* AMX Mod X
* Admin Commands Plugin
*
* by the AMX Mod X Development Team
* originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* In addition, as a special exception, the author gives permission to
* link the code of this program with the Half-Life Game Engine ("HL
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
* L.L.C ("Valve"). You must obey the GNU General Public License in all
* respects for all of the code used other than the HL Engine and MODs
* from Valve. If you modify this file, you may extend this exception
* to your version of the file, but you are not obligated to do so. If
* you do not wish to do so, delete this exception statement from your
* version.
*/
#include <amxmodx>
#include <amxmisc>
// This is not a dynamic array because it would be bad for 24/7 map servers.
#define OLD_CONNECTION_QUEUE 10
new g_pauseCon
new Float:g_pausAble
new bool:g_Paused
new bool:g_PauseAllowed = false
new g_addCvar[] = "amx_cvar add %s"
new pausable;
new rcon_password;
// Old connection queue
new g_Names[OLD_CONNECTION_QUEUE][32];
new g_SteamIDs[OLD_CONNECTION_QUEUE][32];
new g_IPs[OLD_CONNECTION_QUEUE][32];
new g_Access[OLD_CONNECTION_QUEUE];
new g_Tracker;
new g_Size;
stock InsertInfo(id)
{
// Scan to see if this entry is the last entry in the list
// If it is, then update the name and access
// If it is not, then insert it again.
if (g_Size > 0)
{
new ip[32]
new auth[32];
get_user_authid(id, auth, charsmax(auth));
get_user_ip(id, ip, charsmax(ip), 1/*no port*/);
new last = 0;
if (g_Size < sizeof(g_SteamIDs))
{
last = g_Size - 1;
}
else
{
last = g_Tracker - 1;
if (last < 0)
{
last = g_Size - 1;
}
}
if (equal(auth, g_SteamIDs[last]) &&
equal(ip, g_IPs[last])) // need to check ip too, or all the nosteams will while it doesn't work with their illegitimate server
{
get_user_name(id, g_Names[last], charsmax(g_Names[]));
g_Access[last] = get_user_flags(id);
return;
}
}
// Need to insert the entry
new target = 0; // the slot to save the info at
// Queue is not yet full
if (g_Size < sizeof(g_SteamIDs))
{
target = g_Size;
++g_Size;
}
else
{
target = g_Tracker;
++g_Tracker;
// If we reached the end of the array, then move to the front
if (g_Tracker == sizeof(g_SteamIDs))
{
g_Tracker = 0;
}
}
get_user_authid(id, g_SteamIDs[target], charsmax(g_SteamIDs[]));
get_user_name(id, g_Names[target], charsmax(g_Names[]));
get_user_ip(id, g_IPs[target], charsmax(g_IPs[]), 1/*no port*/);
g_Access[target] = get_user_flags(id);
}
stock GetInfo(i, name[], namesize, auth[], authsize, ip[], ipsize, &access)
{
if (i >= g_Size)
{
abort(AMX_ERR_NATIVE, "GetInfo: Out of bounds (%d:%d)", i, g_Size);
}
new target = (g_Tracker + i) % sizeof(g_SteamIDs);
copy(name, namesize, g_Names[target]);
copy(auth, authsize, g_SteamIDs[target]);
copy(ip, ipsize, g_IPs[target]);
access = g_Access[target];
}
public client_disconnect(id)
{
if (!is_user_bot(id))
{
InsertInfo(id);
}
}
public plugin_init()
{
register_plugin("Admin Commands", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("admincmd.txt")
register_dictionary("common.txt")
register_dictionary("adminhelp.txt")
register_concmd("amx_kick", "cmdKick", ADMIN_KICK, "<name or #userid> [reason]")
register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
register_concmd("amx_banip", "cmdBanIP", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
register_concmd("amx_addban", "cmdAddBan", ADMIN_BAN, "<^"authid^" or ip> <minutes> [reason]")
register_concmd("amx_unban", "cmdUnban", ADMIN_BAN, "<^"authid^" or ip>")
register_concmd("amx_slay", "cmdSlay", ADMIN_SLAY, "<name or #userid>")
register_concmd("amx_slap", "cmdSlap", ADMIN_SLAY, "<name or #userid> [power]")
register_concmd("amx_leave", "cmdLeave", ADMIN_KICK, "<tag> [tag] [tag] [tag]")
register_concmd("amx_pause", "cmdPause", ADMIN_CVAR, "- pause or unpause the game")
register_concmd("amx_who", "cmdWho", ADMIN_ADMIN, "- displays who is on server")
register_concmd("amx_cvar", "cmdCvar", ADMIN_CVAR, "<cvar> [value]")
register_concmd("amx_plugins", "cmdPlugins", ADMIN_ADMIN)
register_concmd("amx_modules", "cmdModules", ADMIN_ADMIN)
register_concmd("amx_map", "cmdMap", ADMIN_MAP, "<mapname>")
register_concmd("amx_cfg", "cmdCfg", ADMIN_CFG, "<filename>")
register_concmd("amx_nick", "cmdNick", ADMIN_SLAY, "<name or #userid> <new nick>")
register_concmd("amx_last", "cmdLast", ADMIN_BAN, "- list the last few disconnected clients info");
register_clcmd("amx_rcon", "cmdRcon", ADMIN_RCON, "<command line>")
register_clcmd("amx_showrcon", "cmdShowRcon", ADMIN_RCON, "<command line>")
register_clcmd("pauseAck", "cmdLBack")
rcon_password=get_cvar_pointer("rcon_password");
pausable=get_cvar_pointer("pausable");
}
public plugin_cfg()
{
// Cvars which can be changed only with rcon access
server_cmd(g_addCvar, "rcon_password")
server_cmd(g_addCvar, "amx_show_activity")
server_cmd(g_addCvar, "amx_mode")
server_cmd(g_addCvar, "amx_password_field")
server_cmd(g_addCvar, "amx_default_access")
server_cmd(g_addCvar, "amx_reserved_slots")
server_cmd(g_addCvar, "amx_reservation")
server_cmd(g_addCvar, "amx_sql_table");
server_cmd(g_addCvar, "amx_sql_host");
server_cmd(g_addCvar, "amx_sql_user");
server_cmd(g_addCvar, "amx_sql_pass");
server_cmd(g_addCvar, "amx_sql_db");
server_cmd(g_addCvar, "amx_sql_type");
}
public cmdKick(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF)
if (!player)
return PLUGIN_HANDLED
new authid[32], authid2[32], name2[32], name[32], userid2, reason[32]
get_user_authid(id, authid, 31)
get_user_authid(player, authid2, 31)
get_user_name(player, name2, 31)
get_user_name(id, name, 31)
userid2 = get_user_userid(player)
read_argv(2, reason, 31)
remove_quotes(reason)
log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^" (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, reason)
show_activity_key("ADMIN_KICK_1", "ADMIN_KICK_2", name, name2);
if (is_user_bot(player))
server_cmd("kick #%d", userid2)
else
{
if (reason[0])
server_cmd("kick #%d ^"%s^"", userid2, reason)
else
server_cmd("kick #%d", userid2)
}
console_print(id, "[AMXX] Client ^"%s^" kicked", name2)
return PLUGIN_HANDLED
}
public cmdUnban(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[32], authid[32], name[32]
read_argv(1, arg, 31)
if (contain(arg, ".") != -1)
{
server_cmd("removeip ^"%s^";writeip", arg)
console_print(id, "[AMXX] %L", id, "IP_REMOVED", arg)
} else {
server_cmd("removeid %s;writeid", arg)
console_print(id, "[AMXX] %L", id, "AUTHID_REMOVED", arg)
}
get_user_name(id, name, 31)
show_activity_key("ADMIN_UNBAN_1", "ADMIN_UNBAN_2", name, arg);
get_user_authid(id, authid, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" unban ^"%s^"", name, get_user_userid(id), authid, arg)
return PLUGIN_HANDLED
}
/* amx_addban is a special command now.
* If a user with rcon uses it, it bans the user. No questions asked.
* If a user without rcon but with ADMIN_BAN uses it, it will scan the old
* connection queue, and if it finds the info for a player in it, it will
* check their old access. If they have immunity, it will not ban.
* If they do not have immunity, it will ban. If the user is not found,
* it will refuse to ban the target.
*/
public cmdAddBan(id, level, cid)
{
if (!cmd_access(id, level, cid, 3, true)) // check for ADMIN_BAN access
{
if (get_user_flags(id) & level) // Getting here means they didn't input enough args
{
return PLUGIN_HANDLED;
}
if (!cmd_access(id, ADMIN_RCON, cid, 3)) // If somehow they have ADMIN_RCON without ADMIN_BAN, continue
{
return PLUGIN_HANDLED;
}
}
new arg[32], authid[32], name[32], minutes[32], reason[32]
read_argv(1, arg, 31)
read_argv(2, minutes, 31)
read_argv(3, reason, 31)
if (!(get_user_flags(id) & ADMIN_RCON))
{
new bool:canban = false;
new bool:isip = false;
// Limited access to this command
if (equali(arg, "STEAM_ID_PENDING") ||
equali(arg, "STEAM_ID_LAN") ||
equali(arg, "HLTV") ||
equali(arg, "4294967295") ||
equali(arg, "VALVE_ID_LAN") ||
equali(arg, "VALVE_ID_PENDING"))
{
// Hopefully we never get here, so ML shouldn't be needed
console_print(id, "Cannot ban %s", arg);
return PLUGIN_HANDLED;
}
if (contain(arg, ".") != -1)
{
isip = true;
}
// Scan the disconnection queue
if (isip)
{
new IP[32];
new Name[32];
new dummy[1];
new Access;
for (new i = 0; i < g_Size; i++)
{
GetInfo(i, Name, charsmax(Name), dummy, 0, IP, charsmax(IP), Access);
if (equal(IP, arg))
{
if (Access & ADMIN_IMMUNITY)
{
console_print(id, "[AMXX] %s : %L", IP, id, "CLIENT_IMM", Name);
return PLUGIN_HANDLED;
}
// User did not have immunity
canban = true;
}
}
}
else
{
new Auth[32];
new Name[32];
new dummy[1];
new Access;
for (new i = 0; i < g_Size; i++)
{
GetInfo(i, Name, charsmax(Name), Auth, charsmax(Auth), dummy, 0, Access);
if (equal(Auth, arg))
{
if (Access & ADMIN_IMMUNITY)
{
console_print(id, "[AMXX] %s : %L", Auth, id, "CLIENT_IMM", Name);
return PLUGIN_HANDLED;
}
// User did not have immunity
canban = true;
}
}
}
if (!canban)
{
console_print(id, "[AMXX] You may only ban recently disconnected clients. Use ^"amx_last^" to view.");
return PLUGIN_HANDLED;
}
}
// User has access to ban their target
if (contain(arg, ".") != -1)
{
server_cmd("addip ^"%s^" ^"%s^";wait;writeip", minutes, arg)
console_print(id, "[AMXX] Ip ^"%s^" added to ban list", arg)
} else {
server_cmd("banid %s %s;wait;writeid", minutes, arg)
console_print(id, "[AMXX] Authid ^"%s^" added to ban list", arg)
}
get_user_name(id, name, 31)
show_activity_key("ADMIN_ADDBAN_1", "ADMIN_ADDBAN_2", name, arg);
get_user_authid(id, authid, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" ban ^"%s^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, arg, minutes, reason)
return PLUGIN_HANDLED
}
public cmdBan(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[32], minutes[8], reason[64]
read_argv(1, target, 31)
read_argv(2, minutes, 7)
read_argv(3, reason, 63)
new player = cmd_target(id, target, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
if (!player)
return PLUGIN_HANDLED
new authid[32], name2[32], authid2[32], name[32]
new userid2 = get_user_userid(player)
get_user_authid(player, authid2, 31)
get_user_authid(id, authid, 31)
get_user_name(player, name2, 31)
get_user_name(id, name, 31)
log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, minutes, reason)
new temp[64], banned[16], nNum = str_to_num(minutes)
if (nNum)
format(temp, 63, "%L", player, "FOR_MIN", minutes)
else
format(temp, 63, "%L", player, "PERM")
format(banned, 15, "%L", player, "BANNED")
if (reason[0]) {
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
else {
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
if (!minutes[0]) {
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
else
{
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("banid %s kick;writeid", authid)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
if (equal("4294967295", authid)
|| equal("HLTV", authid)
|| equal("STEAM_ID_LAN", authid)
|| equali("VALVE_ID_LAN", authid)
|| equali("VALVE_ID_PENDING", authid)
|| equali("STEAM_ID_PENDING", authid))
{
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("banid %s kick;writeid", authid2)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
}
else {
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("banid %s kick;writeid", authid2)
server_cmd("writeid;writeip")
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
}
// Display the message to all clients
new msg[256];
new len;
new maxpl = get_maxplayers();
for (new i = 1; i <= maxpl; i++)
{
if (is_user_connected(i) && !is_user_bot(i))
{
len = formatex(msg, charsmax(msg), "%L", i, "BAN");
len += formatex(msg[len], charsmax(msg) - len, " %s ", name2);
if (nNum)
{
len += formatex(msg[len], charsmax(msg) - len, "%L", i, "FOR_MIN", minutes);
}
else
{
len += formatex(msg[len], charsmax(msg) - len, "%L", i, "PERM");
}
if (strlen(reason) > 0)
{
formatex(msg[len], charsmax(msg) - len, " (%L: %s)", i, "REASON", reason);
}
show_activity_id(i, id, name, msg);
}
}
console_print(id, "[AMXX] %L", id, "CLIENT_BANNED", name2)
return PLUGIN_HANDLED
}
public cmdBanIP(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new target[32], minutes[8], reason[64]
read_argv(1, target, 31)
read_argv(2, minutes, 7)
read_argv(3, reason, 63)
new player = cmd_target(id, target, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS | CMDTARGET_ALLOW_SELF)
if (!player)
{
// why is this here?
// no idea
// player = cmd_target(id, target, 9);
return PLUGIN_HANDLED
}
new authid[32], name2[32], authid2[32], name[32]
new userid2 = get_user_userid(player)
get_user_authid(player, authid2, 31)
get_user_authid(id, authid, 31)
get_user_name(player, name2, 31)
get_user_name(id, name, 31)
log_amx("Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, minutes, reason)
new temp[64], banned[16], nNum = str_to_num(minutes)
if (nNum)
format(temp, 63, "%L", player, "FOR_MIN", minutes)
else
format(temp, 63, "%L", player, "PERM")
format(banned, 15, "%L", player, "BANNED")
new address[32]
get_user_ip(player, address, 31, 1)
if (reason[0]) {
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, reason, banned, temp, minutes, address)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
else
{
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("banid %s kick;writeid", authid2)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
if (!minutes[0]) {
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
else
{
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address)
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("banid %s kick;writeid", authid2)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
}
if (equal("4294967295", authid)
|| equal("HLTV", authid)
|| equal("STEAM_ID_LAN", authid)
|| equali("VALVE_ID_LAN", authid)
|| equali("VALVE_ID_PENDING", authid)
|| equali("STEAM_ID_PENDING", authid))
{
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("banid %s kick;writeid", authid2)
server_cmd("writeid;writeip")
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
}
else
{
new ipa[32]
get_user_ip(player, ipa, 31, 1)
server_cmd("banid %s kick;writeid", authid2)
server_cmd("addip 0 %s;writeip",ipa)
server_cmd("writeid;writeip")
server_cmd("kick #%d ^"%s (%s %s)^";wait;banid %s %s;wait;writeid", userid2, reason, banned, temp, minutes, authid2)
}
// Display the message to all clients
new msg[256];
new len;
new maxpl = get_maxplayers();
for (new i = 1; i <= maxpl; i++)
{
if (is_user_connected(i) && !is_user_bot(i))
{
len = formatex(msg, charsmax(msg), "%L", i, "BAN");
len += formatex(msg[len], charsmax(msg) - len, " %s ", name2);
if (nNum)
{
formatex(msg[len], charsmax(msg) - len, "%L", i, "FOR_MIN", minutes);
}
else
{
formatex(msg[len], charsmax(msg) - len, "%L", i, "PERM");
}
if (strlen(reason) > 0)
{
formatex(msg[len], charsmax(msg) - len, " (%L: %s)", i, "REASON", reason);
}
show_activity_id(i, id, name, msg);
}
}
console_print(id, "[AMXX] %L", id, "CLIENT_BANNED", name2)
return PLUGIN_HANDLED
}
public cmdSlay(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
if (!player)
return PLUGIN_HANDLED
user_kill(player)
new authid[32], name2[32], authid2[32], name[32]
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
get_user_authid(player, authid2, 31)
get_user_name(player, name2, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2)
show_activity_key("ADMIN_SLAY_1", "ADMIN_SLAY_2", name, name2);
console_print(id, "[AMXX] %L", id, "CLIENT_SLAYED", name2)
return PLUGIN_HANDLED
}
public cmdSlap(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)
if (!player)
return PLUGIN_HANDLED
new spower[32], authid[32], name2[32], authid2[32], name[32]
read_argv(2, spower, 31)
new damage = str_to_num(spower)
user_slap(player, damage)
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
get_user_authid(player, authid2, 31)
get_user_name(player, name2, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, damage, name2, get_user_userid(player), authid2)
show_activity_key("ADMIN_SLAP_1", "ADMIN_SLAP_2", name, name2, damage);
console_print(id, "[AMXX] %L", id, "CLIENT_SLAPED", name2, damage)
return PLUGIN_HANDLED
}
public chMap(map[])
{
server_cmd("changelevel %s", map)
}
public cmdMap(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[32]
new arglen = read_argv(1, arg, 31)
if (!is_map_valid(arg))
{
console_print(id, "[AMXX] %L", id, "MAP_NOT_FOUND")
return PLUGIN_HANDLED
}
new authid[32], name[32]
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
show_activity_key("ADMIN_MAP_1", "ADMIN_MAP_2", name, arg);
log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^"", name, get_user_userid(id), authid, arg)
new _modName[10]
get_modname(_modName, 9)
if (!equal(_modName, "zp"))
{
message_begin(MSG_ALL, SVC_INTERMISSION)
message_end()
}
set_task(2.0, "chMap", 0, arg, arglen + 1)
return PLUGIN_HANDLED
}
stock bool:onlyRcon(const name[])
{
new ptr=get_cvar_pointer(name);
if (ptr && get_pcvar_flags(ptr) & FCVAR_PROTECTED)
{
return true;
}
return false;
}
public cmdCvar(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[32], arg2[64]
read_argv(1, arg, 31)
read_argv(2, arg2, 63)
new pointer;
if (equal(arg, "add") && (get_user_flags(id) & ADMIN_RCON))
{
if ((pointer=get_cvar_pointer(arg2))!=0)
{
new flags=get_pcvar_flags(pointer);
if (!(flags & FCVAR_PROTECTED))
{
set_pcvar_flags(pointer,flags | FCVAR_PROTECTED);
}
}
return PLUGIN_HANDLED
}
if ((pointer=get_cvar_pointer(arg))==0)
{
console_print(id, "[AMXX] %L", id, "UNKNOWN_CVAR", arg)
return PLUGIN_HANDLED
}
if (onlyRcon(arg) && !(get_user_flags(id) & ADMIN_RCON))
{
// Exception for the new onlyRcon rules:
// sv_password is allowed to be modified by ADMIN_PASSWORD
if (!(equali(arg,"sv_password") && (get_user_flags(id) & ADMIN_PASSWORD)))
{
console_print(id, "[AMXX] %L", id, "CVAR_NO_ACC")
return PLUGIN_HANDLED
}
}
if (read_argc() < 3)
{
get_pcvar_string(pointer, arg2, 63)
console_print(id, "[AMXX] %L", id, "CVAR_IS", arg, arg2)
return PLUGIN_HANDLED
}
new authid[32], name[32]
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" set cvar (name ^"%s^") (value ^"%s^")", name, get_user_userid(id), authid, arg, arg2)
set_cvar_string(arg, arg2)
// Display the message to all clients
new cvar_val[64];
new maxpl = get_maxplayers();
for (new i = 1; i <= maxpl; i++)
{
if (is_user_connected(i) && !is_user_bot(i))
{
if (get_pcvar_flags(pointer) & FCVAR_PROTECTED || equali(arg, "rcon_password"))
{
formatex(cvar_val, charsmax(cvar_val), "*** %L ***", i, "PROTECTED");
}
else
{
copy(cvar_val, charsmax(cvar_val), arg2);
}
show_activity_id(i, id, name, "%L", i, "SET_CVAR_TO", "", arg, cvar_val);
}
}
console_print(id, "[AMXX] %L", id, "CVAR_CHANGED", arg, arg2)
return PLUGIN_HANDLED
}
public cmdPlugins(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
if (id==0) // If server executes redirect this to "amxx plugins" for more in depth output
{
server_cmd("amxx plugins");
server_exec();
return PLUGIN_HANDLED;
}
new name[32], version[32], author[32], filename[32], status[32]
new lName[32], lVersion[32], lAuthor[32], lFile[32], lStatus[32]
format(lName, 31, "%L", id, "NAME")
format(lVersion, 31, "%L", id, "VERSION")
format(lAuthor, 31, "%L", id, "AUTHOR")
format(lFile, 31, "%L", id, "FILE")
format(lStatus, 31, "%L", id, "STATUS")
new StartPLID=0;
new EndPLID;
new Temp[96]
new num = get_pluginsnum()
if (read_argc() > 1)
{
read_argv(1,Temp,sizeof(Temp)-1);
StartPLID=str_to_num(Temp)-1; // zero-based
}
EndPLID=min(StartPLID + 10, num);
new running = 0
console_print(id, "----- %L -----", id, "LOADED_PLUGINS")
console_print(id, "%-18.17s %-11.10s %-17.16s %-16.15s %-9.8s", lName, lVersion, lAuthor, lFile, lStatus)
new i=StartPLID;
while (i <EndPLID)
{
get_plugin(i++, filename, 31, name, 31, version, 31, author, 31, status, 31)
console_print(id, "%-18.17s %-11.10s %-17.16s %-16.15s %-9.8s", name, version, author, filename, status)
if (status[0]=='d' || status[0]=='r') // "debug" or "running"
running++
}
console_print(id, "%L", id, "PLUGINS_RUN", EndPLID-StartPLID, running)
console_print(id, "----- %L -----",id,"HELP_ENTRIES",StartPLID + 1,EndPLID,num);
if (EndPLID < num)
{
formatex(Temp,sizeof(Temp)-1,"----- %L -----",id,"HELP_USE_MORE", EndPLID + 1);
replace_all(Temp,sizeof(Temp)-1,"amx_help","amx_plugins");
console_print(id,"%s",Temp);
}
else
{
formatex(Temp,sizeof(Temp)-1,"----- %L -----",id,"HELP_USE_BEGIN");
replace_all(Temp,sizeof(Temp)-1,"amx_help","amx_plugins");
console_print(id,"%s",Temp);
}
return PLUGIN_HANDLED
}
public cmdModules(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new name[32], version[32], author[32], status, sStatus[16]
new lName[32], lVersion[32], lAuthor[32], lStatus[32];
format(lName, 31, "%L", id, "NAME")
format(lVersion, 31, "%L", id, "VERSION")
format(lAuthor, 31, "%L", id, "AUTHOR")
format(lStatus, charsmax(lStatus), "%L", id, "STATUS")
new num = get_modulesnum()
console_print(id, "%L:", id, "LOADED_MODULES")
console_print(id, "%-23.22s %-11.10s %-20.19s %-11.10s", lName, lVersion, lAuthor, lStatus)
for (new i = 0; i < num; i++)
{
get_module(i, name, 31, author, 31, version, 31, status)
switch (status)
{
case module_loaded: copy(sStatus, 15, "running")
default:
{
copy(sStatus, 15, "bad load");
copy(name, charsmax(name), "unknown");
copy(author, charsmax(author), "unknown");
copy(version, charsmax(version), "unknown");
}
}
console_print(id, "%-23.22s %-11.10s %-20.19s %-11.10s", name, version, author, sStatus)
}
console_print(id, "%L", id, "NUM_MODULES", num)
return PLUGIN_HANDLED
}
public cmdCfg(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[128]
read_argv(1, arg, 127)
if (!file_exists(arg))
{
console_print(id, "[AMXX] %L", id, "FILE_NOT_FOUND", arg)
return PLUGIN_HANDLED
}
new authid[32], name[32]
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" execute cfg (file ^"%s^")", name, get_user_userid(id), authid, arg)
console_print(id, "[AMXX] Executing file ^"%s^"", arg)
server_cmd("exec %s", arg)
show_activity_key("ADMIN_CONF_1", "ADMIN_CONF_2", name, arg);
return PLUGIN_HANDLED
}
public cmdLBack()
{
if (!g_PauseAllowed)
return PLUGIN_CONTINUE
new paused[25]
format(paused, 24, "%L", g_pauseCon, g_Paused ? "UNPAUSED" : "PAUSED")
set_cvar_float("pausable", g_pausAble)
console_print(g_pauseCon, "[AMXX] Server %s", paused)
g_PauseAllowed = false
if (g_Paused)
g_Paused = false
else
g_Paused = true
return PLUGIN_HANDLED
}
public cmdPause(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new authid[32], name[32], slayer = id
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
if (pausable!=0)
{
g_pausAble = get_pcvar_float(pausable)
}
if (!slayer)
slayer = find_player("h")
if (!slayer)
{
console_print(id, "[AMXX] %L", id, "UNABLE_PAUSE")
return PLUGIN_HANDLED
}
set_cvar_float("pausable", 1.0)
g_PauseAllowed = true
client_cmd(slayer, "pause;pauseAck")
log_amx("Cmd: ^"%s<%d><%s><>^" %s server", name, get_user_userid(id), authid, g_Paused ? "unpause" : "pause")
console_print(id, "[AMXX] %L", id, g_Paused ? "UNPAUSING" : "PAUSING")
// Display the message to all clients
new maxpl = get_maxplayers();
for (new i = 1; i <= maxpl; i++)
{
if (is_user_connected(i) && !is_user_bot(i))
{
show_activity_id(i, id, name, "%L server", i, g_Paused ? "UNPAUSE" : "PAUSE");
}
}
g_pauseCon = id
return PLUGIN_HANDLED
}
public cmdShowRcon(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new password[64]
get_pcvar_string(rcon_password, password, 63)
if (!password[0])
{
cmdRcon(id, level, cid)
} else {
new args[128]
read_args(args, 127)
client_cmd(id, "rcon_password %s", password)
client_cmd(id, "rcon %s", args)
}
return PLUGIN_HANDLED
}
public cmdRcon(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new arg[128], authid[32], name[32]
read_args(arg, 127)
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" server console (cmdline ^"%s^")", name, get_user_userid(id), authid, arg)
console_print(id, "[AMXX] %L", id, "COM_SENT_SERVER", arg)
server_cmd("%s", arg)
return PLUGIN_HANDLED
}
public cmdWho(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new players[32], inum, cl_on_server[64], authid[32], name[32], flags, sflags[32]
new lImm[16], lRes[16], lAccess[16], lYes[16], lNo[16]
format(lImm, 15, "%L", id, "IMMU")
format(lRes, 15, "%L", id, "RESERV")
format(lAccess, 15, "%L", id, "ACCESS")
format(lYes, 15, "%L", id, "YES")
format(lNo, 15, "%L", id, "NO")
get_players(players, inum)
format(cl_on_server, 63, "%L", id, "CLIENTS_ON_SERVER")
console_print(id, "^n%s:^n # %-16.15s %-20s %-8s %-4.3s %-4.3s %s", cl_on_server, "nick", "authid", "userid", lImm, lRes, lAccess)
for (new a = 0; a < inum; ++a)
{
get_user_authid(players[a], authid, 31)
get_user_name(players[a], name, 31)
flags = get_user_flags(players[a])
get_flags(flags, sflags, 31)
console_print(id, "%2d %-16.15s %-20s %-8d %-6.5s %-6.5s %s", players[a], name, authid,
get_user_userid(players[a]), (flags&ADMIN_IMMUNITY) ? lYes : lNo, (flags&ADMIN_RESERVATION) ? lYes : lNo, sflags)
}
console_print(id, "%L", id, "TOTAL_NUM", inum)
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
log_amx("Cmd: ^"%s<%d><%s><>^" ask for players list", name, get_user_userid(id), authid)
return PLUGIN_HANDLED
}
hasTag(name[], tags[4][32], tagsNum)
{
for (new a = 0; a < tagsNum; ++a)
if (contain(name, tags[a]) != -1)
return a
return -1
}
public cmdLeave(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
new argnum = read_argc()
new ltags[4][32]
new ltagsnum = 0
for (new a = 1; a < 5; ++a)
{
if (a < argnum)
read_argv(a, ltags[ltagsnum++], 31)
else
ltags[ltagsnum++][0] = 0
}
new nick[32], ires, pnum = get_maxplayers() + 1, count = 0, lReason[128]
for (new b = 1; b < pnum; ++b)
{
if (!is_user_connected(b) && !is_user_connecting(b)) continue
get_user_name(b, nick, 31)
ires = hasTag(nick, ltags, ltagsnum)
if (ires != -1)
{
console_print(id, "[AMXX] %L", id, "SKIP_MATCH", nick, ltags[ires])
continue
}
if (get_user_flags(b) & ADMIN_IMMUNITY)
{
console_print(id, "[AMXX] %L", id, "SKIP_IMM", nick)
continue
}
console_print(id, "[AMXX] %L", id, "KICK_PL", nick)
if (is_user_bot(b))
server_cmd("kick #%d", get_user_userid(b))
else
{
format(lReason, 127, "%L", b, "YOU_DROPPED")
server_cmd("kick #%d ^"%s^"", get_user_userid(b), lReason)
}
count++
}
console_print(id, "[AMXX] %L", id, "KICKED_CLIENTS", count)
new authid[32], name[32]
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
log_amx("Kick: ^"%s<%d><%s><>^" leave some group (tag1 ^"%s^") (tag2 ^"%s^") (tag3 ^"%s^") (tag4 ^"%s^")", name, get_user_userid(id), authid, ltags[0], ltags[1], ltags[2], ltags[3])
show_activity_key("ADMIN_LEAVE_1", "ADMIN_LEAVE_2", name, ltags[0], ltags[1], ltags[2], ltags[3]);
return PLUGIN_HANDLED
}
public cmdNick(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new arg1[32], arg2[32], authid[32], name[32], authid2[32], name2[32]
read_argv(1, arg1, 31)
read_argv(2, arg2, 31)
new player = cmd_target(id, arg1, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF)
if (!player)
return PLUGIN_HANDLED
get_user_authid(id, authid, 31)
get_user_name(id, name, 31)
get_user_authid(player, authid2, 31)
get_user_name(player, name2, 31)
client_cmd(player, "name ^"%s^"", arg2)
log_amx("Cmd: ^"%s<%d><%s><>^" change nick to ^"%s^" ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, arg2, name2, get_user_userid(player), authid2)
show_activity_key("ADMIN_NICK_1", "ADMIN_NICK_2", name, name2, arg2);
console_print(id, "[AMXX] %L", id, "CHANGED_NICK", name2, arg2)
return PLUGIN_HANDLED
}
public cmdLast(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
{
return PLUGIN_HANDLED;
}
new name[32];
new authid[32];
new ip[32];
new flags[32];
new access;
// This alignment is a bit weird (it should grow if the name is larger)
// but otherwise for the more common shorter name, it'll wrap in server console
// Steam client display is all skewed anyway because of the non fixed font.
console_print(id, "%19s %20s %15s %s", "name", "authid", "ip", "access");
for (new i = 0; i < g_Size; i++)
{
GetInfo(i, name, charsmax(name), authid, charsmax(authid), ip, charsmax(ip), access);
get_flags(access, flags, charsmax(flags));
console_print(id, "%19s %20s %15s %s", name, authid, ip, flags);
}
console_print(id, "%d old connections saved.", g_Size);
return PLUGIN_HANDLED;
}
Cevap: oyuncunun steamid sini gösterme
ya yeni plugini editlemek de şart değil sadece ben maç botunun kodları arasına adamın steamid sini alsın diye
new authid[32]
get_user_authid(id, authid, 31)
server_cmd("banid #%s kick;writeid", authid)
komutlarını ekliyorum fakat genede olmuyo PENDING yazıyo steamid yerine bunu nası fixlerim :(
Cevap: oyuncunun steamid sini gösterme
Usage: banid <minutes> <uniqueid or #userid> { kick }
banid #%d olmaz. Süre yerine id yazmaya çalışıyorsun. Dolayısıyla id yerine de kick yazmış oluyorsun.
doğru kullanım: ("banid %d %s kick;writeid",sure,steamid)
---------- Alttaki Mesaj Zamani 16:40 ---------- Önceki Mesaj Zamani 16:40 ----------
Usage: banid <minutes> <uniqueid or #userid> { kick }
banid #%d olmaz. Süre yerine id yazmaya çalışıyorsun. Dolayısıyla id yerine de kick yazmış oluyorsun.
doğru kullanım: ("banid %d %s kick;writeid",sure,steamid)
Cevap: oyuncunun steamid sini gösterme
sureyi nasıl tanımlarım peki onuda bilgi verirmisin ? nasıl bir new oluşturucam ?
PHP- Kodu:
new authid[32]
get_user_authid(id, authid, 31)
new sure
get_user_time ( id, sure = 0 )
server_cmd("banid %d %s kick;writeid",sure, authid)
bu şekilde doğru olur mu ?
Cevap: oyuncunun steamid sini gösterme
get_user_time ?
Fonksiyonları kullanmadan önce bir araştırma yap :D
Funcwiki: "get_user_time - Returns player playing time in seconds. "
TR: get_user_time - Oyuncunun oynadığı saniye miktarına döner."
Oradaki süre, ne kadar süre banlamak istediğin.
Cevap: oyuncunun steamid sini gösterme
yazdıgım komutu yaptım :) oldu ama :)
banid 0.0 STEAM_0:0:56166032
yazdı bak :))
---------- Alttaki Mesaj Zamani 17:09 ---------- Önceki Mesaj Zamani 17:01 ----------
aslında bu şekilde oldu yazıyo şuanda ama doğru tanımlama nedir peki ?
Cevap: oyuncunun steamid sini gösterme
Evet yanlışlıkla da olsa doğru çıkıyor :D %d yerıne direk 0 da yazabilirsin eğer her banın süresiz olmasını istiyorsan. Süreli banlamak için alttaki örnekten faydalanabilirsin.
PHP- Kodu:
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("ban_by_steamid","cmdBan",ADMIN_BAN,"<sure> <nick>")
}
public cmdBan(id,level,cid) {
// Komutu çalıştıranın yetkisini ve konsola girdiği komut sayısını kontrol et.
if(!cmd_access(id,level,cid,3)) return PLUGIN_HANDLED
// Konsola girdiği parametreleri okut.
new arg[32],arg2[32];
read_argv(1,arg,31)
read_argv(2,arg2,31)
// Sureyi , yazidan sayisal degere cevir.
new sure = str_to_num(arg);
// 2.parametreyi kullanarak isimden oyuncu id sini bul.
new Uid = cmd_target(id,arg2,7)
// Belirtilen isimde id bulunamazsa komutu iptal et.
if(!Uid) return PLUGIN_HANDLED
// Oyuncunun Steam ID sini bul
new steamid[32]
get_user_authid(Uid,steamid,31)
// Ban komutunu server konsoluna gönder.
server_cmd("banid %d %s kick;writeid",sure,steamid)
return PLUGIN_HANDLED
}
Cevap: oyuncunun steamid sini gösterme
PHP- Kodu:
new authid[32]
get_user_authid(id, authid, 31)
new surem[32]
read_argv( 1, surem, 31 );
new sure = str_to_num(surem);
server_cmd("banid %d %s kick;writeid",sure, authid)
böyle birşey yaptım ve çalışıyor umarım yanlışım yoktur gene :)