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

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

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

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

Чуток до пилить плагин

Статус пользователя Nebo
сообщение 22.2.2013, 13:09
Сообщение #1


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Вообще вот что:) Нужно переделать плагин, сам я в этом не понимаю ничего:)
Плагин screen. Нужно сделать, что бы скрины могли делать только игроки с флагом d. Если не трудно, то сразу уже готовый исходник:)
Исходник screen

Код
#include <amxmodx>

#define PLUGIN  "Screen Shot"
#define VERSION "1.1"
#define AUTHOR  "Stimul"

#define ID_TASK 10203040

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

        register_clcmd("say /screen","Cmd_ScreenShot");
}

public Cmd_ScreenShot(id)
{
        new i_Menu = menu_create("\yКому будем делать скрин?", "menu_handler");
        new s_Players[32], i_Num, i_Player;
        new s_Name[32], s_Player[10];

        get_players(s_Players, i_Num);

        for(new i; i < i_Num; i++)
        {
                i_Player = s_Players[i];
                get_user_name(i_Player, s_Name, charsmax(s_Name));
                num_to_str(i_Player, s_Player, charsmax(s_Player));
                menu_additem(i_Menu, s_Name, s_Player, 0);
        }
        menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
        menu_setprop(i_Menu, MPROP_NEXTNAME, "Дальше");
        menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
        menu_display(id, i_Menu, 0);
}

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

        new s_Data[6], s_Name[64], s_Time[32], i_Access, i_Callback;
        menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback);
        new i_Player = str_to_num(s_Data);
        get_time("%d/%m/%Y - %H:%M:%S", s_Time, charsmax(s_Time));

        if(is_user_connected(i_Player))
        {
                set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 5.0, 5.0, 0.1, 1.0);
                show_hudmessage(i_Player, "%s^nВам были сделаны скрины^nДля разбана посетите vk.com/nypogodi", s_Time);
                set_task(0.1, "ScreenShotUser", i_Player + ID_TASK);
                set_task(1.0, "ScreenShotUser", i_Player + ID_TASK);
                set_task(2.0, "ScreenShotUser", i_Player + ID_TASK);
        }

        menu_destroy(menu);
        return PLUGIN_HANDLED;
}

public ScreenShotUser(TaskId)
{
        new id = TaskId - ID_TASK;
        if(is_user_connected(id))
                client_cmd(id, "snapshot");
}

public client_disconnect(id)
{
        if(task_exists(id + ID_TASK))
                remove_task(id + ID_TASK);
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 22.2.2013, 13:13
Сообщение #2
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

Скрытый текст
Код
#include <amxmodx>

#define PLUGIN  "Screen Shot"
#define VERSION "1.1"
#define AUTHOR  "Stimul"

#define ID_TASK 10203040

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

        register_clcmd("say /screen","Cmd_ScreenShot", ADMIN_BAN);
}

public Cmd_ScreenShot(id,level,cid)
{
        if (!cmd_access(id, level, cid, 1))
                return

        new i_Menu = menu_create("\yКому будем делать скрин?", "menu_handler");
        new s_Players[32], i_Num, i_Player;
        new s_Name[32], s_Player[10];

        get_players(s_Players, i_Num);

        for(new i; i < i_Num; i++)
        {
                i_Player = s_Players[i];
                get_user_name(i_Player, s_Name, charsmax(s_Name));
                num_to_str(i_Player, s_Player, charsmax(s_Player));
                menu_additem(i_Menu, s_Name, s_Player, 0);
        }
        menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
        menu_setprop(i_Menu, MPROP_NEXTNAME, "Дальше");
        menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
        menu_display(id, i_Menu, 0);
}

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

        new s_Data[6], s_Name[64], s_Time[32], i_Access, i_Callback;
        menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback);
        new i_Player = str_to_num(s_Data);
        get_time("%d/%m/%Y - %H:%M:%S", s_Time, charsmax(s_Time));

        if(is_user_connected(i_Player))
        {
                set_hudmessage(0, 255, 0, -1.0, -1.0, 0, 5.0, 5.0, 0.1, 1.0);
                show_hudmessage(i_Player, "%s^nВам были сделаны скрины^nДля разбана посетите vk.com/nypogodi", s_Time);
                set_task(0.1, "ScreenShotUser", i_Player + ID_TASK);
                set_task(1.0, "ScreenShotUser", i_Player + ID_TASK);
                set_task(2.0, "ScreenShotUser", i_Player + ID_TASK);
        }

        menu_destroy(menu);
        return PLUGIN_HANDLED;
}

