Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику Dukkhaz0r ::: Спасибо сказали: 294
Дата поста: В теме: За сообщение: Спасибо сказали:
30.9.2017, 13:50 SS Rival 100
Хорошая мышка. Использую около года, нареканий не имеется.
evil
25.9.2016, 14:57 Продажа сборки CSDM Пушки + Лазеры от Королевского
Приобрел сборку, хочу поделиться впечатлениями.
Раньше никогда не играл на этом моде, а тут увидел тему и решил ненадолго зайти на сервер и побегать, посмотреть, вдруг понравится.
А тут вдруг затянуло, поиграл часок и решил купить сборку. Отписал автору, ответил быстро, договорились о всех мелочах, я сделал перевод и получил сборку. smile.gif

Сначала сборка не вставала, поковырялся и в итоге сервер включился. Всем моим игрокам сервер понравился, а главное мне тоже. Баланс действительно хороший на сервере. smile.gif

Ах да, и скриншот аптайма, пока не падал не разу за неделю.
skitls187, SMaster
11.9.2016, 23:11 Вопрос для гуру PHP
xxf3mzue,
если чтобы только вместо нулика, писало "навсегда", то нужно использовать такой запрос:
Запрос
Код:
SELECT player_nick, ban_reason, if(ban_length > 0, ban_length, 'Навсегда') as ban_length FROM `amx_bans` ORDER BY `ban_created` DESC LIMIT 5


Без понятия, как выглядит таблица amx_amxadmins, но уверен, что принцип там один и тот же. smile.gif
umprex
16.8.2016, 15:54 PHP-скрипты, Верстка бесплатно
Всем привет.

Совсем недавно начал практиковаться в сайтостроении и сейчас хочу выполнить пару работ бесплатно. smile.gif

Какой арсенал на данный момент:
1. HTML, CSS, jQuery, Ajax
2. PHP (ООП)
3. MySQL (join-ы, вложенные запросы)

Сверстаю с радостью одностраничники или несколько не больших страниц, напишу что-нибудь на php).

Контакты:
1. VK
2. Skype: dukk.over (желательно).
iShot, sergiu
16.6.2016, 22:40 Плагин записи демо
#define DEMO_NAME "" - в кавычках название демки.

сорц плагина
Код:
#include <amxmodx>

#define DEMO_NAME ""

new bool:g_bDemoRecord[26], bool:g_iValid[26];

public plugin_init()
{
register_plugin("RecordDemo", "1.0", "pukpuk");
register_clcmd("menuselect", "JoinClassHook");
register_clcmd("joinclass", "JoinClassHook");
}

public client_putinserver(id)
{
g_bDemoRecord[id] = false;
g_iValid[id] = get_user_flags(id) & ADMIN_IMMUNITY ? true : false;
}

public JoinClassHook(id)
{
if(!g_bDemoRecord[id] && g_iValid[id])
{
g_bDemoRecord[id] = true;
client_cmd(id, "stop; record ^"%s^"", DEMO_NAME);
}
}
loran
14.5.2016, 10:25 Crux Ansata. Плагин добавляет талисман жизни.
Код:

#include <amxmodx>
#include <engine>

#define MIN_PLAYERS 5
#define ROUND_ACCESS 3
#define GIVE_HEALTH 5
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";

new g_iPlayerId, g_iRoundCounter, szName[32];

public plugin_init()
{
register_plugin("Crux Ansata", "1.0", "DUKKHAZ0R");

register_touch("crux_ansata", "player", "fw_TouchEntity");

register_logevent("eRoundStart", 2, "1=Round_Start");
register_event("DeathMsg", "eDeathMsg", "a", "1>0");
register_event("TextMsg", "eRoundRestart", "a", "2&#Game_C", "2&#Game_w");

set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
precache_model(g_szModel);
}

public client_disconnect(id)
if(g_iPlayerId == id) g_iPlayerId = 0;

