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

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

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

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

Помогите совместить плагины

, Inside.
Статус пользователя pulse.
сообщение 8.10.2012, 19:26
Сообщение #1
Стаж: 13 лет

Сообщений: 260
Благодарностей: 12
Полезность: < 0

Здравствуйте а можно соединить два плагина а именно
adminonline
Код
#include <amxmodx>

// Registering plug-in
#define PLUGIN "Adminonline"
#define VERSION "1.2"        // [21.05.2007]
#define AUTHOR "Author"

// Constants section. Comment '//' defines to disable feature
#define ANN2HUD        // show hud message when admin connected
#define ANN2CHAT    // show hud message when best player connected (need ps_stats base)
#define PLAYSND        // play sound then admin connected

//================================================================

#if defined ANN2CHAT

#define A_CONNECT "^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!"

enum ChatColor
{
    CHATCOLOR_YELLOW = 1,     // Yellow
    CHATCOLOR_GREEN,     // Green Color
    CHATCOLOR_TEAM_COLOR,     // Red, grey, blue
    CHATCOLOR_GREY,     // grey
    CHATCOLOR_RED,         // Red
    CHATCOLOR_BLUE,     // Blue
}

new g_TeamName[][] =
{
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
}

new g_msgSayText
new g_msgTeamInfo
#endif

#if defined PLAYSND
new sound[] = "vox\administration.wav"
#endif

public client_putinserver(id) {
    new name[32], sflags[32]
    
          get_user_name(id,name,31)
    get_flags(get_user_flags(id),sflags,31)
    
    #if defined ANN2HUD
    new text[128]
    
    format(text,127,"^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
    if (contain(sflags,"l")!=-1)
    {
        set_hudmessage(255, 0, 32, 0.05, 0.60, 1, 5.0, 5.0, 0.3, 0.3, 3)
        show_hudmessage(0,"%s",text)
    }
    else if (contain(sflags,"cde")!=-1)
    {
        set_hudmessage(0, 100, 255, 0.05, 0.60, 1, 5.0, 5.0, 0.7, 0.7, 3)
        show_hudmessage(0,"%s",text)
    }
    #endif

    #if defined ANN2CHAT
    if (contain(sflags,"l")!=-1)
    {
        colorChat(0, CHATCOLOR_RED, A_CONNECT, name)
    }
    else if (contain(sflags,"cde")!=-1)
    {
        colorChat(0, CHATCOLOR_BLUE, A_CONNECT, name)
    }
    #endif
    
    #if defined PLAYSND
    if (contain(sflags,"l")!=-1 || contain(sflags,"cde")!=-1)
    {
        playsound ()
    }
    #endif

    return PLUGIN_CONTINUE
}

#if defined ANN2CHAT
// Тут тупые комментарии.
// И тут тоже, угу...
colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...) {
    new team, index, MSG_Type
    new bool:teamChanged = false
    new message[192]

    switch(color)
    {
    case CHATCOLOR_YELLOW: // Yellow
    {
        message[0] = 0x01;
    }
    case CHATCOLOR_GREEN: // Green
    {
        message[0] = 0x04;
    }
    default: // Grey, Red, Blue
    {
        message[0] = 0x03;
    }
    }

    vformat(message[1], 190, msg, 4);

    if (id == 0)
    {
        index = findAnyPlayer();
        MSG_Type = MSG_ALL;
    }
    else
    {
        index = id;
        MSG_Type = MSG_ONE;
    }
    
    if (index != 0)
    {
        team = get_user_team(index);    
        if (color == CHATCOLOR_RED && team != 1)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[1])
            teamChanged = true
        }
        else if (color == CHATCOLOR_BLUE && team != 2)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[2])
            teamChanged = true
        }
        else if (color == CHATCOLOR_GREY && team != 0)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[0])
            teamChanged = true
        }
        messageSayText(index, MSG_Type, message);
        if (teamChanged)
        {
            messageTeamInfo(index, MSG_Type, g_TeamName[team]);
        }
    }
}

