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

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

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

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

> Полезные ссылки

2 страниц V   1 2

Услуги по написанию плагинов

, Работают 2 человека
Статус пользователя $@NyA
сообщение 18.10.2020, 14:54
Сообщение #1


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Предлагаем услуги по написанию плагинов,делаем мелкие правки,фиксовочки,подчищаем лишний мусор

От Вас:
Чёткое составленное Техническое задание о роботе в Текстовом файле
SMA файл
Также следует в указать,под какую версию AMXX следует сделать Вашу роботу
Ресурсы,которые идут к исходному коду ( для выполнения Тестирования )
Если ресурсы не будут предоставлены - Тесты проводите Вы

В работе 2 человека:
Я делаю мелкую роботу ( то,что знаю ), остальные дела делает мой напарник

Оплата:
Работаем ТОЛЬКО по 100 % оплате !!!
Далее после выполнения роботы Вы получаете .sma файл,- проверяете его.
Если всё устраивает - робота завершена.Если нет - продолжаем дописывать / фиксовать ,если что не так

Мы принимаем:
Карта А-Банк ( грн. / руб. )
Яндекс Деньги

Цены:
Всё зависит от того,что Вы хотите.
После получения ТЗ мы оцениваем степень трудности роботы и принимаем решение о цене.
Если цена будет ниже ,чем 200 рублей - не работаем

Для постоянных клиентов делаем скидки,а также будем работать уже БЕЗ 100 % оплаты ! ( Только 50 % предоплата )
Не пишем под Reapi !

Примеры наших Работ
AMMO ON THE GROUND
Код:
#define VERSION    "1.3"

#include <amxmodx>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "AMMO ON THE GROUND"
#define AUTHOR "Sanya@ (Skype: admin-zombarik)"

#define PEV_CSW pev_iuser1
#define PEV_PLUS_AMMO pev_iuser2
#define PEV_OWNER pev_iuser3
#define PEV_SLOT pev_iuser4

#define OFFSET_PLAYER 41
#define OFFSET_CLIP_AMMO 51
#define OFFSET_NEXT_ATTACK 83
#define OFFSET_IN_RELOAD 54

#define OFFSET_LINUX 5 //offsets 5 higher in Linux builds
#define OFFSET_LINUX_WEAPONS 4 //weapon offsets are only 4 steps higher on Linux

#define STEP 10.0
#define VERTICAL_SPEED 20.0
#define HORISONTAL_SPEED 60.0

#define LIFE_AMMO 25.0 // Сколько секунд до исчезновения Патронов

enum (+= 1) {
STATUS_NONE = 0,
STATUS_EFFECT,
STATUS_KILL
}

new g_msgScreenFade

new
const
WEAPONS_CLASSNAME[][] =
{
"weapon_p228","weapon_scout","weapon_mac10","weapon_aug","weapon_elite","weapon_fiveseven","weapon_ump45","weapon_sg550","weapon_galil","weapon_famas","weapon_usp","weapon_glock18","weapon_awp","weapon_mp5navy","weapon_m4a1","weapon_tmp","weapon_g3sg1","weapon_deagle","weapon_sg552","weapon_ak47","weapon_p90","weapon_m249"
},
WEAPONS_CSW[] =
{
CSW_P228,CSW_SCOUT,CSW_MAC10,CSW_AUG,CSW_ELITE,CSW_FIVESEVEN,CSW_UMP45,CSW_SG550
,CSW_GALIL,CSW_FAMAS,CSW_USP,CSW_GLOCK18,CSW_AWP,CSW_MP5NAVY,CSW_M4A1,CSW_TMP,CS
W
_G3SG1,CSW_DEAGLE,CSW_SG552,CSW_AK47,CSW_P90,CSW_M249
},
WEAPONS_CLIP[] = {13,10,30,30,30,20,25,30,35,25,12,20,10,30,30,30,20,7,30,30,50,100},
WEAPONS_SECONDARY[][] = {"weapon_deagle", "weapon_fiveseven", "weapon_glock18", "weapon_p228", "weapon_usp", "weapon_elite"},
WEAPONS_SECONDARY_CSW[] = {CSW_DEAGLE, CSW_FIVESEVEN, CSW_GLOCK18, CSW_P228, CSW_USP, CSW_ELITE},
model_primary[] = "models/ammo_hd/ammo_primary.mdl",
model_secondary[] = "models/ammo_hd/ammo_secondary.mdl",
ammo_sound[] = "ammo_sound/ammo_sound.wav",
classname_entity[] = "groundclip";

new
bool:player_press_use[33];

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

new i,
count = sizeof(WEAPONS_CLASSNAME);
for(i = 0; i < count; i++)
RegisterHam(Ham_Weapon_Reload, WEAPONS_CLASSNAME[i], "ham_weapon_reload", true);
for(i = 0; i < count; i++)
RegisterHam(Ham_Item_Deploy, WEAPONS_CLASSNAME[i], "ham_item_deploy", true);

register_touch(classname_entity, "player", "touch_player");
register_think(classname_entity, "ThinkAmmo");
register_forward(FM_CmdStart, "forward_cmd_start");
register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
g_msgScreenFade = get_user_msgid("ScreenFade");
}

public event_new_round()
{
static i;

for(i = 1; i < 33; i++)
{
if(!get_player_status(i))
remove_values(i);
}

remove_entity_name(classname_entity);
}

public client_putinserver(player_id)
{
remove_values(player_id);
}

public client_disconnect(player_id)
{
remove_values(player_id);
}

public plugin_precache()
{
precache_model(model_primary);
precache_model(model_secondary);
precache_sound(ammo_sound);
}

public forward_cmd_start(const player_id, const uc_handle)
{
if(!get_player_status(player_id))
return;

static
buttons,
old_buttons;

buttons = get_uc(uc_handle, UC_Buttons);
old_buttons = pev(player_id, pev_oldbuttons);

if(buttons & IN_USE && !(old_buttons & IN_USE))
player_press_use[player_id] = true;
else
player_press_use[player_id] = false;
}

public screen_fade(id) {
message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(255)
write_byte(255)
write_byte(255)
write_byte(75)
message_end()
}

public touch_player(entity_id, player_id)
{
if(!(pev(entity_id, pev_flags) & FL_ONGROUND) || !get_player_status(player_id))
return PLUGIN_HANDLED;

if(pev(entity_id, PEV_OWNER) != player_id)
{
static csw_id, plus_bpammo;

csw_id = get_active_weapon_csw_id(player_id);
if(csw_id && csw_id != CSW_KNIFE)
{
if(is_secondary(pev(entity_id, PEV_CSW)) != is_secondary_csw(csw_id))
{
client_print(player_id, print_center, "Эти Патроны не подходят к Вашему Оружию");
return PLUGIN_HANDLED;
}

plus_bpammo = pev(entity_id, PEV_PLUS_AMMO);

cs_set_user_bpammo(player_id, csw_id, cs_get_user_bpammo(player_id, csw_id)+plus_bpammo);

client_cmd(player_id,"spk %s",ammo_sound)
screen_fade(player_id)

client_print(player_id, print_center, "Вы взяли +%d патронов", plus_bpammo);

remove_entity(entity_id);
}
}
return PLUGIN_HANDLED;
}