public ScreenShotUser(TaskId)
{
        new id = TaskId - ID_TASK;
        if(is_user_connected(id))
                client_cmd(id, "snapshot");
}

public client_disconnect(id)
{
        if(task_exists(id + ID_TASK))
                remove_task(id + ID_TASK);
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 22.2.2013, 13:20
Сообщение #3


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

iLLuSioN, Благодарю thank_you2.gif
Упс, ошибка при компиляции:
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

screen.sma(18) : error 017: undefined symbol "cmd_access"

1 Error.
Could not locate output file screen.amx (compile failed).

Отредактировал: Nebo9, - 22.2.2013, 13:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 22.2.2013, 13:23
Сообщение #4
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

добавь #include <amxmisc>


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 22.2.2013, 13:24
Сообщение #5


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Цитата(iLLuSioN @ 22.2.2013, 13:23) *
добавь #include <amxmisc>

т.е так, да?!
Скрытый текст
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Screen Shot"
#define VERSION "1.1"
#define AUTHOR "Stimul"

#define ID_TASK 10203040

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

register_clcmd("say /screen","Cmd_ScreenShot", ADMIN_BAN);
}
.......
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 22.2.2013, 13:27
Сообщение #6
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

да


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 24.2.2013, 13:29
Сообщение #7


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Что бы не создавать ещё одну тему, напишу тут :)
Опять нужно переделать плагин, если конечно можно.
исходник VIP

Код
#include <amxmodx>
#include <hamsandwich>

#define PLUGIN  "Vip"
#define VERSION "1.0"
#define AUTHOR  "Stimul"

#define SECOND  1.0
#define VIP_TASK        21122012
#define VIP_ACCESS      ADMIN_LEVEL_H

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
    register_clcmd("say /adminka", "Cmd_Adminka");
    register_clcmd("say /vip", "Cmd_Vip");
}

public fw_PlayerSpawnPost(id)
{
    if(!is_user_connected(id) || ~get_user_flags(id) & VIP_ACCESS)
        return

    set_task(SECOND, "GiveVipStatus", id + VIP_TASK)
}

public GiveVipStatus(Task)
{
    new id = Task - VIP_TASK
    set_user_vipstatus(id)
}

public Cmd_Adminka(id) show_motd(id, "adminka.txt")

public Cmd_Vip(id) show_motd(id, "vip.txt")

set_user_vipstatus(id)
{
    message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
    write_byte(id)
    write_byte(4)
    message_end()
}

У вип игроков почему то меняется моделька, то есть вип моделька у них:) Хотелось бы убрать эту хрень:)

Отредактировал: Nebo9, - 24.2.2013, 13:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 24.2.2013, 18:17
Сообщение #8
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

Там нету смены модели)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AndrewZ
сообщение 24.2.2013, 20:43
Сообщение #9


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

Стаж: 18 лет
Город: Санкт-Петербург


Сообщений: 4700
Благодарностей: 2452
Полезность: 1018

Кажется, это как побочный эффект установки вип в скорборде.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 24.2.2013, 20:46
Сообщение #10


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Nickk,
хм...почему то у некторых отображаюся другие модельки, у кого вип
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 24.2.2013, 21:02
Сообщение #11
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

Nebo9,
Попробуй это, но сомневаюсь что это "побочный эффект".

Код
stock fm_set_user_scoreattrib(id, attrib=4)
{
    message_begin(MSG_BROADCAST, g_msgScoreAttrib, _, 0);
    write_byte(id);
    write_byte(attrib);
    message_end();
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: