Русское сообщество по скриптингу

Set_Message

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

Set_Message

Сообщение [N][E][M][E][C] » 04 окт 2021, 00:10

Изменения: rz 0.4 - Произведена оптимизация кода, добавлен конфиг с сообщениями

Автор: [N][E][M][E][C]
Описание: Данный плагин дает возможность посылать сообщения в чат с интервалом времени!
Максимальное количество сообщений 10

Код: Выделить всё
#include <amxmodx>                                                                                                                                             
                         
#define TRUE_LEN 0x10
#define MAX_LEN 192
#define MAX_FILE 10 //максимальное количество рекламных сообщений
                                
new const Float
:fTime = 30.0;
new g_sString[MAX_FILE][MAX_LEN +1];  
new g_iCountString
;                  
                                                                    
public plugin_init
() {
    new const szName[] = "[N][E][M][E][C]";
    register_plugin("Set Message", "rz 0.4", .author = szName);
    
    if
(!Confirmation_Authorship(szName, TRUE_LEN))
        server_print("Error: Assigned authorship"); 
                                                               
    load_config
();
    set_task(fTime, "Messages", .flags = "b");
}
                           
                                                  
public load_config
() {
    new sPathConfig[MAX_LEN +1];                              
    new sPath
[MAX_LEN +1]; 
    new sData
[MAX_LEN +1]; 
    new iFile
;                                        
    
    get_localinfo
("amxx_configsdir", sPathConfig, MAX_LEN);              
    format
(sPath, charsmax(sPath), "%s/Set_Message.ini", sPathConfig); 
    iFile 
= fopen(sPath, "rt");
    
    if
(!iFile)
        server_print("Error: The file was not created"); 
    
    while
(!feof(iFile)) {                   
        fgets
(iFile, sData, MAX_LEN);
                                               
        if
(!sData[0] || sData[0] == EOS)  
            continue
;
                                                                               
        if
(g_iCountString == MAX_FILE)
            return;
        
        format
(g_sString[g_iCountString++], MAX_LEN, "%s", sData);
    }                                                                    
    
    fclose
(iFile);                 
}                                        
                                                                                                                              
public Messages
() {                                   
    static iMsg
;                                                 
    client_print
(0, print_chat, "SM| %s", g_sString[iMsg++]);                                                                           
               
    if
(iMsg == g_iCountString) 
        iMsg 
= 0;
}
                 
bool
:Confirmation_Authorship(const szBuffer[], const checking_length) {
    new true_length = server_print("%s", szBuffer);

    if(true_length != checking_length) {
        pause("a");
        return false;
    }

    return true;
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось [N][E][M][E][C] 27 окт 2022, 02:51, всего редактировалось 6 раз(а).
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: SET_MESSAGE

Сообщение RockTheStreet » 04 окт 2021, 19:51

Стыдно такие плагины писать с редактированием через исходник. Сейчас полно аналогов, которые имеют редактирование сообщений через ini-файлы, что позволяет не компилировать заново плагин.
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 97
Зарегистрирован: 12 авг 2021, 23:13
Забанен
Благодарил (а): 7 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: SET_MESSAGE

Сообщение [N][E][M][E][C] » 04 окт 2021, 23:15

Я же говорю 4 таблетки лаперамита ребенок и все пройдет
Самое интересное, я не видел твоей работы не раз и ты еще критикуешь)))
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: SET_MESSAGE

Сообщение RockTheStreet » 04 окт 2021, 23:24

vitalik19842105 писал(а):Самое интересное, я не видел твоей работы не раз и ты еще критикуешь)))

Не аргумент. Я не обязан кому-либо предоставлять свои работы, особенно когда они по большей части ограниченному кругу людей реализовывались и в закрытый доступ.
Вторая попытка будет?
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 97
Зарегистрирован: 12 авг 2021, 23:13
Забанен
Благодарил (а): 7 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: SET_MESSAGE

Сообщение [N][E][M][E][C] » 05 окт 2021, 00:01

Я знаю как делать настройки не в скрипте, мне нравится так
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: SET_MESSAGE

Сообщение RockTheStreet » 05 окт 2021, 00:10

Знать как что-то делать и понимать как это работает - разные вещи.

Что за магический switch на один кейс? Зачем использовать client_print, когда сток также может посылать 'не разукрашенные' сообщения? Почему сообщения указываются в массиве, а префикс нужно редактировать в самом сообщении а не в дефайне(условно)?

В этом плагине всё по одному месту. Опять же, аналогов в более адекватной реализации полно, потому это ни единая душа не будет использовать(если конечно человек не больной).
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 97
Зарегистрирован: 12 авг 2021, 23:13
Забанен
Благодарил (а): 7 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: SET_MESSAGE

Сообщение [N][E][M][E][C] » 05 окт 2021, 14:59