public eRoundRestart()
g_iRoundCounter = 0;

public eRoundStart()
{
if(++g_iRoundCounter < ROUND_ACCESS || get_playersnum() < MIN_PLAYERS)
return;

static iEnt;

while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
remove_entity(iEnt);

static apPlayers[32], iPlayers;
get_players(apPlayers, iPlayers, "ach");

g_iPlayerId = apPlayers[random(iPlayers-1)];
get_user_name(g_iPlayerId, szName, charsmax(szName));

ChatColor(0, "^4[CA] ^3%s ^1выпал талисман жизни.", szName);
}

public eDeathMsg()
{
static pVictim, Float:flOrigin[3]; pVictim = read_data(2);

if(pVictim == g_iPlayerId)
{
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
return;

entity_get_vector(pVictim, EV_VEC_origin, flOrigin);
entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_int(iEnt, EV_INT_effects, 8);
entity_set_model(iEnt, g_szModel);
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
ChatColor(g_iPlayerId = 0, "^4[CA] ^3%s ^1потерял талисман жизни.", szName);
}
}

public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

get_user_name(g_iPlayerId = id, szName, charsmax(szName));
ChatColor(0,"^4[CA] ^3%s ^1поднял талисман жизни.",szName);

entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
if(!g_iPlayerId || get_playersnum() < MIN_PLAYERS)
return;

static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);

if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");

if(fHealth < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);

entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);

message_begin(MSG_ONE_UNRELIABLE, MsgId_Health, _, g_iPlayerId);
write_byte(floatround(fHealth + giveHealth));
message_end();
}
}

stock ChatColor(const id, const szMessage[], any:...)
{
static szBuffer[191], apPlayers[32], iPlayers; iPlayers = 1;
vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
if(id)
{
if(!is_user_connected(id)) return;
apPlayers[0] = id;
iPlayers = 1;
}
else get_players(apPlayers, iPlayers, "ch");
for(new i;i < iPlayers; i++)
{
message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
write_byte(apPlayers[i]);
write_string(szBuffer);
message_end();
}
}
DOMVZORVU, InventoR
10.5.2016, 12:28 Помогите повесить флаг доступа на команду;)
DoNotFollowM, http://amxxmodx.ru/index.php?newsid=15 - прочитайте комментарии. Если не проверку if в функции, то проверку access все равно придется сделать.
DoNotFollowM
9.5.2016, 22:11 редактировать vipmenu
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta_util>

const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)
|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)

#define VIP_FLAG ADMIN_LEVEL_H
new round_number
new bool:has_used[33]
new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_GALIL, CSW_USP, CSW_GLOCK18};
static const COLOR[] = "^x04" //green
static const CONTACT[] = ""
new maxplayers
new gmsgSayText

public plugin_init()
{
register_plugin("Vip weapon V2", "2.0", "7eVen");
register_event("ResetHUD", "ResetHUD", "be");
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_logevent("LogEventRestartGame", 2, "1=Game_Commencing", "1&Restart_Round_")
register_logevent("event_new_round", 2, "1=Round_Start")
register_clcmd("say /adminka", "adminka");
register_clcmd("say /vipka","ShowMotd");
register_clcmd("vipmenu", "function_menu");
maxplayers = get_maxplayers()
gmsgSayText = get_user_msgid("SayText")
register_clcmd("say", "handle_say")
register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
new said[192]
read_args(said,192)
if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
set_task(0.1,"print_adminlist",id)
return PLUGIN_CONTINUE
}

public event_round_start ( )
{
round_number++
}

public LogEventRestartGame()
{
round_number = 0;
}

public print_adminlist(user)
{
new adminnames[33][32]
new message[256]
new contactinfo[256], contact[112]
new id, count, x, len

for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
if(get_user_flags(id) & ADMIN_LEVEL_H)
get_user_name(id, adminnames[count++], 31)

len = format(message, 255, "%s Випы онлайн ",COLOR)
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
print_message(user, message)
len = format(message, 255, "%s ",COLOR)
}
}
print_message(user, message)
}
else {
len += format(message[len], 255-len, "Випов нету онлайн.")
print_message(user, message)
}

get_cvar_string("amx_contactinfo", contact, 63)
if(contact[0]) {
format(contactinfo, 111, "%s Контакт администратора -- %s", COLOR, contact)
print_message(user, contactinfo)
}
}

print_message(id, msg[]) {
message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
write_byte(id)
write_string(msg)
message_end()
}

public function_menu(id)
{
if ( ! ( get_user_flags ( id ) & VIP_FLAG ) )
{
ChatColor ( id , "!g[V.I.P]!team Только для !g[V.I.P] " );
return PLUGIN_HANDLED;
}

new menu = menu_create("\w[\y V.I.P \w] \r Меню", "menu_handler")


menu_additem(menu, "\yОружейка\r","1")
menu_additem(menu, "\yGoldWeapon\r","2")
menu_additem(menu, "\yДругое\r", "3")

menu_setprop(menu, MPROP_EXITNAME, "\yВыход")
menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)

menu_display(id,menu,0)
return PLUGIN_HANDLED
}

public goldweapon(id)
{
new menu = menu_create("\wGoldWeapon:", "cmd_menu")

menu_additem(menu, "\wAK47 Gold", "1")
menu_additem(menu, "\wM4A1 Gold", "1")

menu_display(id,menu)
}

public cmd_menu(id,menu,item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

switch(str_to_num(data))
{
case 1: client_cmd(id, "say /goldenak")
case 2: client_cmd(id, "say /goldenm")
}

return PLUGIN_HANDLED
}

public vintov1(id)
{
new mMENU4 = menu_create("\w[\y V.I.P \w] \r Оружейка", "menu_5")

menu_additem(mMENU4, "\wВзять \r[\y Famas \r]\r","1")
menu_additem(mMENU4, "\wВзять \r[\y Krieg SG552 \r]\r", "2")
menu_additem(mMENU4, "\wВзять \r[\y AK47 \r]\r", "3")
menu_additem(mMENU4, "\wВзять \r[\y M4A1 \r]\r","4")
menu_additem(mMENU4, "\wВзять \r[\y Bullpup \r]\r","5")
menu_additem(mMENU4, "\wВзять \r[\y Scout \r]\r","6")
menu_additem(mMENU4, "\wВзять \r[\y AWP \r]\r", "7")
menu_additem(mMENU4, "\wВзять \r[\y Galil \r]\r", "8")
menu_additem(mMENU4, "\wВзять \r[\y CT Auto Sniper \r]\r", "9")
menu_additem(mMENU4, "\wВзять \r[\y T Auto Sniper \r]\r", "10")
menu_setprop(mMENU4, MPROP_NEXTNAME, "\yДальше")
menu_setprop(mMENU4, MPROP_BACKNAME, "\yНазад")
menu_setprop(mMENU4, MPROP_EXITNAME, "Выход")
menu_setprop(mMENU4, MPROP_EXIT,MEXIT_ALL)

menu_display(id,mMENU4,0)
return PLUGIN_HANDLED
}

public drygoe1(id)
{
new mMENU5 = menu_create("\w[\y V.I.P \w] \r Другое", "menu_6")

menu_additem(mMENU5, "\wВзять \r[\y M249 \r]\r","1")
menu_additem(mMENU5, "\wВзять рандомно \r[\y $1-16000 \r]\r", "2")

menu_setprop(mMENU5, MPROP_EXITNAME, "\yВыход")
menu_setprop(mMENU5, MPROP_EXIT,MEXIT_ALL)

menu_display(id,mMENU5,0)
return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
vintov1(id)
}
case 2:
{
goldweapon(id)
}
case 3:
{
drygoe1(id)
}
}
return PLUGIN_HANDLED
}