public ThinkAmmo(entity) {
if (!pev_valid(entity)) {
return HAM_IGNORED;
}

switch(pev(entity, pev_impulse)) {
case STATUS_NONE:{
set_pev(entity, pev_movetype, MOVETYPE_FLY);
set_pev(entity, pev_solid, SOLID_NOT);
set_pev(entity, pev_rendermode, kRenderTransAlpha);

set_pev(entity, pev_renderamt, 100.0);
set_pev(entity, pev_velocity, Float:{0.0, 0.0, VERTICAL_SPEED});
set_pev(entity, pev_avelocity, Float:{0.0, HORISONTAL_SPEED, 0.0})
set_pev(entity, pev_impulse, STATUS_EFFECT);
}
case STATUS_EFFECT: {
if (pev(entity, pev_renderamt) > 0.0) {
set_pev(entity, pev_renderamt, floatmax(0.0, pev(entity, pev_renderamt) - STEP));
} else {
set_pev(entity, pev_flags, FL_KILLME);
set_pev(entity, pev_impulse, STATUS_KILL);
}
}
}

set_pev(entity,pev_nextthink,get_gametime() + 0.1)

return HAM_SUPERCEDE;
}

public ham_item_deploy(const weapon_id)
{
static player_id;

if(!is_valid_ent(weapon_id))
return;

player_id = pev(weapon_id, pev_owner);

if(get_player_status(player_id))
remove_task(player_id);
}

public ham_weapon_reload(const weapon_id)
{
static player_id, param[5], i, weapon_classname[64], Float:sec_next_attack;

if(!is_valid_ent(weapon_id))
return;

if(get_pdata_int(weapon_id, OFFSET_IN_RELOAD, OFFSET_LINUX_WEAPONS))
{
arrayset(param, -1, 5);

player_id = pev(weapon_id, pev_owner);

pev(weapon_id, pev_classname, weapon_classname, 63);

if(get_player_status(player_id))
{
sec_next_attack = get_pdata_float(player_id, OFFSET_NEXT_ATTACK, OFFSET_LINUX);
if(sec_next_attack <= 0.0)
return;
for(i = 0; i < sizeof(WEAPONS_CSW); i++)
{
if(equali(WEAPONS_CLASSNAME[i], weapon_classname))
{
param[0] = i;
break;
}
}

param[1] = weapon_id;
param[2] = get_pdata_int(weapon_id, OFFSET_CLIP_AMMO, OFFSET_LINUX_WEAPONS);

if(param[0] != -1 && param[2] < WEAPONS_CLIP[i] && param[2] > 0)
{
param[4] = cs_get_user_bpammo(player_id, WEAPONS_CSW[i]);
param[3] = ((param[4] < WEAPONS_CLIP[i]) ? param[4] : -1);
param[4] = ((param[4] <= WEAPONS_CLIP[i]) ? 0 : (param[4]-WEAPONS_CLIP[i]));
if(param[4] >= 0)
{
param[4] = WEAPONS_CLIP[i];
set_task(sec_next_attack+0.1, "reload_task", player_id, param, 5);
}
}
}
}
}
public reload_task(param[], player_id)
{
static weapon_id, csw_id, clip, setclip, minusbpammo, entity_id, Float:player_origin[3];

if(param[0] == -1 || param[1] == -1 || param[2] == -1 || param[4] == -1)
return;
if(!get_player_status(player_id))
return;

csw_id = param[0];
weapon_id = param[1];
clip = param[2];
setclip = param[3];
minusbpammo = param[4];

if(setclip != -1)
set_pdata_int(weapon_id, OFFSET_CLIP_AMMO, setclip, OFFSET_LINUX_WEAPONS);

minusbpammo -= (WEAPONS_CLIP[csw_id]-clip);
cs_set_user_bpammo(player_id, WEAPONS_CSW[csw_id], cs_get_user_bpammo(player_id, WEAPONS_CSW[csw_id])-minusbpammo);

entity_id = 0;
entity_id = create_entity("info_target");
if(entity_id)
{
pev(player_id, pev_origin, player_origin);

set_pev(entity_id, PEV_OWNER, player_id);
set_pev(entity_id, pev_classname, classname_entity);

engfunc(EngFunc_SetModel, entity_id, (is_secondary(csw_id) ? model_secondary : model_primary));

set_pev(entity_id, pev_solid, SOLID_TRIGGER);
set_pev(entity_id, pev_movetype, MOVETYPE_TOSS);

engfunc(EngFunc_SetSize, entity_id, Float:{ -4.0, -4.0, -4.0 }, Float:{ 4.0, 4.0, 4.0 });
engfunc(EngFunc_SetOrigin, entity_id, player_origin);

set_pev(entity_id, PEV_CSW, csw_id);
set_pev(entity_id, PEV_PLUS_AMMO, clip);
set_pev(entity_id, PEV_SLOT, (is_secondary(csw_id) ? 2 : 1));

static Float:velocity[3];
velocity[0] = random_float(50.0,100.0);
velocity[1] = random_float(50.0,100.0);
velocity[2] = random_float(100.0,300.0);
set_pev(entity_id, pev_velocity, velocity);
set_pev(entity_id, pev_rendermode, kRenderFxNone);
set_pev(entity_id, pev_nextthink, get_gametime() + LIFE_AMMO);
}
}

get_player_status(const player_id)
{
if(player_id > 0 && player_id <= 32)
{
if(is_user_connected(player_id) || is_user_bot(player_id))
{
if(is_user_alive(player_id))
return 2;
return 1;
}
}
return 0;
}

bool:is_secondary(const csw_id)
{
static i;

for(i = 0; i < sizeof WEAPONS_SECONDARY; i++)
{
if(equali(WEAPONS_SECONDARY[i], WEAPONS_CLASSNAME[csw_id]))
return true;
}
return false;
}
bool:is_secondary_csw(const csw_id)
{
static i;

for(i = 0; i < sizeof WEAPONS_SECONDARY_CSW; i++)
{
if(WEAPONS_SECONDARY_CSW[i] == csw_id)
return true;
}
return false;
}

remove_values(const player_id)
{
remove_task(player_id);
player_press_use[player_id] = false;
}

get_active_weapon_csw_id(const player_id)
{
static find_ent_id;

find_ent_id = get_pdata_cbase(player_id, 373, 5);

if(pev_valid(find_ent_id) == 2)
return get_pdata_int(find_ent_id, 43, 4);
return 0;
}

Bomb Block Beep
Код:
#include <amxmodx>
#include <fakemeta_util>

#define PLUGIN "Bomb Block Beep"
#define VERSION "1.2"
#define AUTHOR "MayroN / edit Stimul"

#define BLOCK_BEEP_SOUND // Стандартные звуки бомбы