messageSayText(id, type, message[])
{
    message_begin(type, g_msgSayText, _, id)
    write_byte(id)        
    write_string(message)
    message_end()
}

messageTeamInfo(id, type, team[])
{
    message_begin(type, g_msgTeamInfo, _, id)
    write_byte(id)
    write_string(team)
    message_end()
}

findAnyPlayer()
{
    new players[32], inum
    
    get_players(players, inum)
    
    for (new a = 0; a < inum; ++a)
    {
        if(is_user_connected(players[a]))
            return players[a];
    }

    return 0
}
#endif

#if defined PLAYSND
public plugin_precache()  
{
    precache_sound(sound)
    
    return PLUGIN_CONTINUE
}  

playsound()
{
    client_cmd(0 , "stopsound")
    client_cmd(0, "spk ^"%s^"",sound)
}
#endif

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    #if defined ANN2CHAT
    g_msgSayText = get_user_msgid("SayText")
    g_msgTeamInfo = get_user_msgid("TeamInfo")
    #endif
    
    return PLUGIN_CONTINUE
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs18 \n\\ par }
*/


и
viponline
Код
#include <amxmodx>
#include <cstrike>
#include <colorchat>

new const PLUGIN_NAME[] = "Viponline"
new const PLUGIN_AUTHOR[] = "Author"
new const PLUGIN_VERSION[] = "0.1a"

new const VIP_ACCESS = ADMIN_LEVEL_H;

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

public client_putinserver(id)
{
    set_task(0.1, "vip_connected", id);
}

public vip_connected(id)
{
    if( get_user_flags ( id ) & VIP_ACCESS )
    {
        new name[32];
        get_user_name(id, name, 31);
        ColorChat(0, GREEN, "^x03 VIP игрок ^x01[^x03%s^x01]^x03  зашел на сервер!!! ", name);
        client_cmd(0, "stopsound")
        client_cmd(0, "spk Death/administration")
    }
}

public plugin_precache()
{
    precache_sound("Death/administration.wav")
}

Я понятия не имею , и не знаю как это реализовать...
Можно сделать чтобы adminonline срабатывал только у админов с флагом
"d"
d - amx_ban и amx_unban команды

А у випов с флагом
"t"
t - пользовательский уровень H

Я не знаю какие сделать флаги правильно но я знаю что здесь опытные скриптеры, и обязательно мне помогут или подскажут.
Т.е. если я хочу чтобы звук и инфо в чате высвечивалось как viponline то в users.ini я ставлю флаг "t", аналогично и с adminonline..
Сделайте пожалуйста, поставлю + к рейтингу, и если надо заплачу.

Отредактировал: pulse., - 8.10.2012, 19:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   Цитировать сообщение
Статус пользователя miRror
сообщение 8.10.2012, 20:52
Сообщение #2


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Скрытый текст
#include <amxmodx>
#include <cstrike>
#include <colorchat>

new const VIP_ACCESS = ADMIN_LEVEL_H;
new const ADMIN_ACCESS = ADMIN_BAN;

// Registering plug-in
#define PLUGIN "Adminonline"
#define VERSION "1.2"
#define AUTHOR "Author"

enum ChatColor
{
CHATCOLOR_YELLOW = 1, // Yellow
CHATCOLOR_GREEN, // Green Color
CHATCOLOR_TEAM_COLOR, // Red, grey, blue
CHATCOLOR_GREY, // grey
CHATCOLOR_RED, // Red
CHATCOLOR_BLUE, // Blue
}

new g_TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}

new g_msgSayText
new g_msgTeamInfo

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

g_msgSayText = get_user_msgid("SayText")
g_msgTeamInfo = get_user_msgid("TeamInfo")

return PLUGIN_CONTINUE
}

public plugin_precache()
{
precache_sound("Death/administration.wav")
precache_sound("vox\administration.wav" )

return PLUGIN_CONTINUE
}