public menu_5(id, mMENU4, item)
{
if(is_user_alive(id)&& !has_used[id] )
{
if ( round_number <= 1 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 2 раунда!" );
return PLUGIN_HANDLED;
}
if(item == MENU_EXIT)
{
menu_destroy(mMENU4)
return PLUGIN_HANDLED;
}

new data[6], iName[64], access, callback
menu_item_getinfo(mMENU4, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
drop_weapons(id, 1)
give_item(id, "weapon_famas" )
cs_set_user_bpammo( id , CSW_FAMAS, 90 )
}
case 2:
{
drop_weapons(id, 1)
give_item(id, "weapon_sg552" )
cs_set_user_bpammo( id , CSW_SG552, 90 )
}
case 3:
{
drop_weapons(id, 1)
give_item(id, "weapon_ak47" )
cs_set_user_bpammo( id , CSW_AK47, 90 )
}
case 4:
{
drop_weapons(id, 1)
give_item(id, "weapon_m4a1" )
cs_set_user_bpammo( id , CSW_M4A1, 90 )
}
case 5:
{
drop_weapons(id, 1)
give_item(id, "weapon_aug" )
cs_set_user_bpammo( id , CSW_AUG, 90 )
}
case 6:
{
drop_weapons(id, 1)
give_item(id, "weapon_scout" )
cs_set_user_bpammo( id , CSW_SCOUT, 90 )
}
case 7:
{
if ( round_number <= 2 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 3 раунда!" );
return PLUGIN_HANDLED;
}
drop_weapons(id, 1)
give_item(id, "weapon_awp" )
cs_set_user_bpammo( id , CSW_AWP, 30 )
}
case 8:
{
drop_weapons(id, 1)
give_item(id, "weapon_galil" )
cs_set_user_bpammo( id , CSW_GALIL, 100 )
}
case 9:
{
if ( round_number <= 2 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 3 раунда!" );
return PLUGIN_HANDLED;
}
drop_weapons(id, 1)
give_item(id, "weapon_g3sg1" )
cs_set_user_bpammo( id , CSW_G3SG1, 90 )
}
case 10:
{
if ( round_number <= 2 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 3 раунда!" );
return PLUGIN_HANDLED;
}
drop_weapons(id, 1)
give_item(id, "weapon_sg550" )
cs_set_user_bpammo( id , CSW_SG550, 90 )
}
}
has_used[id] = true;
}
else
{
ChatColor(id, "!g[V.I.P]!team Вы уже использовали.Подождите...");
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}
public menu_6(id, mMENU5, item)
{
if(is_user_alive(id)&& !has_used[id] )
{
if ( round_number <= 3 )
{
ChatColor ( id , "!g[V.I.P]!team Доступно со 4 раунда!" );
return PLUGIN_HANDLED;
}
if(item == MENU_EXIT)
{
menu_destroy(mMENU5)
return PLUGIN_HANDLED
}

new data[6], iName[64], access, callback
menu_item_getinfo(mMENU5, item, access, data, 5, iName, 63, callback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
drop_weapons(id, 1)
give_item(id, "weapon_m249" )
cs_set_user_bpammo( id , CSW_M249, 200 )
}
case 2:
{
loter(id)
}
}
has_used[id] = true;
}
else
{
ChatColor(id, "!g[V.I.P]!team Вы уже использовали.Подождите...");
return PLUGIN_HANDLED;
}
return PLUGIN_HANDLED;
}