#if defined BLOCK_BEEP_SOUND
#define m_flNextBeep 102
#endif

new g_iBomb;

new snake_sound[] = "bomb_snake_sound/bomb_snake_sound.wav"

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

register_logevent("EventBombPlanted", 3, "2=Planted_The_Bomb");
register_logevent("EventBombDefused", 3, "2=Defused_The_Bomb");
register_logevent("EventRoundEnd", 2, "1=Round_End");
register_event("HLTV", "RoundNew", "a", "1=0", "2=0") ;
}

public plugin_precache()
{
precache_sound(snake_sound);
}

public EventBombPlanted()
{
#if defined BLOCK_BEEP_SOUND

g_iBomb = FM_NULLENT
while((g_iBomb = engfunc(EngFunc_FindEntityByString, g_iBomb, "classname", "grenade")))
set_pdata_float(g_iBomb, m_flNextBeep, get_gametime() + 9999.9)
#endif

emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}

public EventBombDefused()
{
emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
}

public EventRoundEnd()
{
emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
}

public RoundNew()
{
emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
}

Info Frags
Код:
#include <amxmodx>
#include <dhudmessage>

#define PLUGIN "Info Frags"
#define VERSION "1.0"
#define AUTHOR "MayroN"

#define TASK_INFO 7428

new gMaxPlayers

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

gMaxPlayers = get_maxplayers()
}

public client_putinserver(id)
{
set_task(1.0, "frags_shower", id+TASK_INFO, _, _, "b")
}

public frags_shower(taskID)
{
taskID = TASK_INFO

new frags
for( new id = 1; id <= gMaxPlayers; id++ )
{
if(!is_user_connected(id)) continue;

frags = get_user_frags(id)

set_dhudmessage(255, 255, 255, 0.26, 0.03, 0, 1.0)
show_dhudmessage(id, "Ваши Убийства • %i / 50", frags)
}
}

public client_disconnect(id)
{
remove_task(id+TASK_INFO)
}

CHAT MODEL

Код:
#include <amxmodx>
#include <engine>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN_NAME "CHAT MODEL"
#define PLUGIN_VERSION "3.0"
#define PLUGIN_AUTHOR "MayroN & Sanya@ (Skype: admin-zombarik)"

#define CHAT_MODEL "models/chat_model/chat_model.mdl"

#define CHAT_MODELTIME 3.0 // Через сколько секунд Удалять Модель Чата

#define BOT_CHAT // Закомментируйте,что-бы Боты не использовали Чат и Модель

new g_PlayerModelChat[33]

#if defined BOT_CHAT
new bot_quota, ZBot
#endif

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

register_clcmd("say", "Open_Model");
register_clcmd("say_team", "Open_Model");

register_think("chat_model", "Close_Model");
RegisterHam(Ham_Killed, "player", "Model_Killed");

#if defined BOT_CHAT
register_logevent("logevent_round_start",2, "1=Round_Start");
bot_quota = get_cvar_pointer("bot_quota");
#endif
}

public plugin_precache()
{
precache_model(CHAT_MODEL)
}

public client_putinserver(id)
{
#if defined BOT_CHAT
if(!ZBot && is_user_bot(id) && get_pcvar_num(bot_quota) > 0)
set_task(0.1,"BotChat",id);
#endif

g_PlayerModelChat[id] = 0
}

public client_disconnect(id)
{
g_PlayerModelChat[id] = 0
}

public Open_Model(id)
{
if(!is_user_alive(id))
return;

new i_Ent = create_entity("info_target");

if(!is_valid_ent(i_Ent))
return;

engfunc(EngFunc_SetModel, i_Ent, CHAT_MODEL)
set_pev(i_Ent, pev_classname, "chat_model");

set_pev(i_Ent, pev_aiment, id)
set_pev(i_Ent, pev_movetype, MOVETYPE_FOLLOW)
set_pev(i_Ent, pev_owner, id)

g_PlayerModelChat[id] = i_Ent

set_pev(i_Ent, pev_nextthink, get_gametime() + CHAT_MODELTIME);
}

public Close_Model(entity_id)
{
if(is_valid_ent(entity_id))
remove_entity(entity_id);
}

public Model_Killed(player_id)
{
new entity = FM_NULLENT
while((entity = fm_find_ent_by_class(entity,"chat_model")))
{
if(pev(entity, pev_owner) == player_id)
engfunc(EngFunc_RemoveEntity,entity)
}
}

/*
==========
ЧАТ БОТОВ
==========
*/

#if defined BOT_CHAT
enum (+= 100)
{
TASK_BOT_USE_SKILL
}

#define ID_BOT_USE_SKILL (taskid - TASK_BOT_USE_SKILL);

new const g_BotChat[][] =
{
"Следующий раз я достану тебя !",
"Я не могу поверить в это...",
"Этот новичок просто заебал меня !",
"Где был тот парень ?",
"Кто-то зайдите на сервер...",
"Сколько фрагов мне нужно сделать на этой карте ?",
"Есть только один лидер )))",
"Не бери в голову это - это просто игра !",
"Ты болтаешь слишком много",
"Давай сходим за пивом ?",
"Извини я не хотел в тебя стрелять",
"Приветствуй короля, малыш : D",
"Я покажу вам свой опыт из оружия",
"Забей на оружие своё - Я предпочитаю КАЛАШ !",
"МОЧИ КОЗЛОВ !",
"Привет парни !",
"Здарова !",
"Почему никто не убивает меня ?)))",
"Ваш клан это - толпа лузеров...",
"Ты должен был убегать,пока я давал тебе шанс)",
"Перестань убивать меня )))",
"Мой монитор тёмный ! Может я сдох ?",
"Я увеличу яркость,потому что я нихрена не вижу !",
"Я ненавижу перезарядку...",
"Играем в Camper-Strike...?)",
"Вы уверены,что я не читер ?!",
"Я заебался уже здесь...",
"Есть боты на этом сервере ???",
"Я не пойму как,ну как так...?",
"Ты что с одним ножом бегаешь?"
}

public BotChat(id)
{
if(!ZBot && is_user_connected(id) && is_user_bot(id) && get_pcvar_num(bot_quota) > 0)
{
RegisterHamFromEntity(Ham_Killed, id, "Model_Killed", 1)
ZBot = 1
}
}

public Open_BotChat(id)
{
static botname[32];
get_user_name(id, botname, charsmax(botname));

print_chatColor(0, "\t%s\n : \g%s", botname, g_BotChat[random(sizeof(g_BotChat))]);
}

public logevent_round_start()
{
for (new id=1; id<33; id++)
{
if (!is_user_connected(id)) continue;
if (is_user_bot(id))
{
if (task_exists(id+TASK_BOT_USE_SKILL)) remove_task(id+TASK_BOT_USE_SKILL)
set_task(float(random_num(30,60)), "bot_use_skill", id+TASK_BOT_USE_SKILL)
}
}
}

