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

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

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

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

История благодарностей участнику iplague ::: Спасибо сказали: 9
Дата поста: В теме: За сообщение: Спасибо сказали:
18.11.2021, 1:30 Летающий топор (самый лучший плагин топора в мире)
Плагин добавляет на сервер летающий топор.

Более подробно на видео.
Видево 1
Видево 2
Видево 3

Спасибо за внимание.

[attachment=54048:axe_effect.zip]

Affl, pacumka
23.12.2019, 15:43 Викторина для администраторов
Добрый день. Набросал себе плагин викторины, использую, игрокам нравится. Может кому пригодится.
Версия амх - 190.
Для 182 дописать
Код
#include <dhudmessages>
Как работает?
Администратор:
say !ответ_на_вопрос (например, say !4)
say ?вопрос (например, Сколько будет 2+2)
Ответ засчитывается автоматически (хук чата), поэтому плагин в списке должен быть выше других плагинов, хукающих чат (транслиты и тд)
Кириллица чувствительна к регистру ("Коля" и "коля" - два разных ответа).
Латинские буквы переводятся в нижний регистр ("Nikola", "nIKOLA", "nIkOlA" - засчитываются одинаково).
Команда для открытия менюшки give_bonus (консольная)
Доступ - ADMIN_BAN (строка 32)
Код. Строка 45-47 пишем свои награды в меню, строка 67 - выдаём награды, например, деньги, опыт
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new QUESION[180];
new ANSWER[180];
new NAME[32];
new bool:IsQuestion = false;
new bool:IsAnswer = false;
new WINNER = 0;

public plugin_init()
{
    register_clcmd("say", "hook_say");
    register_clcmd("givebonus", "give_bonus");
    register_menucmd(register_menuid("give_bonus"), (1<<0|1<<1|1<<2|1<<5|1<<9), "handler_give_bonus");
}

public client_disconnected(id)
{
    if(id == WINNER)
    {
        WINNER = 0;
        if(task_exists(213321213))
            remove_task(213321213);
        ChatColor(0,"^4[В]^1 победитель вышел с сервера!");
    }
}

public give_bonus(id)
{
    if(~get_user_flags(id) & ADMIN_BAN)
        return PLUGIN_HANDLED;
    
    static pos, szMenu[512], keys;
    keys = (1<<0)|(1<<1)|(1<<2)|(1<<5)|(1<<9);
    pos = 0;

    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\yМеню викторины^n");
    if(WINNER == 0)
        pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\wПобедитель: \dещё нет^n");
    else
        pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\wПобедитель: %s^n",NAME);

    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "%s1. Выдать награду 1^n", WINNER ? "\w" : "\d");
    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "%s2. Выдать награду 2^n", WINNER ? "\w" : "\d");
    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "%s3. Выдать награду 3^n", WINNER ? "\w" : "\d");
    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\wВопрос: %s^n",IsQuestion ? QUESION : "\dНе задан");
    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\wОтвет: %s^n",IsAnswer ? ANSWER : "\dНе задан");
    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "%s6. Завершить и вывести ответ на экран^n^n^n",IsAnswer ? "\w" : "\d");
    pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "0. Выход");
    return show_menu(id, keys, szMenu, -1, "give_bonus");
}