public adminka(id)
{
show_motd(id, "adminka.txt")
}
public client_authorized(id)
{
client_cmd(id, "bind ^"-^" ^"vipmenu^"")
}
public ResetHUD(id)
{
set_task(0.5, "VIP", id + 6910)
}
public VIP(TaskID)
{
new id = TaskID - 6910

if (get_user_flags(id) & VIP_FLAG)
{
for (new i = 0; i < 6; i++)
{
if (fm_strip_user_gun(id, pistols[i]))
{
break;
}

message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
give_item( id,"weapon_hegrenade" )
give_item( id, "weapon_flashbang" );
give_item( id, "weapon_flashbang" );
give_item( id, "weapon_smokegrenade" );
give_item( id, "item_assaultsuit" );
give_item( id, "item_thighpack" );
give_item( id, "weapon_deagle")

give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
give_item( id, "ammo_50ae" )
}
}
return PLUGIN_HANDLED
}

public ShowMotd(id)
{
show_motd(id, "vip.txt")
}
public event_new_round()
{
arrayset(has_used, false, 33)
}
public loter(id)
{
new shans;
shans = random_num(1, 16000);
cs_set_user_money(id, cs_get_user_money(id) + shans);
ChatColor(id,"!g[V.I.P]!team Вы Выйграли !g %d$ !!!", shans);
return PLUGIN_HANDLED
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
replace_all(msg, 190, "!team2", "^0") // Team2 Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}

stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
get_user_weapons(id, weapons, num)

for (i = 0; i < num; i++)
{
weaponid = weapons[i]

if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
{
static wname[32]
get_weaponname(weaponid, wname, sizeof wname - 1)
engclient_cmd(id, "drop", wname)
}
}
}
sergiu
8.5.2016, 16:14 admin_vgk
Код:

#include <amxmodx>
#include <amxmisc>
#include <fun>

public plugin_init()
{
register_plugin("Admins are VIP's + grenades + kevlar", "1.0", "Eg@r4$il{")
register_event("ResetHUD", "ResetHUD", "be")
}

public ResetHUD(id)
{
set_task(0.5, "VIP", id + 6910)
}

public VIP(TaskID)
{
new id = TaskID - 6910

if (get_user_flags(id) & ADMIN_IMMUNITY)
{
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
give_item(id,"weapon_hegrenade")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_flashbang")
give_item(id,"weapon_smokegrenade")
give_item(id,"item_assaultsuit")
}

return PLUGIN_HANDLED
}
Inf19
1.5.2016, 17:43 Работа с SQL
Набросал готовый вариант и проверил на тестовом сервере.

HOSTNAME, USERNAME, PASSWORD, DBNAME - данные от MySQL. Думаю разберетесь. smile.gif

SQL Запрос на создание таблицы
Код:
CREATE TABLE IF NOT EXISTS `steam` (
`id` INT NOT NULL AUTO_INCREMENT,

`steam_id` VARCHAR(32) NOT NULL,

PRIMARY KEY(`id`)
)


Готовый вариант с киком игрока
Код:
#include amxmodx
#include sqlx

#define HOSTNAME ""
#define USERNAME ""
#define PASSWORD ""
#define DBNAME ""

new Handle:ghSQL_Tuple

public plugin_cfg() {
new Handle:ghSQL_Connect, iError, szError[256]

//коннект
ghSQL_Tuple = SQL_MakeDbTuple( HOSTNAME, USERNAME, PASSWORD, DBNAME )
ghSQL_Connect = SQL_Connect( ghSQL_Tuple, iError, szError, charsmax(szError) )

//если ошибка, прекращаем работу
if(ghSQL_Connect == Empty_Handle)
set_fail_state(szError)

SQL_FreeHandle(ghSQL_Connect)
}

public client_putinserver(id) {
new szAuthId[25], szQuery[256], szId[1]

szId[0] = id

get_user_authid( id, szAuthId, charsmax(szAuthId) )

//Получаем строку, где steam_id = PLAYER_STEAM_ID
formatex( szQuery, charsmax(szQuery), "SELECT * FROM `steam` WHERE `steam_id` = '%s'", szAuthId )

//Отправляем запрос
SQL_ThreadQuery( ghSQL_Tuple, "SQL_Handler", szQuery, szId, sizeof szId )
}