public bot_use_skill(taskid)
{
new id = ID_BOT_USE_SKILL
if (!is_user_alive(id)) return;
if (!is_user_bot(id)) return;

Open_Model(id)
Open_BotChat(id)
if (task_exists(taskid)) remove_task(taskid)
set_task(float(random_num(30,60)), "bot_use_skill", id+TASK_BOT_USE_SKILL)
}
#endif

stock print_chatColor(const id,const input[], any:...)
{
new msg[191], players[32], count = 1;
vformat(msg,190,input,3);
replace_all(msg,190,"\g","^4");// green
replace_all(msg,190,"\n","^1");// normal
replace_all(msg,190,"\t","^3");// team

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();
}
}

Контакты:
Viber: +380979305746
VK: id43450756
ICQ: 384915683
Skype: sanya2117
Телеграм: djmayron
Почта: Miruk@list.ru
ЛС

Благодарим за Внимание

i
Уведомление:
Вы: 200 рублей? Это очень дорого !
Мы: Найдёте дешевле , мы напишем ещё дешевле !


Правила для заказчика

i
Уведомление:
- Минимальная стоимость заказа 200 рублей, даже если он очень простой.
- Заказчик расписывает конкретно весь свой заказ сам, я не обязан советовать ему что-либо. После я выставляю свою цену и сроки работы. Если покупатель согласен с ценой/сроками и данными правилами он сразу же должен оплатить 100% стоимости от заказа.
- Заказчик не имеет права что либо изменять в заказе в сторону доработок, если я уже принял заказ и получил оплату за конкретное ТЗ. P.S.Только за дополнительную плату.
- Я имею право без объяснений отказаться от выполнения заказа клиента при этом полностью возвращая средства.
- Я имею право без объяснений отказаться от взятия Вашего заказа.
- Если заказчик во время диалога со мной начнет грубить, писать бред и тому подобное что вызывает негативные эмоции о нем, я начинаю его игнорировать. А если он уже оплатил заказ, то возвращаю средства и добавляю его в чёрный список.
- Если заказчик получил заказ/товар и спустя время говорит что он ему не нужен, я не возвращаю средства так как заказчик сам должен был думать стоит ли оформлять покупку.
- Если заказчик отказывается от выполнения заказа на какой-либо из стадий работы, я не возвращаю средства так как заказчик сам должен был думать стоит ли оформлять покупку.
- Если моя работа оказалась с ошибками или *багами* объясните проблему я её решу. (не касаеться доработок не оговореных в ТЗ)
- После выполнения заказа все права принадлежат заказчику. Я скидываю заказчику *.sma ,а у себя его удаляю и дальнейшая судьба плагина меня не интересует. P.S. Если Вы как-то изменили *.sma что он перестал работать или работает не правильно, поддержку я не оказываю. P.S.Только за дополнительную плату.


Отредактировал: $@NyA, - 12.6.2021, 20:23


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   Цитировать сообщение
Статус пользователя Xydojke
сообщение 18.10.2020, 18:58
Сообщение #2
Стаж: 7 лет 9 месяцев

Сообщений: 97
Благодарностей: 19
Полезность: 112

сомневаюсь в ваших способностях! судя по темам help на соседних всех форумах dntknw.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 18.10.2020, 19:39
Сообщение #3


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

Цитата(Xydojke @ 18.10.2020, 19:58) *
сомневаюсь в ваших способностях! судя по темам help на соседних всех форумах dntknw.gif

Спрашивать какие-то вопросы должно быть постыдно или что?
Тем более, что человек не просто спрашивает, а показывает код, как и что он сделал.

ps.gif Никто не рождается профессионалом своего дела и не может знать ВСЁ.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 18.10.2020, 20:48
Сообщение #4


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Xydojke,
Все верно.
У меня мало способностей.
То,что будет для меня под силу - я сделаю.
Остальное допишет мой человек

Как и писал я выше


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Xydojke
сообщение 18.10.2020, 22:39
Сообщение #5
Стаж: 7 лет 9 месяцев

Сообщений: 97
Благодарностей: 19
Полезность: 112

ничего не имею против drinks.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 19.10.2020, 12:26
Сообщение #6


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

$@NyA, паблик работы можешь скинуть, посмотреть коды?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 19.10.2020, 14:01
Сообщение #7


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

d3m37r4,
В основном моих личных робот - 2 ( точнее совместных с напарником ) всего-то 4
Но раз уж на то пошло...то вот
AMMO ON THE GROUND
Код:
#define VERSION    "1.3"

#include <amxmodx>
#include <engine>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "AMMO ON THE GROUND"
#define AUTHOR "Sanya@ (Skype: admin-zombarik)"

#define PEV_CSW pev_iuser1
#define PEV_PLUS_AMMO pev_iuser2
#define PEV_OWNER pev_iuser3
#define PEV_SLOT pev_iuser4

#define OFFSET_PLAYER 41
#define OFFSET_CLIP_AMMO 51
#define OFFSET_NEXT_ATTACK 83
#define OFFSET_IN_RELOAD 54

#define OFFSET_LINUX 5 //offsets 5 higher in Linux builds
#define OFFSET_LINUX_WEAPONS 4 //weapon offsets are only 4 steps higher on Linux

#define STEP 10.0
#define VERTICAL_SPEED 20.0
#define HORISONTAL_SPEED 60.0

#define LIFE_AMMO 25.0 // Сколько секунд до исчезновения Патронов

enum (+= 1) {
STATUS_NONE = 0,
STATUS_EFFECT,
STATUS_KILL
}

new g_msgScreenFade

new
const
WEAPONS_CLASSNAME[][] =
{
"weapon_p228","weapon_scout","weapon_mac10","weapon_aug","weapon_elite","weapon_fiveseven","weapon_ump45","weapon_sg550","weapon_galil","weapon_famas","weapon_usp","weapon_glock18","weapon_awp","weapon_mp5navy","weapon_m4a1","weapon_tmp","weapon_g3sg1","weapon_deagle","weapon_sg552","weapon_ak47","weapon_p90","weapon_m249"
},
WEAPONS_CSW[] =
{
CSW_P228,CSW_SCOUT,CSW_MAC10,CSW_AUG,CSW_ELITE,CSW_FIVESEVEN,CSW_UMP45,CSW_SG550
,CSW_GALIL,CSW_FAMAS,CSW_USP,CSW_GLOCK18,CSW_AWP,CSW_MP5NAVY,CSW_M4A1,CSW_TMP,CSW
_G3SG1,CSW_DEAGLE,CSW_SG552,CSW_AK47,CSW_P90,CSW_M249
},
WEAPONS_CLIP[] = {13,10,30,30,30,20,25,30,35,25,12,20,10,30,30,30,20,7,30,30,50,100},
WEAPONS_SECONDARY[][] = {"weapon_deagle", "weapon_fiveseven", "weapon_glock18", "weapon_p228", "weapon_usp", "weapon_elite"},
WEAPONS_SECONDARY_CSW[] = {CSW_DEAGLE, CSW_FIVESEVEN, CSW_GLOCK18, CSW_P228, CSW_USP, CSW_ELITE},
model_primary[] = "models/ammo_hd/ammo_primary.mdl",
model_secondary[] = "models/ammo_hd/ammo_secondary.mdl",
ammo_sound[] = "ammo_sound/ammo_sound.wav",
classname_entity[] = "groundclip";