public handler_give_bonus(id, item)
{
    switch(item)
    {
        case 0..2:
        {
            if(!WINNER)
                return PLUGIN_HANDLED;
            
            if(task_exists(213321213))
                remove_task(213321213);
            
            // Выдаём награду
            
            set_dhudmessage(random(255), random(255), random(255), -1.0, 0.40, 0, 0.0, 6.0, 0.1, 2.6 );
            show_dhudmessage(0, " Админ выдал награду");
            log_to_file("VICTORY.txt", " Админ выдал награду");
            ChatColor(0,"^4[В]^1 Админ выдал награду");
            WINNER = 0;
            format(NAME,179,"");
            return PLUGIN_HANDLED;
        }
        case 5:
        {
            if(IsQuestion && IsAnswer)
            {
                if(task_exists(213321213))
                    remove_task(213321213);
                set_dhudmessage(random(255), random(255), random(255), -1.0, 0.40, 0, 0.0, 5.0, 0.1, 1.6 );
                show_dhudmessage(0, "Викторина завершена!^nОтвет: %s", ANSWER);
                ChatColor(0,"^4[В]^1 завершена! Ответ: %s", ANSWER);
                log_to_file("VICTORY.txt","Викторина завершена! Ответ: %s", ANSWER);
                format(QUESION,179,"");
                format(ANSWER,179,"");
                IsAnswer = false;
                IsQuestion = false;
                WINNER = 0;
                format(NAME,179,"");
                return PLUGIN_HANDLED;
            }
        }
        case 9: return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}

public hook_say(id)
{
    new szSaid[180];
    read_args(szSaid, 179);
    remove_quotes(szSaid);
            
    if(szSaid[0] == '!')  // Записали ОТВЕТ
    {
        replace_all(szSaid,179,"!","");
        replace_all(szSaid,179," ","");
        
        if(~get_user_flags(id) & ADMIN_BAN)
            return PLUGIN_CONTINUE;
        if(WINNER)
        {
            ChatColor(id,"^4[В]^1 Сначала выдайте приз!");
            return PLUGIN_HANDLED;
        }
        format(ANSWER,179,"");
        ANSWER = szSaid;
        strtolower(ANSWER);

        IsAnswer = true;
        ChatColor(id,"^4[В]^1 Ответ: %s", ANSWER);
        log_to_file("VICTORY.txt","Ответ: %s", ANSWER);
        return PLUGIN_HANDLED;
    }
    
    else if(szSaid[0] == '?')  // Записали вопрос
    {
        replace_all(szSaid,179,"?","");
        if(~get_user_flags(id) & ADMIN_BAN)
            return PLUGIN_CONTINUE;
        if(WINNER)
        {
            ChatColor(id,"^4[В]^1 Сначала выдайте приз!");
            return PLUGIN_HANDLED;
        }
        if(!IsAnswer)
        {
            ChatColor(id,"^4[В]^1 Сначала укажите ответ!");
            return PLUGIN_HANDLED;
        }
        format(QUESION,179,"");
        QUESION = szSaid;
        ChatColor(id,"^4[В]^1 Вопрос: %s", QUESION);
        log_to_file("VICTORY.txt","Вопрос: %s", QUESION);
        IsQuestion = true;
        set_task(1.0, "taskHUD", 213321213, "", 0, "b");
        return PLUGIN_HANDLED;
    }
    
    if(!IsQuestion || WINNER)
        return PLUGIN_CONTINUE;
    
    strtolower(szSaid);
    
    if(strfind(szSaid, ANSWER) != -1)
    {
        if(task_exists(213321213))
        {
            WINNER = id;
            format(QUESION,179,"");
            format(NAME,179,"");
            get_user_name(id, NAME, 31);
            ChatColor(0,"^4[В]^1 %s ответил: %s", NAME, ANSWER);
            log_to_file("VICTORY.txt","%s ответил: ^3%s^1", NAME, ANSWER);
            IsQuestion = false;
            IsAnswer = false;
            return PLUGIN_HANDLED;
        }
    }
    return PLUGIN_CONTINUE;
}

public taskHUD()
{
    if(IsQuestion && !WINNER)
    {
        set_dhudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 0.0, 1.5, 0.1, 0.5 );
        show_dhudmessage(0, "Викторина:^n%s", QUESION);
    }
    
    if(!IsQuestion && WINNER)
    {
        set_dhudmessage(random(255), random(255), random(255), -1.0, 0.20, 0, 0.0, 1.5, 0.1, 0.5 );
        show_dhudmessage(0, "Ответ %s^nПобедитель %s", ANSWER, NAME);
    }
}

stock ChatColor(const id, const szMessage[], any:...)
{
    static pnum, players[32], szMsg[190], IdMsg;
    vformat(szMsg, charsmax(szMsg), szMessage, 3);
    
    if(!IdMsg) IdMsg = get_user_msgid("SayText");
    
    if(id)
    {
        if(!is_user_connected(id)) return 1;
        players[0] = id;
        pnum = 1;
    }
    else get_players(players, pnum, "ch");
    
    for(new i; i < pnum; i++)
    {
        message_begin(MSG_ONE, IdMsg, .player = players[i]);
        write_byte(players[i]);
        write_string(szMsg);
        message_end();
    }
    return 1;
}
Cкрины
[attachment=51280:vic1.jpg][attachment=51281:vic2.jpg][attachment=51282:vic3.jpg
][attachment=51283:vic4.jpg]
Affl, DexteR, TauJIeP
17.12.2019, 12:04 Sprites Emotions
Цитата(OLAF @ 17.12.2019, 11:40) *
Вспомнилось я рисовал такие спрайты для владелицы женского эпицентра еще года 4 назад, ну это так к слову пришлось....