public SQL_Handler(iState, Handle:hQuery, szError[], iError, szId[], iId) {

//Если вдруг ошибка, выводим ее
switch(iState) {
case TQUERY_CONNECT_FAILED: return server_print( "[DB Error] Не могу подключиться к БД. Ошибка: %s", szError )
case TQUERY_QUERY_FAILED: return server_print( "[DB Error] Неправильный запрос. Ошибка: %s", szError )
}

//id игрока
new iPlayerId = szId[0]

// Если результат найден
if( SQL_NumResults(hQuery) ) {
server_print( "Игрок с таким SteamId есть в БД." )
}
else {
server_print( "Игрока с таким SteamId нет в БД." )
server_cmd( "kick #%d ^"Вас нет в БД, вход запрещен^"", get_user_userid(iPlayerId) )
}

return PLUGIN_CONTINUE
}
JIuXeP, OnlySteam
1.5.2016, 14:59 Работа с SQL
Пример кода.
Подключение к БД не писал, думаю сам сможешь. smile.gif

Код
Код:
#include amxmodx
#include sqlx

new Handle:ghSQL_Tuple

public client_putinserver(id) {
new szAuthId[25], szQuery[256], szId[1]

szId[0] = id

get_user_authid( id, szAuthId, charsmax(szAuthId) )

//Получаем строку, где steam_id = PLAYER_STEAM_ID
formatex( szQuery, charsmax(szQuery), "SELECT * FROM `steam` WHERE `steam_id` = '%s'", szAuthId )

//Отправляем запрос
SQL_ThreadQuery( ghSQL_Tuple, "SQL_Handler", szQuery, szId, sizeof szId )
}

public SQL_Handler(iState, Handle:hQuery, szError[], iError, szId[], iId) {

//Если вдруг ошибка, выводим ее
switch(iState) {
case TQUERY_CONNECT_FAILED: return server_print( "[DB Error] Не могу подключиться к БД. Ошибка: %s", szError )
case TQUERY_QUERY_FAILED: return server_print( "[DB Error] Неправильный запрос. Ошибка: %s", szError )
}

//id игрока
new iPlayerId = szId[0]

// Если результат найден
if( SQL_NumResults(hQuery) ) {
server_print("Игрок с таким SteamId есть в БД.");
}
else {
server_print( "Игрока с таким SteamId нет в БД.");
}

return PLUGIN_CONTINUE
}
OnlySteam
30.4.2016, 15:06 [Услуга] Написание AMXX плагинов.
XyLiGaN, Вы уже сами решили на тот момент проблему с плагином, денег я с Вас не брал. Как вы можете судить о качестве моих работ? Я всегда думаю о качестве работы. Работ в публичном доступе у меня хватает.

mrtops4, Это называется "тишина"? Ничего Вы мне не отписывали после, не нужно клеветать.
Cкриншот переписки
tato2013
28.2.2016, 23:45 Prize_knife (убрать проверку)
Готовый вариант
Код:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Prize Knife"
#define VERSION "0.1"
#define AUTHOR "Safety1st"

/*---------------EDIT ME------------------*/
#define CUSTOM_DMG 6.0 // custom knife damage; fractional part of a number is mandatory

new const gszKnifeModelV[] = "models/knife1/v_knife.mdl" // 1st person view model
new const gszKnifeModelP[] = "models/knife1/p_knife.mdl" // 3rd person view model
/*----------------------------------------*/

new giszKnifeModelV, giszKnifeModelP

#define IsPlayer(%0) ( 1 <= (%0) <= giMaxPlayers )

new giMaxPlayers

public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )

RegisterHam( Ham_Item_Deploy, "weapon_knife" , "Fwd_ItemDeploy_Knife_Post", .Post = 1 )
RegisterHam( Ham_TakeDamage, "player", "Fwd_TakeDamage" )