new
bool:player_press_use[33];

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

new i,
count = sizeof(WEAPONS_CLASSNAME);
for(i = 0; i < count; i++)
RegisterHam(Ham_Weapon_Reload, WEAPONS_CLASSNAME[i], "ham_weapon_reload", true);
for(i = 0; i < count; i++)
RegisterHam(Ham_Item_Deploy, WEAPONS_CLASSNAME[i], "ham_item_deploy", true);

register_touch(classname_entity, "player", "touch_player");
register_think(classname_entity, "ThinkAmmo");
register_forward(FM_CmdStart, "forward_cmd_start");
register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
g_msgScreenFade = get_user_msgid("ScreenFade");
}

public event_new_round()
{
static i;

for(i = 1; i < 33; i++)
{
if(!get_player_status(i))
remove_values(i);
}

remove_entity_name(classname_entity);
}

public client_putinserver(player_id)
{
remove_values(player_id);
}

public client_disconnect(player_id)
{
remove_values(player_id);
}

public plugin_precache()
{
precache_model(model_primary);
precache_model(model_secondary);
precache_sound(ammo_sound);
}

public forward_cmd_start(const player_id, const uc_handle)
{
if(!get_player_status(player_id))
return;

static
buttons,
old_buttons;

buttons = get_uc(uc_handle, UC_Buttons);
old_buttons = pev(player_id, pev_oldbuttons);

if(buttons & IN_USE && !(old_buttons & IN_USE))
player_press_use[player_id] = true;
else
player_press_use[player_id] = false;
}

public screen_fade(id) {
message_begin(MSG_ONE, g_msgScreenFade, {0,0,0}, id)
write_short(1<<10)
write_short(1<<10)
write_short(0x0000)
write_byte(255)
write_byte(255)
write_byte(255)
write_byte(75)
message_end()
}

public touch_player(entity_id, player_id)
{
if(!(pev(entity_id, pev_flags) & FL_ONGROUND) || !get_player_status(player_id))
return PLUGIN_HANDLED;

if(pev(entity_id, PEV_OWNER) != player_id)
{
static csw_id, plus_bpammo;

csw_id = get_active_weapon_csw_id(player_id);
if(csw_id && csw_id != CSW_KNIFE)
{
if(is_secondary(pev(entity_id, PEV_CSW)) != is_secondary_csw(csw_id))
{
client_print(player_id, print_center, "Эти Патроны не подходят к Вашему Оружию");
return PLUGIN_HANDLED;
}

plus_bpammo = pev(entity_id, PEV_PLUS_AMMO);

cs_set_user_bpammo(player_id, csw_id, cs_get_user_bpammo(player_id, csw_id)+plus_bpammo);

client_cmd(player_id,"spk %s",ammo_sound)
screen_fade(player_id)

client_print(player_id, print_center, "Вы взяли +%d патронов", plus_bpammo);

remove_entity(entity_id);
}
}
return PLUGIN_HANDLED;
}

public ThinkAmmo(entity) {
if (!pev_valid(entity)) {
return HAM_IGNORED;
}

switch(pev(entity, pev_impulse)) {
case STATUS_NONE:{
set_pev(entity, pev_movetype, MOVETYPE_FLY);
set_pev(entity, pev_solid, SOLID_NOT);
set_pev(entity, pev_rendermode, kRenderTransAlpha);

set_pev(entity, pev_renderamt, 100.0);
set_pev(entity, pev_velocity, Float:{0.0, 0.0, VERTICAL_SPEED});
set_pev(entity, pev_avelocity, Float:{0.0, HORISONTAL_SPEED, 0.0})
set_pev(entity, pev_impulse, STATUS_EFFECT);
}
case STATUS_EFFECT: {
if (pev(entity, pev_renderamt) > 0.0) {
set_pev(entity, pev_renderamt, floatmax(0.0, pev(entity, pev_renderamt) - STEP));
} else {
set_pev(entity, pev_flags, FL_KILLME);
set_pev(entity, pev_impulse, STATUS_KILL);
}
}
}

set_pev(entity,pev_nextthink,get_gametime() + 0.1)

return HAM_SUPERCEDE;
}

public ham_item_deploy(const weapon_id)
{
static player_id;

if(!is_valid_ent(weapon_id))
return;

player_id = pev(weapon_id, pev_owner);

if(get_player_status(player_id))
remove_task(player_id);
}

public ham_weapon_reload(const weapon_id)
{
static player_id, param[5], i, weapon_classname[64], Float:sec_next_attack;

if(!is_valid_ent(weapon_id))
return;

if(get_pdata_int(weapon_id, OFFSET_IN_RELOAD, OFFSET_LINUX_WEAPONS))
{
arrayset(param, -1, 5);

player_id = pev(weapon_id, pev_owner);

pev(weapon_id, pev_classname, weapon_classname, 63);

if(get_player_status(player_id))
{
sec_next_attack = get_pdata_float(player_id, OFFSET_NEXT_ATTACK, OFFSET_LINUX);
if(sec_next_attack <= 0.0)
return;
for(i = 0; i < sizeof(WEAPONS_CSW); i++)
{
if(equali(WEAPONS_CLASSNAME[i], weapon_classname))
{
param[0] = i;
break;
}
}

param[1] = weapon_id;
param[2] = get_pdata_int(weapon_id, OFFSET_CLIP_AMMO, OFFSET_LINUX_WEAPONS);

if(param[0] != -1 && param[2] < WEAPONS_CLIP[i] && param[2] > 0)
{
param[4] = cs_get_user_bpammo(player_id, WEAPONS_CSW[i]);
param[3] = ((param[4] < WEAPONS_CLIP[i]) ? param[4] : -1);
param[4] = ((param[4] <= WEAPONS_CLIP[i]) ? 0 : (param[4]-WEAPONS_CLIP[i]));
if(param[4] >= 0)
{
param[4] = WEAPONS_CLIP[i];
set_task(sec_next_attack+0.1, "reload_task", player_id, param, 5);
}
}
}
}
}
public reload_task(param[], player_id)
{
static weapon_id, csw_id, clip, setclip, minusbpammo, entity_id, Float:player_origin[3];

if(param[0] == -1 || param[1] == -1 || param[2] == -1 || param[4] == -1)
return;
if(!get_player_status(player_id))
return;

csw_id = param[0];
weapon_id = param[1];
clip = param[2];
setclip = param[3];
minusbpammo = param[4];

if(setclip != -1)
set_pdata_int(weapon_id, OFFSET_CLIP_AMMO, setclip, OFFSET_LINUX_WEAPONS);

minusbpammo -= (WEAPONS_CLIP[csw_id]-clip);
cs_set_user_bpammo(player_id, WEAPONS_CSW[csw_id], cs_get_user_bpammo(player_id, WEAPONS_CSW[csw_id])-minusbpammo);

entity_id = 0;
entity_id = create_entity("info_target");
if(entity_id)
{
pev(player_id, pev_origin, player_origin);

set_pev(entity_id, PEV_OWNER, player_id);
set_pev(entity_id, pev_classname, classname_entity);

engfunc(EngFunc_SetModel, entity_id, (is_secondary(csw_id) ? model_secondary : model_primary));

set_pev(entity_id, pev_solid, SOLID_TRIGGER);
set_pev(entity_id, pev_movetype, MOVETYPE_TOSS);

engfunc(EngFunc_SetSize, entity_id, Float:{ -4.0, -4.0, -4.0 }, Float:{ 4.0, 4.0, 4.0 });
engfunc(EngFunc_SetOrigin, entity_id, player_origin);

set_pev(entity_id, PEV_CSW, csw_id);
set_pev(entity_id, PEV_PLUS_AMMO, clip);
set_pev(entity_id, PEV_SLOT, (is_secondary(csw_id) ? 2 : 1));

static Float:velocity[3];
velocity[0] = random_float(50.0,100.0);
velocity[1] = random_float(50.0,100.0);
velocity[2] = random_float(100.0,300.0);
set_pev(entity_id, pev_velocity, velocity);
set_pev(entity_id, pev_rendermode, kRenderFxNone);
set_pev(entity_id, pev_nextthink, get_gametime() + LIFE_AMMO);
}
}