public client_putinserver(id) {
set_task(0.1, "lol_connected", id);
return PLUGIN_CONTINUE
}

public lol_connected(id)
{
if( get_user_flags ( id ) & ADMIN_ACCESS )
{
new name[32], sflags[32]
get_user_name(id,name,31)
get_flags(get_user_flags(id),sflags,31)

new text[128]

format(text,127,"^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
if (contain(sflags,"l")!=-1)
{
set_hudmessage(255, 0, 32, 0.05, 0.60, 1, 5.0, 5.0, 0.3, 0.3, 3)
show_hudmessage(0,"%s",text)
colorChat(0, CHATCOLOR_RED, "^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
}
else if (contain(sflags,"cde")!=-1)
{
set_hudmessage(0, 100, 255, 0.05, 0.60, 1, 5.0, 5.0, 0.7, 0.7, 3)
show_hudmessage(0,"%s",text)
colorChat(0, CHATCOLOR_BLUE, "^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
client_cmd(0 , "stopsound")
client_cmd(0, "spk vox\administration.wav")
}
}

else if( get_user_flags ( id ) & VIP_ACCESS )
{
new name[32];
get_user_name(id, name, 31);
ColorChat(0, GREEN, "^x03 VIP игрок ^x01[^x03%s^x01]^x03 зашел на сервер!!! ", name);
client_cmd(0, "stopsound")
client_cmd(0, "spk Death/administration")
}
}

colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...) {
new team, index, MSG_Type
new bool:teamChanged = false
new message[192]

switch(color)
{
case CHATCOLOR_YELLOW: // Yellow
{
message[0] = 0x01;
}
case CHATCOLOR_GREEN: // Green
{
message[0] = 0x04;
}
default: // Grey, Red, Blue
{
message[0] = 0x03;
}
}

vformat(message[1], 190, msg, 4);

if (id == 0)
{
index = findAnyPlayer();
MSG_Type = MSG_ALL;
}
else
{
index = id;
MSG_Type = MSG_ONE;
}

if (index != 0)
{
team = get_user_team(index);
if (color == CHATCOLOR_RED && team != 1)
{
messageTeamInfo(index, MSG_Type, g_TeamName[1])
teamChanged = true
}
else if (color == CHATCOLOR_BLUE && team != 2)
{
messageTeamInfo(index, MSG_Type, g_TeamName[2])
teamChanged = true
}
else if (color == CHATCOLOR_GREY && team != 0)
{
messageTeamInfo(index, MSG_Type, g_TeamName[0])
teamChanged = true
}
messageSayText(index, MSG_Type, message);
if (teamChanged)
{
messageTeamInfo(index, MSG_Type, g_TeamName[team]);
}
}
}

messageSayText(id, type, message[])
{
message_begin(type, g_msgSayText, _, id)
write_byte(id)
write_string(message)
message_end()
}

messageTeamInfo(id, type, team[])
{
message_begin(type, g_msgTeamInfo, _, id)
write_byte(id)
write_string(team)
message_end()
}

findAnyPlayer()
{
new players[32], inum

get_players(players, inum)

for (new a = 0; a < inum; ++a)
{
if(is_user_connected(players[a]))
return players[a];
}

return 0
}


Так не так фиг знает. Спать уже охото )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя pulse.
сообщение 8.10.2012, 21:23
Сообщение #3
Стаж: 13 лет

Сообщений: 260
Благодарностей: 12
Полезность: < 0

Я вас люблю!!! blush.gif give_rose.gif
спасибо!!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя pulse.
сообщение 9.10.2012, 9:04
Сообщение #4
Стаж: 13 лет

Сообщений: 260
Благодарностей: 12
Полезность: < 0

Вот так будет правильнее :)
Скрытый текст
#include <amxmodx>
#include <cstrike>
#include <colorchat>

new const VIP_ACCESS = ADMIN_LEVEL_H;
new const ADMIN_ACCESS = ADMIN_BAN;