Тзнаешь кого ты мне напоминаешь? Маугли посмотри, там есть персонаж, а мы пойдем на север, мы пойдем на север))
Последний раз редактировалось [N][E][M][E][C] 05 окт 2021, 20:07, всего редактировалось 1 раз.
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: SET_MESSAGE

Сообщение [N][E][M][E][C] » 05 окт 2021, 19:45

И если ты не заметил там кейс с интервалом чисел, я не вижу разницы проверки. If и switch
Код: Выделить всё
#include <amxmodx>                                      
                                                          
#define COLOR_MESSAGE
//если закоментировать, сообщение быть не цветное

/*Пример:                                      
#define COLOR_MESSAGE - цветное сообщение  
//#define COLOR_MESSAGE - обычное сообщение */ 
                              
#define PLUGIN "SET_MESSAGE"            
#define VERSION "0.3"                                       
#define AUTHOR "[N][E][M][E][C]"
                                                                                                        
#pragma semicolon 1                                                                                                                    

//настройки:            
new const TASKTIME 30;                    
//промежуток времени, между сообщениями(диапазон времени секундах) 
#if defined COLOR_MESSAGE 
    
new const message[][] = {
        
"^1[ ^4SERVER ^1] ^3наша группа ВК.....",                      
        
"^1[ ^4SERVER ^1] ^3IP адрес сервера.....",                                                                
        
"^1[ ^4SERVER ^1] ^3Напоминаем вам о правилах сервера",                                   
        
"^1[ ^4SERVER ^1] ^3У нас много интересного"                            
    
};
#else
    
new const message[][] = { 
        
"[ SERVER ] наша группа ВК.....",                      
        
"[ SERVER ] IP адрес сервера.....",                                                                
        
"[ SERVER ] Напоминаем вам о правилах сервера",                                   
        
"[ SERVER ] У нас много интересного"
    
};
#endif
//текст сообщений, соощения можно добовлять, так же убовлять 
                                    
new cl_score;              
new 
Floatfloat_time;                                
new const 
TASKID 199;
                                                                  
public 
plugin_init() {                                                                                   
    
register_plugin(PLUGINVERSIONAUTHOR);                                 
                                                                                    
    
float_time float(TASKTIME);                       
    
set_task(float_time"messages"TASKID, .flags "b");
}                                                                                                                      
                                                                                                                              
public 
messages() {                                                                
    switch(
cl_score) {                                
        case 
0..charsmax(message): {                                                 
            
ChatColor(0"%s"message[cl_score]);
                                                                                         
            
cl_score == charsmax(message) ? (cl_score 0): (++ cl_score);
        }
    } 
}

stock ChatColor(const id, const input[], any:...) {
    new 
count 1players[32];                               
    static 
msg[191];
    
    
vformat(msg190input3);
        
    
#if defined COLOR_MESSAGE
        
replace_all(msg,190,"!g""^4");
        
replace_all(msg,190,"!y""^1");
        
replace_all(msg,190,"!t""^3");
    
#endif
    
    
if(id
        
players[0] = id;
        
    else 
        
get_players(playerscount"ch"); 
        
    for (new 
0count++) {
        if (
is_user_connected(players[i])) {
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i]);
            
write_byte(players[i]);
            
write_string(msg);
            
message_end(); 
        }
    }                                                    
}      

Разницы не ощутил, экономия на спичках
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: SET_MESSAGE

Сообщение RockTheStreet » 05 окт 2021, 20:15

Там switch не нужен от слова совсем. Таском отправляешь сообщения, которые циклом берутся из массива.
Ты пытаешься сделать велосипед без руля.
Касательно телепатии: если Вы передаете Ваши проблемы телепатическим путем - ответы будут передаваться тоже телепатически.
Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком.
Аватара пользователя
RockTheStreet
 
Сообщения: 97
Зарегистрирован: 12 авг 2021, 23:13
Забанен
Благодарил (а): 7 раз.
Поблагодарили: 16 раз.
Опыт программирования: Больше трех лет
Языки программирования: JS, PHP

Re: SET_MESSAGE

Сообщение [N][E][M][E][C] » 05 окт 2021, 20:35

А чем клиент принт плох, если не пользуешся цветными сообщениями то client print лучше использоватт

Добавлено спустя 1 минуту:
Я не вижу разницы вообще, у каждого человека разный стиль

Добавлено спустя 27 секунд:
Назови хоть одну причину ,чем через такск это будет лучше

Добавлено спустя 5 минут 46 секунд:
Короче твои коментарии мне не интересны вообще, игнор, никаких путных подсказок

Добавлено спустя 6 минут 39 секунд:
Скинь свой вариант, того что я написал и я тебе докажу обратное, это теперь дело принципа
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

След.

Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2