get_player_status(const player_id)
{
if(player_id > 0 && player_id <= 32)
{
if(is_user_connected(player_id) || is_user_bot(player_id))
{
if(is_user_alive(player_id))
return 2;
return 1;
}
}
return 0;
}

bool:is_secondary(const csw_id)
{
static i;

for(i = 0; i < sizeof WEAPONS_SECONDARY; i++)
{
if(equali(WEAPONS_SECONDARY[i], WEAPONS_CLASSNAME[csw_id]))
return true;
}
return false;
}
bool:is_secondary_csw(const csw_id)
{
static i;

for(i = 0; i < sizeof WEAPONS_SECONDARY_CSW; i++)
{
if(WEAPONS_SECONDARY_CSW[i] == csw_id)
return true;
}
return false;
}

remove_values(const player_id)
{
remove_task(player_id);
player_press_use[player_id] = false;
}

get_active_weapon_csw_id(const player_id)
{
static find_ent_id;

find_ent_id = get_pdata_cbase(player_id, 373, 5);

if(pev_valid(find_ent_id) == 2)
return get_pdata_int(find_ent_id, 43, 4);
return 0;
}

Bomb Block Beep
Код:
#include <amxmodx>
#include <fakemeta_util>

#define PLUGIN "Bomb Block Beep"
#define VERSION "1.2"
#define AUTHOR "MayroN / edit Stimul"

#define BLOCK_BEEP_SOUND // Стандартные звуки бомбы

#if defined BLOCK_BEEP_SOUND
#define m_flNextBeep 102
#endif

new g_iBomb;

new snake_sound[] = "bomb_snake_sound/bomb_snake_sound.wav"

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

register_logevent("EventBombPlanted", 3, "2=Planted_The_Bomb");
register_logevent("EventBombDefused", 3, "2=Defused_The_Bomb");
register_logevent("EventRoundEnd", 2, "1=Round_End");
register_event("HLTV", "RoundNew", "a", "1=0", "2=0") ;
}

public plugin_precache()
{
precache_sound(snake_sound);
}

public EventBombPlanted()
{
#if defined BLOCK_BEEP_SOUND

g_iBomb = FM_NULLENT
while((g_iBomb = engfunc(EngFunc_FindEntityByString, g_iBomb, "classname", "grenade")))
set_pdata_float(g_iBomb, m_flNextBeep, get_gametime() + 9999.9)
#endif

emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}

public EventBombDefused()
{
emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
}

public EventRoundEnd()
{
emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
}

public RoundNew()
{
emit_sound(0, CHAN_AUTO, snake_sound, VOL_NORM, ATTN_NORM, SND_STOP, PITCH_NORM);
}

Info Frags
Код:
#include <amxmodx>
#include <dhudmessage>

#define PLUGIN "Info Frags"
#define VERSION "1.0"
#define AUTHOR "MayroN"

#define TASK_INFO 7428

new gMaxPlayers

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

gMaxPlayers = get_maxplayers()
}

public client_putinserver(id)
{
set_task(1.0, "frags_shower", id+TASK_INFO, _, _, "b")
}

public frags_shower(taskID)
{
taskID = TASK_INFO

new frags
for( new id = 1; id <= gMaxPlayers; id++ )
{
if(!is_user_connected(id)) continue;

frags = get_user_frags(id)

set_dhudmessage(255, 255, 255, 0.26, 0.03, 0, 1.0)
show_dhudmessage(id, "Ваши Убийства • %i / 50", frags)
}
}

public client_disconnect(id)
{
remove_task(id+TASK_INFO)
}

CHAT MODEL

Код:
#include <amxmodx>
#include <engine>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN_NAME "CHAT MODEL"
#define PLUGIN_VERSION "3.0"
#define PLUGIN_AUTHOR "MayroN & Sanya@ (Skype: admin-zombarik)"

#define CHAT_MODEL "models/chat_model/chat_model.mdl"

#define CHAT_MODELTIME 3.0 // Через сколько секунд Удалять Модель Чата

#define BOT_CHAT // Закомментируйте,что-бы Боты не использовали Чат и Модель

new g_PlayerModelChat[33]

#if defined BOT_CHAT
new bot_quota, ZBot
#endif

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

register_clcmd("say", "Open_Model");
register_clcmd("say_team", "Open_Model");

register_think("chat_model", "Close_Model");
RegisterHam(Ham_Killed, "player", "Model_Killed");

#if defined BOT_CHAT
register_logevent("logevent_round_start",2, "1=Round_Start");
bot_quota = get_cvar_pointer("bot_quota");
#endif
}

public plugin_precache()
{
precache_model(CHAT_MODEL)
}

public client_putinserver(id)
{
#if defined BOT_CHAT
if(!ZBot && is_user_bot(id) && get_pcvar_num(bot_quota) > 0)
set_task(0.1,"BotChat",id);
#endif

g_PlayerModelChat[id] = 0
}

public client_disconnect(id)
{
g_PlayerModelChat[id] = 0
}

public Open_Model(id)
{
if(!is_user_alive(id))
return;

new i_Ent = create_entity("info_target");

if(!is_valid_ent(i_Ent))
return;

engfunc(EngFunc_SetModel, i_Ent, CHAT_MODEL)
set_pev(i_Ent, pev_classname, "chat_model");

set_pev(i_Ent, pev_aiment, id)
set_pev(i_Ent, pev_movetype, MOVETYPE_FOLLOW)
set_pev(i_Ent, pev_owner, id)

g_PlayerModelChat[id] = i_Ent

set_pev(i_Ent, pev_nextthink, get_gametime() + CHAT_MODELTIME);
}