// Registering plug-in
#define PLUGIN "Adminonline-Viponline"
#define VERSION "1.2"
#define AUTHOR "Kolhoz"

enum ChatColor
{
CHATCOLOR_YELLOW = 1, // Yellow
CHATCOLOR_GREEN, // Green Color
CHATCOLOR_TEAM_COLOR, // Red, grey, blue
CHATCOLOR_GREY, // grey
CHATCOLOR_RED, // Red
CHATCOLOR_BLUE, // Blue
}

new g_TeamName[][] =
{
"",
"TERRORIST",
"CT",
"SPECTATOR"
}

new g_msgSayText
new g_msgTeamInfo

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

g_msgSayText = get_user_msgid("SayText")
g_msgTeamInfo = get_user_msgid("TeamInfo")

return PLUGIN_CONTINUE
}

public plugin_precache()
{
precache_sound("Death/administration.wav")
precache_sound("Death/administration.wav" )

return PLUGIN_CONTINUE
}

public client_putinserver(id) {
set_task(0.1, "lol_connected", id);
return PLUGIN_CONTINUE
}

public lol_connected(id)
{
if( get_user_flags ( id ) & ADMIN_ACCESS )
{
new name[32], sflags[32]
get_user_name(id,name,31)
get_flags(get_user_flags(id),sflags,31)

new text[128]

format(text,127,"^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
if (contain(sflags,"l")!=-1)
{
set_hudmessage(255, 0, 32, 0.05, 0.60, 1, 5.0, 5.0, 0.3, 0.3, 3)
show_hudmessage(0,"%s",text)
colorChat(0, CHATCOLOR_RED, "^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
}
else if (contain(sflags,"cde")!=-1)
{
set_hudmessage(0, 100, 255, 0.05, 0.60, 1, 5.0, 5.0, 0.7, 0.7, 3)
show_hudmessage(0,"%s",text)
colorChat(0, CHATCOLOR_BLUE, "^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
client_cmd(0 , "stopsound")
client_cmd(0, "spk Death/administration.wav")
}
}

else if( get_user_flags ( id ) & VIP_ACCESS )
{
new name[32];
get_user_name(id, name, 31);
ColorChat(0, GREEN, "^x03 VIP игрок ^x01[^x03%s^x01]^x03 зашел на сервер!!! ", name);
client_cmd(0, "stopsound")
client_cmd(0, "spk Death/administration")
}
}

colorChat(id, ChatColor:color, const msg[], {Float,Sql,Result,_}:...) {
new team, index, MSG_Type
new bool:teamChanged = false
new message[192]

switch(color)
{
case CHATCOLOR_YELLOW: // Yellow
{
message[0] = 0x01;
}
case CHATCOLOR_GREEN: // Green
{
message[0] = 0x04;
}
default: // Grey, Red, Blue
{
message[0] = 0x03;
}
}

vformat(message[1], 190, msg, 4);

if (id == 0)
{
index = findAnyPlayer();
MSG_Type = MSG_ALL;
}
else
{
index = id;
MSG_Type = MSG_ONE;
}

if (index != 0)
{
team = get_user_team(index);
if (color == CHATCOLOR_RED && team != 1)
{
messageTeamInfo(index, MSG_Type, g_TeamName[1])
teamChanged = true
}
else if (color == CHATCOLOR_BLUE && team != 2)
{
messageTeamInfo(index, MSG_Type, g_TeamName[2])
teamChanged = true
}
else if (color == CHATCOLOR_GREY && team != 0)
{
messageTeamInfo(index, MSG_Type, g_TeamName[0])
teamChanged = true
}
messageSayText(index, MSG_Type, message);
if (teamChanged)
{
messageTeamInfo(index, MSG_Type, g_TeamName[team]);
}
}
}

messageSayText(id, type, message[])
{
message_begin(type, g_msgSayText, _, id)
write_byte(id)
write_string(message)
message_end()
}

messageTeamInfo(id, type, team[])
{
message_begin(type, g_msgTeamInfo, _, id)
write_byte(id)
write_string(team)
message_end()
}

findAnyPlayer()
{
new players[32], inum

get_players(players, inum)

for (new a = 0; a < inum; ++a)
{
if(is_user_connected(players[a]))
return players[a];
}

return 0
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 9.10.2012, 9:19
Сообщение #5
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

miRror, pulse, это позорище.
Несколько раз получаем get_user_flags да ещё и сравниваем флаги как строки.

Отредактировал: Safety1st, - 9.10.2012, 9:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя miRror
сообщение 9.10.2012, 9:26
Сообщение #6


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Я могу и еще упростить, просто не знаю что именно ему нужно.



Дома буду доделаю, если первее меня никто не окажется.

Отредактировал: miRror, - 9.10.2012, 9:28
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Safety1st
сообщение 9.10.2012, 9:36
Сообщение #7
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Цитата(miRror @ 9.10.2012, 11:26) *
Я могу и еще упростить

Дело не в упростить, а 'оптимизировать код' (только 1 вызов native) + изучить основы, как определяется наличие того или иного флага.
Код
new iFlags = get_user_flags(id)
if ( iFlags & ADMIN_ACCESS )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя miRror
сообщение 9.10.2012, 9:45
Сообщение #8


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Я знаю это, знаю как оптимизировать, просто времени вчера времени доделать не хватило.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя miRror
сообщение 9.10.2012, 13:32
Сообщение #9


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Скрытый текст
#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new const VIP_ACCESS = ADMIN_LEVEL_H;
new const ADMIN_ACCESS = ADMIN_BAN;

#define PLUGIN "Adminonline"
#define VERSION "1.2"
#define AUTHOR "Author"

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

return PLUGIN_CONTINUE
}

public plugin_precache()
{
precache_sound("Death/administration.wav")
return PLUGIN_CONTINUE
}

public client_putinserver(id) {
set_task(0.1, "lol_connected", id);
return PLUGIN_CONTINUE
}

public lol_connected(id)
{
new name[32]
get_user_name(id,name,31)

if( get_user_flags ( id ) & ADMIN_ACCESS )
{
set_hudmessage(0, 100, 255, 0.05, 0.60, 1, 5.0, 5.0, 0.7, 0.7, 3)
show_hudmessage(0,"Админ [%s] зашел на сервер!",name)
ColorChat(0, BLUE, "^x03 Админ ^x01[^x03%s^x01] ^x03 зашел на сервер!", name)
}

else if( get_user_flags ( id ) & VIP_ACCESS )
{
ColorChat(0, GREEN, "^x03 VIP игрок ^x01[^x03%s^x01]^x03 зашел на сервер!!! ", name);
}

if (is_user_admin(id))
{
client_cmd(0, "stopsound")
client_cmd(0, "spk Death/administration")
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя pulse.
сообщение 9.10.2012, 14:09
Сообщение #10
Стаж: 13 лет

Сообщений: 260
Благодарностей: 12
Полезность: < 0

miRror,
Благодарен вам, все работает на УРА! boast.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 10.10.2012, 2:01
Сообщение #11
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Снова 3 запроса одного и того же через native. Ну, как хотите)
Главное - 'клиент' доволен :D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 10.10.2012, 10:08
Сообщение #12


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(Safety1st @ 10.10.2012, 3:01) *
Снова 3 запроса одного и того же через native. Ну, как хотите)
Главное - 'клиент' доволен :D

Уменьшение нагрузки на 0.000003 млс.? Вау, круто.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Safety1st
сообщение 11.10.2012, 0:06
Сообщение #13
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Всё начинается с малого. Здесь - да, это несущественно.
Не думаю, что человек будет выполнять оптимизацию кода в большом плагине, если не оптимизирует простые вещи в малом :D

Цитата(Rejiser @ 10.10.2012, 12:08) *
Уменьшение нагрузки на 0.000003 млс.? Вау, круто.

Секунд, не милисекунд. Ошиблись на 3 порядка :D

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