Данный плагин я сделал в 2015 году по просьбе одного человека, если не изменяет память, по аналогии с каким то плагином. Вполне вероятно с ЖЭ.
В 2016 году выложил плагин себе в группу.
Cкрытый текст

Я знаю что вы автор множества отличных моделей. Но вряд ли вы автор смайлов qip, так, к слову....
Но это ни коим образом не уменьшает список ваших заслуг.
Izmayl7
16.12.2019, 19:40 Sprites Emotions
Простенький плагин, который позволяет выражать эмоции через смайлы.
Подробности на скриншотах.
Скрины
[attachment=51251:1.jpg]
[attachment=51252:2.jpg]
[attachment=51253:3.jpg]
[attachment=51254:4.jpg]


Скрипт
Код:
#include <amxmodx>
#include <fakemeta>

new Float:EMO_TIME[33]=0.0,sprite_index[8];
new CMD[] = {"say emotions","emotions","say /emotions","say /emotion","emotion","say emotion"};
new const g_sprite[8][] ={
"sprites/emotions/devil.spr", //НЕДОВОЛЬСТВО
"sprites/emotions/wow.spr" , //ШОК
"sprites/emotions/like.spr", //ЛЮБОВЬ
"sprites/emotions/sad.spr", //ГРУСТЬ
"sprites/emotions/kiss.spr", //ПОЦЕЛУЙ
"sprites/emotions/smile.spr", //УЛЫБКА
"sprites/emotions/agree.spr", //Согласие
"sprites/emotions/rofl.spr" //РОФЛ
}

public plugin_init(){
register_plugin("Emotion Icon", "1.0", "iPlague");
register_forward(FM_CmdStart, "CmdStart" );
for(new i = 0; i < sizeof(CMD); i ++) register_clcmd(CMD[i],"emotions_menu",_,"Открыть меню эмоций");
register_logevent("round_start",2,"1=Round_Start");
register_menucmd(register_menuid("emotions_menu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<9), "handler_emotions_menu");
}

public CmdStart(id,uc_handle,seed)if(get_uc(uc_handle,UC_Impulse) == 100) emotions_menu(id);
public round_start() ChatColor(0, "^4[CSO emotions] ^1Нажмите ^3F ^1(или ^4emotions ^1в чат) что бы открыть меню ^3Эмоций");
public plugin_precache() for(new i; i < sizeof g_sprite; i++) sprite_index[i] = precache_model(g_sprite[i]);
public client_putinserver(id) EMO_TIME[id]=0.0;

public emotions_menu(id)
{
if(!is_user_alive(id)){
ChatColor(id, "^4[CSO emotions] ^1Только для живых!");
return PLUGIN_HANDLED;
}
new Float:GAME_TIME = get_gametime();
if(GAME_TIME < EMO_TIME[id]){
ChatColor(id, "^4[CSO emotions] ^1Возможность будет доcтупна через ^3%.0f",(EMO_TIME[id] - GAME_TIME));
return PLUGIN_HANDLED;
}

static pos, szMenu[512], keys;
keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<9);
pos = 0;

pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\yМеню эмоций^n^n\w");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "1. Недовольство^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "2. Шок^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "3. Любовь^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "4. Грусть^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "5. Поцелуй^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "6. Улыбка^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "7. Согласие^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "8. Смех LOL^n^n");
pos += formatex( szMenu[pos], charsmax(szMenu)-pos, "\y0. Выход");

return show_menu(id, keys, szMenu, -1, "emotions_menu");
}

public handler_emotions_menu(id,item)
{
switch(item)
{
case 0..7:
{
new players[32], pnum;
get_players(players,pnum,"ach");
for (new i = 0; i < pnum; i++ )
{
if(players[i] == id || !is_user_connected(players[i])) continue;
message_begin(MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, { 0, 0, 0 }, players[i]);
write_byte(TE_PLAYERATTACHMENT);
write_byte(id);
write_coord(45);
write_short(sprite_index[item]);
write_short(25);
message_end();
}
new Float:GAME_TIME = get_gametime();
EMO_TIME[id] = GAME_TIME + 6.0; // что бы не спамили
return;
}
}
return;
}

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


Спрайты:
[attachment=51255:spr.7z]
MDMA20, on1x