public Close_Model(entity_id)
{
if(is_valid_ent(entity_id))
remove_entity(entity_id);
}

public Model_Killed(player_id)
{
new entity = FM_NULLENT
while((entity = fm_find_ent_by_class(entity,"chat_model")))
{
if(pev(entity, pev_owner) == player_id)
engfunc(EngFunc_RemoveEntity,entity)
}
}

/*
==========
ЧАТ БОТОВ
==========
*/

#if defined BOT_CHAT
enum (+= 100)
{
TASK_BOT_USE_SKILL
}

#define ID_BOT_USE_SKILL (taskid - TASK_BOT_USE_SKILL);

new const g_BotChat[][] =
{
"Следующий раз я достану тебя !",
"Я не могу поверить в это...",
"Этот новичок просто заебал меня !",
"Где был тот парень ?",
"Кто-то зайдите на сервер...",
"Сколько фрагов мне нужно сделать на этой карте ?",
"Есть только один лидер )))",
"Не бери в голову это - это просто игра !",
"Ты болтаешь слишком много",
"Давай сходим за пивом ?",
"Извини я не хотел в тебя стрелять",
"Приветствуй короля, малыш : D",
"Я покажу вам свой опыт из оружия",
"Забей на оружие своё - Я предпочитаю КАЛАШ !",
"МОЧИ КОЗЛОВ !",
"Привет парни !",
"Здарова !",
"Почему никто не убивает меня ?)))",
"Ваш клан это - толпа лузеров...",
"Ты должен был убегать,пока я давал тебе шанс)",
"Перестань убивать меня )))",
"Мой монитор тёмный ! Может я сдох ?",
"Я увеличу яркость,потому что я нихрена не вижу !",
"Я ненавижу перезарядку...",
"Играем в Camper-Strike...?)",
"Вы уверены,что я не читер ?!",
"Я заебался уже здесь...",
"Есть боты на этом сервере ???",
"Я не пойму как,ну как так...?",
"Ты что с одним ножом бегаешь?"
}

public BotChat(id)
{
if(!ZBot && is_user_connected(id) && is_user_bot(id) && get_pcvar_num(bot_quota) > 0)
{
RegisterHamFromEntity(Ham_Killed, id, "Model_Killed", 1)
ZBot = 1
}
}

public Open_BotChat(id)
{
static botname[32];
get_user_name(id, botname, charsmax(botname));

print_chatColor(0, "\t%s\n : \g%s", botname, g_BotChat[random(sizeof(g_BotChat))]);
}

public logevent_round_start()
{
for (new id=1; id<33; id++)
{
if (!is_user_connected(id)) continue;
if (is_user_bot(id))
{
if (task_exists(id+TASK_BOT_USE_SKILL)) remove_task(id+TASK_BOT_USE_SKILL)
set_task(float(random_num(30,60)), "bot_use_skill", id+TASK_BOT_USE_SKILL)
}
}
}

public bot_use_skill(taskid)
{
new id = ID_BOT_USE_SKILL
if (!is_user_alive(id)) return;
if (!is_user_bot(id)) return;

Open_Model(id)
Open_BotChat(id)
if (task_exists(taskid)) remove_task(taskid)
set_task(float(random_num(30,60)), "bot_use_skill", id+TASK_BOT_USE_SKILL)
}
#endif

stock print_chatColor(const id,const input[], any:...)
{
new msg[191], players[32], count = 1;
vformat(msg,190,input,3);
replace_all(msg,190,"\g","^4");// green
replace_all(msg,190,"\n","^1");// normal
replace_all(msg,190,"\t","^3");// team

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();
}
}



МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя georgeml
сообщение 20.10.2020, 9:37
Сообщение #8
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

Зачем g_PlayerModelChat?
В чем различие remove_entity и EngFunc_RemoveEntity?
Чему равно первое значение enum в данном случае?
Код
enum (+= 100)
{
    TASK_BOT_USE_SKILL
}

Где вы копипастите это? На зарубежных темах 2005 года?

Код
if(!ZBot && is_user_bot(id) && get_pcvar_num(bot_quota) > 0)
               set_task(0.1,"BotChat",id);

if(!ZBot && is_user_connected(id) && is_user_bot(id) && get_pcvar_num(bot_quota) > 0)
    {
        RegisterHamFromEntity(Ham_Killed, id, "Model_Killed", 1)
        ZBot = 1
    }

Чем больше проверок, тем точнее?
Логика плагина выстругана хуже, чем предки Буратино. Но, главное, чтобы работал- не правда ли...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 20.10.2020, 9:46
Сообщение #9


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

georgeml, Напомню известную цитату
Цитата
Критикуешь - предлагай
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Salpson
сообщение 20.10.2020, 10:42
Сообщение #10


Иконка группы

Стаж: 13 лет
Город: Ульяновск

Сообщений: 1214
Благодарностей: 759
Полезность: 1065

georgeml, если ты не знаешь чему равно там значение в енуме, то как ты умудрился критиковать человека? Человек учится, пробует, есть ошибки указывайте, предлагайте варианты лучше, лишь бы обхаять только
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 6 раз
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 20.10.2020, 12:48
Сообщение #11


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

Цитата(Salpson @ 20.10.2020, 14:42) *
georgeml, если ты не знаешь чему равно там значение в енуме, то как ты умудрился критиковать человека? Человек учится, пробует, есть ошибки указывайте, предлагайте варианты лучше, лишь бы обхаять только

В смысле человек учится? Плугены на заказ вроде собирался он писать, что подразумевает достаточный опыт.
P.S. про енум сарказм)0
А по поводу логики georgeml прав. Отседа в теме с услугами написания плугенов вот такая строка:

Потому что на амх-х, амхmodx и алленях примеров с реапи мало)0 В то время как старинных плугенов, написаных черти как (на основе, которых пишется большинство всякой мишуры) - пруд пруди.
Сурсы движка и мода доступны, чо бы не изучить их, если вы все так хотите "развиваться", прежде чем "писать на заказ".
Если говорить именно об этом плагине - тонны непонятных проверок на коннект и прочее - показатель того, что делается это всё без знания дела.

ThePhoenix, можно я за georgeml предложу?)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 20.10.2020, 13:19
Сообщение #12


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

d3m37r4, Конечно) Только сообщение, где ты рассказываешь про опыт, про сурсы и т.д. - это не предложение чего-либо ;)

Чтобы ты просто понял мою позицию, я скажу что, смотрел на дев одну темку, где человек опубликовал плагин и ему накидали различных комментариев, где что не так и как лучше и он исправился (может даже чего запомнилось). Здесь же пришёл человек и по сути просто сказал, что плагин сделан плохо, не обьяснив по сути где и как лучше сделать.