giszKnifeModelV = engfunc( EngFunc_AllocString, gszKnifeModelV )
giszKnifeModelP = engfunc( EngFunc_AllocString, gszKnifeModelP )

giMaxPlayers = get_maxplayers()
}

public plugin_precache() {
precache_model( gszKnifeModelV )
precache_model( gszKnifeModelP )
}


public Fwd_ItemDeploy_Knife_Post( ent ) {
const XO_WEAPON = 4 // 'XO' means extraoffset
const m_pPlayer = 41

new iPlayer = get_pdata_cbase( ent, m_pPlayer, XO_WEAPON )

set_pev_string( iPlayer, pev_viewmodel2, giszKnifeModelV )
set_pev_string( iPlayer, pev_weaponmodel2, giszKnifeModelP )
}

public Fwd_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits ) {
if( IsPlayer(attacker) && attacker == inflictor && get_user_weapon(attacker) == CSW_KNIFE ) {
SetHamParamFloat( 4, damage * CUSTOM_DMG )
return HAM_HANDLED
}

return HAM_IGNORED
}
Blitzz
2.12.2015, 19:58 Админские хохмы
EvilSMS
25.10.2015, 12:39 Админские хохмы
adva, gribnik, JIuXeP, KaJIbIBaH, magis1337, meloman, Raze, ssx, ThisIsSparta
28.8.2015, 0:40 [Услуга] Написание AMXX плагинов.
Первый заказ выполню бесплатно, любой желающий может обратиться по контактам.
Puwok, ThePhoenix
28.8.2015, 0:35 [Услуга] Написание AMXX плагинов.
Всем привет.
Хочу представить свои услуги по написанию AMXX плагинов.

О своих услугах:
• Выполняю в поставленные сроки (Скорость зависит от задачи).
• Стараюсь писать качественный код. smile.gif

Контакты:
dukk.over
id99829359 (Предпочтительно).
Alloha, DoMoBou1993, Energy, freeze, loran, magis1337, Puwok, RepairPC
23.8.2015, 20:49 Steam Bonus
Напишу точно такой же при желании.
Skype: dukk.over
IceSk1p
21.8.2015, 14:08 Админские хохмы
HUNTERsp4x, Legaal, magis1337, Stimul1
21.7.2015, 14:11 Bomb Countdown HUD Timer v0.2
?
Код:
#include <amxmodx>
#include <csx>
#include <dhudmessage>

new gpCvarC4Time, giCvarC4Time, giC4Time;

public plugin_init()
{
register_plugin("C4 Timer", "1.0", "DUKKHAZ0R");
register_logevent("LogEventRoundEnd", 2, "1=Round_End");
gpCvarC4Time = get_cvar_pointer("mp_c4timer");
giCvarC4Time = get_pcvar_num(gpCvarC4Time);
}

public LogEventRoundEnd()
{
remove_task(77412);
}

public bomb_planted()
{
giC4Time = giCvarC4Time;
DisplayTimer(77412);
set_task(0.1, "DisplayTimer", 77412, .flags="b");
}

public bomb_defused()
{
remove_task(77412);
}

public bomb_explode()
{
remove_task(77412);
}

public DisplayTimer(taskId)
{
if(giC4Time-- > 0)
{
switch(giC4Time > 13)
{
case 1: set_dhudmessage(0, 150, 0, -1.0, 0.80, 0, 1.0, 1.0, 0.01, 0.01, true);
default: (giC4Time > 7) ? set_dhudmessage(150, 150, 0, -1.0, 0.80, 0, 1.0, 1.0, 0.01, 0.01, true) : set_dhudmessage(150, 0, 0, -1.0, 0.80, 0, 1.0, 1.0, 0.01, 0.01, true);
}
show_dhudmessage(0, "C4: %d", giC4Time);
}
}
Pulse

6 страниц V   1 2 ... 4 5 »