Какой подход лучше, выбирайте, как бы сами.
ps.gif Вроде бы слова про плагины на заказ были со словами "что-то я, а остальное напарник", что подразумевает только то, что человек сделает то, что знает и напарник допилит его код (может даже исправит, что не так). Не вырываем слова из контекста, мы же не журналисты.

оффтоп

Цитата
если вы все так хотите "развиваться", прежде чем "писать на заказ"

Без практики, только читая, что такое переменная, условия и т.д. - толку НЕ БУДЕТ) А про "на заказ" я сказал выше.


Отредактировал: ThePhoenix, - 20.10.2020, 13:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 20.10.2020, 13:31
Сообщение #13


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

Цитата(ThePhoenix @ 20.10.2020, 17:19) *
d3m37r4, Конечно) Только сообщение, где ты рассказываешь про опыт, про сурсы и т.д. - это не предложение чего-либо ;)

Я хотел предложить не писать преваты smile.gif

Цитата(ThePhoenix @ 20.10.2020, 17:19) *
ps.gif Вроде бы слова про плагины на заказ были со словами "что-то я, а остальное напарник", что подразумевает только то, что человек сделает то, что знает и напарник допилит его код (может даже исправит, что не так). Не вырываем слова из контекста, мы же не журналисты.

Ну в два человека не изучить сурсы хлдс и геймдл + работу с нативами и хуками - такое себе)

Цитата(ThePhoenix @ 20.10.2020, 17:19) *
Без практики, только читая, что такое переменная, условия и т.д. - толку НЕ БУДЕТ) А про "на заказ" я сказал выше.

Практикуются как раз таки в опенсурс проектах, чтобы получить нужный фидбэк и опыт, а не в преваты лезут городить костыли по примерам с amxmodxru)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 20.10.2020, 13:42
Сообщение #14


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

d3m37r4, А где ты увидел здесь работу двух человек, которые в соседней теме будут писать на заказ? (насколько я понял, второй это Stimul)
Хорошо. Допустим, он не будет писать на заказ, передумал. Кто будет писать? Ты? Георг? Кто?
Почему люди неделями ждут сообщения, чтобы им запилил то, что они хотят великий и всезнающий скриптер? А то и вовсе не получают ответа. Дак потому, что заняты ребята, по сему и ищут по проще.

Я и не говорил, что надо сразу писать на заказ или что-то в этом роде! Я лишь указал, что "практика" нужна. Кто-то вообще может сразу на заказах учится, наверное crazy.gif

Отредактировал: ThePhoenix, - 20.10.2020, 13:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя georgeml
сообщение 20.10.2020, 13:42
Сообщение #15
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

ThePhoenix, Предлагаю прочесть сообщение еще раз.. или читать до тех пор, пока не увидите, что в нем и есть замечания. Я задал элементарные вопросы, которые АВТОР кода должен знать, иначе, можно смело заявить, что этот человек не имеет отношения к данному коду.
И это только те вопросы, на которые автор вообще мог бы что-то ответить.

d3m37r4, Никакого сарказма с енум. Первый элемент равен самому себе. Если ему не присвоено стартовое значение, в данном случае считаем, что ноль. Только последующие значения будут иметь смещение по отношению к предыдущему. Даже спрашивать не буду, чем этот ноль поможет в функциях с таском. Если Вы имели ввиду, о пользе енума с одним элементом, то вопрос в этом не стоял.

Вообще, мой пост появился ТОЛЬКО потому, что "автор" предлагает услуги по написанию/редактированию плагинов. Было бы это в теме помощи по коду, был бы другой подход.

Отредактировал: georgeml, - 20.10.2020, 13:44
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 20.10.2020, 14:06
Сообщение #16


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

Много чего есть сказать - но я воздержусь...
Поэтому я и написал в самом начале поста,что:
Цитата
Я не хотел делиться этим плагином вовсе по личным соображениям...

Знал наперёд,что будет такое здесь твориться.

Многие просили меня его скинуть - я скинул.Использовать или нет - на Ваше усмотрение

О том,что здесь много чего лишнего / не правильного / мусорного в словах "проФессионалов" - да,согласен.
Я сделал то,Что смог...
Если Вы хотите видеть идеал - никаких проблем.Покажите,ткните,что чем заменить - и я сделал...



МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя d3m37r4
сообщение 20.10.2020, 17:21
Сообщение #17


Стаж: 11 лет

Сообщений: 304
Благодарностей: 119
Полезность: 604

Цитата(ThePhoenix @ 20.10.2020, 17:42) *
d3m37r4, А где ты увидел здесь работу двух человек, которые в соседней теме будут писать на заказ? (насколько я понял, второй это Stimul)

В теме с заказами скинули "парные" работы.

Цитата(ThePhoenix @ 20.10.2020, 17:42) *
Хорошо. Допустим, он не будет писать на заказ, передумал. Кто будет писать? Ты? Георг? Кто?
Почему люди неделями ждут сообщения, чтобы им запилил то, что они хотят великий и всезнающий скриптер? А то и вовсе не получают ответа. Дак потому, что заняты ребята, по сему и ищут по проще.

Написать для того чтобы написать и срубить бабосики, впарив *** - каеф, верной дорогой идете товарисчи. Люди ждут неделями, потому что имеют идиотские и однообразные идеи.

Цитата(ThePhoenix @ 20.10.2020, 17:42) *
Кто-то вообще может сразу на заказах учится, наверное crazy.gif

В большинстве случаев - недалекий челик.

$@NyA, ну это тип критика плагина, автор которого занимается написанием плагинов на заказ (пусть и в паре с кем-то - хотя, это уже выглядит как дешевое оправдание).
P.S. надо было тоже в каждом релизе писать "не судите строго, я не скрыптир".
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ThePhoenix
сообщение 20.10.2020, 17:26
Сообщение #18


Стаж: 11 лет

Сообщений: 2723
Благодарностей: 533
Полезность: 40

d3m37r4, может и ошибся с ником второго, сорян.
ТС уже выразил своё мнение, так что, давайте закроем тему. Каждый останется всё равно при своих
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 20.10.2020, 20:31
Сообщение #19


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

d3m37r4,
Кстате "о парных работах")
$@NyA(aka MayroN) - это уже я
Sanya@ - это напарник

AMMO ON THE GROUND -это один автор Sanya@

Ну может это еще я не так понял тебя

И в заключении - оставлю не большой ОффТопчик
Для Всех
- Почему Вы пошли в Скриптеры?
- А куда мне еще идти?)))



МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
HipHop
сообщение 20.10.2020, 20:48
Сообщение #20
Стаж: 5 лет 7 месяцев
Город: Moscow

Сообщений: 185
Благодарностей: 139
Полезность: 828

Соглашусь с georgeml и d3m37r4:
• скриптер-новичок? рано писать за деньги;
• попросил выложить кто-то? делись только с ним.
Не существует достойных оснований плодить быдлокод в паблике. В привате ему самое место, пусть там и остаётся good.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: