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

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

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

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

124 страниц V  « 64 65 66 ... 122 123 »

Advanced Experience System

, Система опыта и рангов.
Статус пользователя Bloo
сообщение 5.2.2015, 13:06
Сообщение #1281


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

r1nk0, скинь весь конфиг, я что то не помню как там настройки идут, там вроде комменты были.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 5.2.2015, 13:10
Сообщение #1282


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

Цитата(Bloo @ 5.2.2015, 14:06) *
r1nk0, скинь весь конфиг, я что то не помню как там настройки идут, там вроде комменты были.


Проблема в том что как указано в примере,что если задать префиксу вес больше чем у остальных он будет выводится первым, и если задать пропуск префиксов то они как бы работают только в своей группе,то есть по флагу это одна группа,по dproto другая,и их вес не влияет друг на друга почему то) как то так
Скрытый текст
Код:
; Prefix Manager by serfreeman1337 | http://gf.hldm.org/
; Файл конфигурации версии 0.1
;
; структура:
; "<тип префикса>" "<параметры для префикса>" "<режим форматирования>" "<текст префикса>" "<вес префикса>" "<пропуск префиксов>" "<учитывать или нет префикс для квара>" "<группа префиксов>"
;
; доступные варианты префиксов (может варьироваться в зависимости от компиляции):
; all - префикс для всех
; access - префикс по флагам, в параметрах нужно указать флаги
; steamid - префикс для steamid, в параметрах указывается steamid
; top - префикс для топ игроков, в параметрах указывается позиция топа
; в тексте префикса можно указать #rank# для вывода позиции игрока в префикс
; dproto - префикс по клиенту игрока, в параметрах указывается значение dproto
; aes - вания из плагина Advanced Experience System
; в тексте нужно указать #rank# для вывода звания
;
; режим форматирования
; prefix - просто добавление префикса в начало сообщения
; format - режим полного форматирования сообщения
; %s1 - имя игрока
; %s2 - его сообщение
; #prefix# - префиксы
; #team# - тег команды, если есть
; #dead# - тег убитого
; текст префикса
; сюда пишется текст самого префикса, а также отсюда задаются параметры форматирования сообщений
; возможно использования цветовых кодов:
; ^1 - обычный
; ^3 - цвет команды
; ^4 - зеленый
; вес префикса
; определяет очередь вывода префиксов
;
; пропуск префиксов
; через запятую прописываются номера префиксов по их порядку в этом файле, которые не будут выведены вместе с этим префиксом
; допустим, у нас есть 3 перфикса, которые могут вывестись одновременно и вы хотите чтобы какой-то из них не выводился
; пример, на флаг d у нас префикс "[АДМИН]"; на флаг s префикс "[АДМИН ДЕВУШКА]"; на флаг t префикс "[VIP]":
; "access" "d" "prefix" "[АДМИН]" "10"
; "access" "s" "prefix" "[АДМИН ДЕВУШКА]" "10"
; "access" "t" "prefix" "[VIP]" "5"
;
; у игрока есть флаги dst и нужно вывести только префикс "[АДМИН ДЕВУШКА]"
; для это нужно задать более высокий вес этому префиксу, т.к. свойства префиксов приминяются последовательно
; и записать в наш 6ой параметр номера этих префиксов:
; "access" "s" "prefix" "[АДМИН ДЕВУШКА]" "15" "1,3"
; таким образом выведится только префикс "[АДМИН ДЕВУШКА]"
;
; неучет префикса для pm_max_count
; укажите 1 если вы не хотите учитывать этот префикс для общего кол-ва префиксов
; полезно для вывода приставки звания AES или STEAM префикса
;
; группа префикса
; указывается группа для этого префикса, стандартная группа - 1
; с помощью групп можно вывести несколько префиксов в разных местах сообщения
; префиксы из группы можно вывести только в режиме format, выводится они через указание #prefix<номер группы>#
; для префиксов группы не идет учет общего кол-ва префиксов
; ЭКСПЕРЕМЕНТАЛЬНАЯ ФУНКЦИЯ.
;

; приставка с отображение ранга у топ 10 игроков
;"top" "10" "prefix" "^1[^3TOP-^4#rank#^1]" "1000"

;"aes" "" "prefix" "^1[^3#rank#^1]" "10" "" ""

; приставка [ДНО] для настоящего дна, которое не знает что есть нормальная сборка
;"dproto" "1" "prefix" "^1[^4ДНО^1]" "500"

; приставка [1337] для игрока со SteamID STEAM_0:1:25876755
;"steamid" "STEAM_0:1:25876755" "prefix" "^4[1337]^1" "200"

;"steamid" "STEAM_0:0:47256284" "prefix" "^3[^4Главный Админ^3]^1" "200"

; приставка [ADMIN] для игрока с флагом a
;"access" "a" "prefix" "^3[^4ADMIN^3]^1" "150" "6"

; приставка [Админ Девушка] для игрока с флагом s
;"access" "s" "prefix" "^3[^4Админ Девушка^3]^1" "151" "4,6"

; приставка [Девушка] для игрока с флагом d
;"access" "t" "prefix" "^3[^4Девушка^3]^1" "20" "7"

; приставка [VIP] для игрока с флагом t
;"access" "t" "prefix" "^3[^4VIP^3]^1" "15"

; приставка [STEAM] для Steam игрока
;"dproto" "2" "prefix" "^1[^4STEAM^1]" "5"

; сделаем зеленый цвет cообщения от Steam игрока
;"access" "a" "format" "#prefix2##prefix4##prefix1# ^3%s1^1 : ^4%s2^1 " "10"

; сделаем зеленый цвет cообщения от Steam игрока
;"dproto" "2" "format" "#prefix##dead##team# ^3%s1^1 : ^4%s2^1" "10"

; приставка [Главный Админ] для игрока со SteamID STEAM_0:1:25876755

; приставка [Девушка] для игрока с флагом d

;"aes" "" "prefix" "^1[^4#rank#^1]" "20" "" "1"
"access" "d" "prefix" "^1[^4Админ^1]" "45" "1""
"access" "t" "prefix" "^1[^4Вип^1]" "40"
;"dproto" "2" "prefix" "^1[^4STEAM^1]" "10"



Отредактировал: r1nk0, - 5.2.2015, 13:12


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 5.2.2015, 13:30
Сообщение #1283


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

r1nk0, тогда так
Код
"access" "d" "prefix" "^1[^4Админ^1]" "45" "3""
"access" "t" "prefix" "^1[^4Вип^1]" "40"
"dproto" "2" "prefix" "^1[^4STEAM^1]" "10"

По идеи, [STEAM] будет выводить всегда, кроме случаешь если выводится [Админ]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 5.2.2015, 13:34
Сообщение #1284


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

Цитата(Bloo @ 5.2.2015, 14:30) *
r1nk0, тогда так
Код
"access" "d" "prefix" "^1[^4Админ^1]" "45" "3""
"access" "t" "prefix" "^1[^4Вип^1]" "40"
"dproto" "2" "prefix" "^1[^4STEAM^1]" "10"

По идеи, [STEAM] будет выводить всегда, кроме случаешь если выводится [Админ]


ну в таком случае выводится [Админ][Вип] Player
А надо что если ты Админ невыводилось Вип и стим и у Випов невыводилось ВипСтим


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 5.2.2015, 13:43
Сообщение #1285


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

r1nk0, ну по аналогии можно же сделать)
Код
"access" "d" "prefix" "^1[^4Админ^1]" "45" "2,3"
"access" "t" "prefix" "^1[^4Вип^1]" "40"
"dproto" "2" "prefix" "^1[^4STEAM^1]" "10"

Последний аргумент у приставки [Админ], это префиксы которые не должны выводится с ним, номер префикса это его порядковая строка в файле, естественно не считая закомментированные строки и пустые.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 5.2.2015, 13:58
Сообщение #1286


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

Методом тыка короче разобрался окончательно

"access" "d" "prefix" "^1[^4Админ^1]" "45" "1,2,3"
"access" "t" "prefix" "^1[^4Вип^1]" "40" "1,2"
"dproto" "2" "prefix" "^1[^4STEAM^1]" "10"

вот так будет выводить префикс для всех один.

логики не особо понял :D но работает


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 5.2.2015, 14:00
Сообщение #1287


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

r1nk0, зачем самих себя исключать? =) Вот так должно тоже работать:
Код
"access" "d" "prefix" "^1[^4Админ^1]" "45" "2,3"
"access" "t" "prefix" "^1[^4Вип^1]" "40" "1"
"dproto" "2" "prefix" "^1[^4STEAM^1]" "10"

Логика последнего аргумента:
Цитата
1 префикс: "access" "d" "prefix" "^1[^4Админ^1]" "45" "2,3" - исключить показ с этим префиксом, префиксы 2 и 3
2 префикс: "access" "t" "prefix" "^1[^4Вип^1]" "40" "1" - исключить показ с этим префиксом, префикс 1
3 префикс: "dproto" "2" "prefix" "^1[^4STEAM^1]" "10"

Скинь сам плагин, оформлю отдельной темой.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 5.2.2015, 14:05
Сообщение #1288


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

я и говорю что это по логике должно быть так,но я не понял почему но при

"access" "d" "prefix" "^1[^4Админ^1]" "45" "2,3"

выводится Админ Вип,а при

"access" "d" "prefix" "^1[^4Админ^1]" "45" "1,2,3"
"access" "t" "prefix" "^1[^4Вип^1]" "40" "1,2"
"dproto" "2" "prefix" "^1[^4STEAM^1]" "10"

У админа если он и вип и стим - только [Админ]
У випа если он стим - только [Вип]
У стима - только [STEAM]


Код плагина
Код:
/*
* Prefix Manager v. 0.1
* by serfreeman1337 <a href="https://c-s.net.ua/url?u=http%3A%2F%2Fgf.hldm.org%2F" target="_blank">http://gf.hldm.org/</a>
*/
#include <amxmodx>
#include <amxmisc>

#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif

#define PLUGIN "Prefix Manger"
#define VERSION "0.1"
#define AUTHOR "serfreeman1337"

// префикс по флагам
#define USE_PREFIX_ACCESS

// префикс для топ игроков
#define USE_PREFIX_TOP // cstrike only

// префикс по steamid
#define USE_PREFIX_STEAMID

// префикс по клиенту
#define USE_PREFIX_DPROTO // no steam only

// префикс звания из AES
#define USE_PREFIX_AES

#if defined USE_PREFIX_TOP
#include <csstats>
#endif

#if defined USE_PREFIX_AES
#include <aes_main>
#endif

enum _:cvars {
CVAR_MAX_PREFIXES
}

new cvar[cvars]

enum _:prfx {
PREFIX_ALL,

#if defined USE_PREFIX_ACCESS
PREFIX_ACCESS,
#endif

#if defined USE_PREFIX_TOP
PREFIX_TOP,
#endif

#if defined USE_PREFIX_STEAMID
PREFIX_STEAMID,
#endif

#if defined USE_PREFIX_DPROTO
PREFIX_DPROTO,
#endif

#if defined USE_PREFIX_AES
PREFIX_AES,
#endif

PREFIX_END
}

new prefixWayId[prfx][] = {
"all",

#if defined USE_PREFIX_ACCESS
"access",
#endif

#if defined USE_PREFIX_TOP
"top",
#endif

#if defined USE_PREFIX_STEAMID
"steamid",
#endif

#if defined USE_PREFIX_DPROTO
"dproto",
#endif

#if defined USE_PREFIX_AES
"aes",
#endif

""
}

enum _:prefixDataStruct {
PREFIX_ID,
PREFIX_POS,
PREFIX_DATA[128],
bool:PREFIX_FORMAT,
PREFIX_NAME[128],
PREFIX_WEIGHT,
PREFIX_GROUP,
Array:PREFIX_SKIP,
bool:PREFIX_UNCOUNT
}

new Array:prefixes
new prefixCount

new g_maxplayers

new teamMsgString[][] = {
"#Cstrike_Chat_CT",
"#Cstrike_Chat_T",
"#Cstrike_Chat_CT_Dead",
"#Cstrike_Chat_T_Dead",
"#Cstrike_Chat_Spec"
}

new Trie:teamMsgPointers

#if defined USE_PREFIX_STEAMID
new steamIdPrefix[33]

new Trie:prefixForId
#endif

#if defined USE_PREFIX_DPROTO
new pDprotoProvider

new playerClient[33]
#endif

new prefixMax

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

// Максимальное кол-во префиксов
cvar[CVAR_MAX_PREFIXES] = register_cvar("pm_max_count","1")
}

/*
* загрузка конфигурации
*/
public plugin_cfg(){
new configFile[256]
get_configsdir(configFile,255)
add(configFile,255,"/prefixManager.ini")

new f = fopen(configFile,"rt")

if(!f){ // не удалось открыть конфиг-файл
log_amx("config file not found")

return PLUGIN_CONTINUE
}

prefixes = ArrayCreate(prefixDataStruct,1)

new buf[512]

new tmpWay[20],tmpData[128],tmpFormat[10],tmpName[128],tmpWeight[10],tmpSkip[20],tmp
Uncount[2],tmpGroup[10],datPrefixId
new prefixInfo[prefixDataStruct],bool:isTeamFormat,prefixNum

// читаем содержимое файла
while(!feof(f)){
fgets(f,buf,511)
trim(buf)

// пропускаем пустые строки и комментарии
if(!buf[0] || buf[0] == ';')
continue

// очищаем предыдущий результат
tmpWay[0] = 0 // указатель префикса
tmpData[0] = 0 // доп. информация для префикса
tmpFormat[0] = 0 // тип модифакции сообщений префиксом
tmpName[0] = 0 // название этого префикса
tmpSkip[0] = 0 // пропуск префиксов
tmpUncount[0] = 0 // не считать данный префикс
tmpGroup[0] = 0 // группа префикса
datPrefixId = -1 // ID префикса

parse(buf,tmpWay,19,tmpData,127,tmpFormat,9,tmpName,127,tmpWeight,9,tmpSkip,19,t
mpUncount,1,tmpGroup,9)

// проверяем наличие признака префикса
for(new i ; i < prfx - 1 ; ++i){
if(strcmp(tmpWay,prefixWayId[i]) != 0)
continue

datPrefixId = i // нашли ID префикса
}

// префикс не найден, пероходим к следующей строке
if(datPrefixId == -1)
continue

arrayset(prefixInfo,0,prefixDataStruct)

// задаем параметры префикса
prefixInfo[PREFIX_ID] = datPrefixId // ID префикса
prefixInfo[PREFIX_POS] = prefixNum++
prefixInfo[PREFIX_FORMAT] = strcmp(tmpFormat,"prefix") == 0 ? false : true // форматирование чата или просто добавление префикса
prefixInfo[PREFIX_WEIGHT] = str_to_num(tmpWeight) // вес
prefixInfo[PREFIX_GROUP] = tmpGroup[0] ? str_to_num(tmpGroup) : 1
prefixInfo[PREFIX_UNCOUNT] = str_to_num(tmpUncount)

// строим массив с префиксами для пропуска
if(tmpSkip[0]){
new stPos,ePos,rawPoint[20]

prefixInfo[PREFIX_SKIP] = _:ArrayCreate(1,1)

do {
ePos = strfind(tmpSkip[stPos],",")

formatex(rawPoint,ePos,tmpSkip[stPos])
ArrayPushCell(prefixInfo[PREFIX_SKIP] ,str_to_num(rawPoint))

stPos += ePos + 1
} while (ePos != -1)
}

replace_all2(tmpName,127,"^^1","^1")
replace_all2(tmpName,127,"^^2","^2")
replace_all2(tmpName,127,"^^3","^3")
replace_all2(tmpName,127,"^^4","^4")
replace_all2(tmpName,127,"%","%%")

// доп. обработка согласно префиксам
switch(datPrefixId){
case PREFIX_ALL: {
}

#if defined USE_PREFIX_ACCESS
case PREFIX_ACCESS:
prefixInfo[PREFIX_DATA][0] = read_flags(tmpData) // считаем бит сумму флагов
#endif

#if defined USE_PREFIX_TOP
case PREFIX_TOP:
prefixInfo[PREFIX_DATA][0] = str_to_num(tmpData)
#endif

#if defined USE_PREFIX_STEAMID
case PREFIX_STEAMID:{
if(prefixForId == Invalid_Trie)
prefixForId = TrieCreate()

prefixInfo[PREFIX_DATA][0] = prefixCount
TrieSetCell(prefixForId,tmpData,prefixCount)
}
#endif

#if defined USE_PREFIX_DPROTO
case PREFIX_DPROTO:
prefixInfo[PREFIX_DATA][0] = str_to_num(tmpData)
#endif

#if defined USE_PREFIX_AES
case PREFIX_AES:{}
#endif

default: continue
}

if(prefixInfo[PREFIX_FORMAT] && contain(tmpName,"#team#") != -1)
isTeamFormat = true

copy(prefixInfo[PREFIX_NAME],127,tmpName)
ArrayPushArray(prefixes,prefixInfo)

prefixCount ++
}

fclose(f)

if(!prefixCount)
return PLUGIN_CONTINUE

// сортировка префиксов по весу

#if AMXX_VERSION_NUM < 183
ArraySort(prefixes,"SortPrefixesByWeight")
#else
ArraySortEx(prefixes,"SortPrefixesByWeight")
#endif

if(isTeamFormat){
teamMsgPointers = TrieCreate()

for(new i ; i < sizeof teamMsgString ; ++i)
TrieSetCell(teamMsgPointers,teamMsgString[i],1)
}

#if defined USE_PREFIX_DPROTO
pDprotoProvider = get_cvar_pointer( "dp_r_id_provider" ) // dproto interface
#endif

g_maxplayers = get_maxplayers()
prefixMax = get_pcvar_num(cvar[CVAR_MAX_PREFIXES])

register_message(get_user_msgid("SayText"),"MsgHook_SayText")
register_dictionary("<span class="searchlite">prefixManager</span>.txt")

return PLUGIN_CONTINUE
}

public client_putinserver(id){
#if defined USE_PREFIX_STEAMID
new authId[36]
get_user_authid(id,authId,35)

if(prefixForId == Invalid_Trie || !TrieGetCell(prefixForId,authId,steamIdPrefix[id]))
steamIdPrefix[id] = -1
#endif

#if defined USE_PREFIX_DPROTO
if(!pDprotoProvider){
playerClient[id] = 0
}else if( is_user_bot(id) || is_user_hltv(id) )
playerClient[id] = 0
else {
server_cmd( "dp_clientinfo %d", id )
server_exec()

playerClient[id] = get_pcvar_num(pDprotoProvider)
}
#endif
}

#if AMXX_VERSION_NUM >= 183
public SortPrefixesByWeight(Array:array, prefix1[], prefix2[]){
if(prefix1[PREFIX_WEIGHT] > prefix2[PREFIX_WEIGHT])
return -1
else if (prefix1[PREFIX_WEIGHT] < prefix2[PREFIX_WEIGHT])
return 1

return 0
}
#else
public SortPrefixesByWeight(Array:array, item1, item2){
new prefix1[prefixDataStruct],prefix2[prefixDataStruct]

ArrayGetArray(array,item1,prefix1)
ArrayGetArray(array,item2,prefix2)

if(prefix1[PREFIX_WEIGHT] > prefix2[PREFIX_WEIGHT])
return -1
else if (prefix1[PREFIX_WEIGHT] < prefix2[PREFIX_WEIGHT])
return 1

return 0
}
#endif

public MsgHook_SayText(msgId,msgDest,reciever){
if(msgDest != MSG_ONE)
return PLUGIN_CONTINUE

new id = get_msg_arg_int(1)

if( !(0 < id <= g_maxplayers) )
return PLUGIN_CONTINUE

static formatedMsg[191],chatHead[191],contentMsg[191]
static msgLastId,Float:msgLastTime

if(msgLastId == id && msgLastTime == get_gametime()){
set_msg_arg_string(2,formatedMsg)
set_msg_arg_string(4,contentMsg)

return PLUGIN_CONTINUE
}

new len,bool:isTeamMsg
get_msg_arg_string(2,chatHead,190) // указатель
get_msg_arg_string(4,contentMsg,190) // сообщение

if(teamMsgPointers)
isTeamMsg = TrieGetCell(teamMsgPointers,chatHead,isTeamMsg)

if(!FormatPrefixes(id,formatedMsg,190,len,isTeamMsg)){
if(!strcmp(chatHead,"#Cstrike_Chat_All"))
len += formatex(formatedMsg[len],190-len,"^3%%s1^1 : %%s2")
else
len += formatex(formatedMsg[len],190-len,"%s",chatHead)
}

// не допускаем перехода лимита в 190 символов
if(strlen(formatedMsg) + strlen(contentMsg) >= 190){
new contentLen = 190 - strlen(chatHead) - strlen(contentMsg)

if(((contentMsg[contentLen - 1] & 0xFF) >= 0xC2) && ((contentMsg[contentLen - 1] & 0xFF) <= 0xEF)) // Don't truncate a double-byte character
contentLen--

contentMsg[contentLen] = 0

set_msg_arg_string(4,contentMsg)
}

set_msg_arg_string(2,formatedMsg)

msgLastId = id
msgLastTime = get_gametime()

return PLUGIN_CONTINUE
}

/*
* функция форматирования сообщения с префиксом
*/
public FormatPrefixes(id,fmt[],maxlen,&len,bool:isTeam){
new prefixInfo[prefixDataStruct]
new fmtPrefixes,msgFormer[128]
new Array:skipArray

len += formatex(fmt[len],maxlen-len,"^1")

new startLen = len // запоминаем для режима форматирования всего сообщения

static Trie:prefixByGroup,bool:prefixGroup

prefixGroup = false

for(new i ; i < prefixCount ; i++){
ArrayGetArray(prefixes,i,prefixInfo)

if(!prefixInfo[PREFIX_FORMAT] && fmtPrefixes >= prefixMax)
continue

if(skipArray && check_prefix_for_skip(skipArray,prefixInfo[PREFIX_POS]))
continue

switch(prefixInfo[PREFIX_ID]){
#if defined USE_PREFIX_ACCESS
case PREFIX_ACCESS:
if(!(get_user_flags(id) & prefixInfo[PREFIX_DATA][0]))
continue
#endif

#if defined USE_PREFIX_TOP
case PREFIX_TOP:{
new st[8],rank = get_user_stats(id,st,st)

if(rank > prefixInfo[PREFIX_DATA][0])
continue

new rankStr[10]
num_to_str(rank,rankStr,9)

replace_all2(prefixInfo[PREFIX_NAME],127,"#rank#",rankStr)
}
#endif

#if defined USE_PREFIX_STEAMID
case PREFIX_STEAMID:{
if(steamIdPrefix[id] == -1)
continue
else if(steamIdPrefix[id] != prefixInfo[PREFIX_DATA][0])
continue
}
#endif

#if defined USE_PREFIX_DPROTO
case PREFIX_DPROTO:
if(playerClient[id] != prefixInfo[PREFIX_DATA][0])
continue
#endif

#if defined USE_PREFIX_AES
case PREFIX_AES:{
new aStats[AES_ST_END],levelName[64]
aes_get_player_stats(id,aStats)
aes_get_level_name(aStats[AES_ST_LEVEL],levelName,63,LANG_SERVER)

replace_all2(prefixInfo[PREFIX_NAME],127,"#rank#",levelName)
}
#endif
}

if(prefixInfo[PREFIX_SKIP] != Invalid_Array)
skipArray = prefixInfo[PREFIX_SKIP]

// это простой префикс
if(!prefixInfo[PREFIX_FORMAT]){
if(prefixInfo[PREFIX_GROUP] == 1){
len += formatex(fmt[len],maxlen - len,"%s%s",fmtPrefixes ? " " : "",prefixInfo[PREFIX_NAME])

if(!prefixInfo[PREFIX_UNCOUNT])
fmtPrefixes ++
else if(!fmtPrefixes)
len += formatex(fmt[len],maxlen - len," ")
}else{
if(prefixByGroup == Invalid_Trie)
prefixByGroup = TrieCreate()

new groupKey[14],groupText[191],groupLen
formatex(groupKey,13,"#prefix%d#",prefixInfo[PREFIX_GROUP])

TrieGetString(prefixByGroup,groupKey,groupText,190)
groupLen = strlen(groupText)

formatex(groupText[groupLen],190 - groupLen,"%s%s",groupLen ? " " : "",prefixInfo[PREFIX_NAME])

TrieSetString(prefixByGroup,groupKey,groupText)

prefixGroup = true
}
}else if(!msgFormer[0]) // это режим форматирования вида сообщения
copy(msgFormer,127,prefixInfo[PREFIX_NAME])

arrayset(prefixInfo,0,prefixDataStruct)
}

if(fmtPrefixes)
len += formatex(fmt[len],maxlen - len," ")

// форматирование сообщения
if(msgFormer[0]){
replace_all2(msgFormer,127,"#prefix#",fmt) // заменяем на префиксы

if(prefixGroup){ // груповой префикс
new w,l,r = 0
new raw[14],groupText[191]
new fmted

do {
w = contain(msgFormer[l],"#prefix")

if(w == -1)
break

l += w + 7
r = contain(msgFormer[l],"#") + l

if(r - l <= 0)
continue

formatex(raw,r - l,msgFormer[l])
formatex(raw,13,"#prefix%d#",str_to_num(raw))

if(!TrieGetString(prefixByGroup,raw,groupText,190)){
replace(msgFormer,127,raw,"")

l -= strlen(raw) - 2
}else{
formatex(groupText,190,"%s%s",fmted ? " " : "",groupText)
replace_all2(msgFormer,127,raw,groupText)

l += strlen(groupText) - strlen(raw)

fmted ++
}
} while(l != -1)

TrieClear(prefixByGroup)
}

// тег команды для чата
if(contain(msgFormer,"#team#") != -1){
if(isTeam){
new lngKey[11],teamTag[30]
formatex(lngKey,10,"CHAT_TEAM%d",get_user_team(id))
formatex(teamTag,29,"%L",LANG_SERVER,lngKey)

replace_all2(msgFormer,127,"#team#",teamTag)
}else
replace_all2(msgFormer,127,"#team#","")
}

// тег убитого
if(contain(msgFormer,"#dead#") != -1){
if(!is_user_alive(id)){
new deadTag[30]
formatex(deadTag,29,"%L",LANG_SERVER,get_user_team(id) != 0 ? "CHAT_DEAD" : "CHAT_DEAD0")

replace_all2(msgFormer,127,"#dead#",deadTag)
}else
replace_all2(msgFormer,127,"#dead#","")
}

len = formatex(fmt[startLen],maxlen - startLen,msgFormer)
}

return msgFormer[0] ? true : false
}

check_prefix_for_skip(Array:which,prefixNum){
for(new i ; i < ArraySize(which) ; ++i)
if(ArrayGetCell(which,i) == prefixNum)
return true

return false
}

/* Replaces a contained string iteratively.
* This ensures that no infinite replacements will take place by
* intelligently moving to the next string position each iteration.
*/

/*
* небольшой фикс от serfreeman1337
* прекращаем заменять если не хвататет места
* чтобы избежать проблем с replace() buffer not big enough
*/
stock replace_all2(string[], len, const what[], const with[])
{
new pos = 0;

if ((pos = contain(string, what)) == -1)
{
return 0;
}

new total = 0;
new with_len = strlen(with);
new diff = strlen(what) - with_len;
new total_len = strlen(string);
new temp_pos = 0;

while (total_len + with_len < len && replace(string[pos], len - pos, what, with) != 0)
{
total++;

/* jump to position after replacement */
pos += with_len;

/* update cached length of string */
total_len -= diff;

/* will the next call be operating on the last character? */
if (pos >= total_len)
{
break;
}

/* find the next position from our offset */
temp_pos = contain(string[pos], what);

/* if it's invalid, we're done */
if (temp_pos == -1)
{
break;
}

/* otherwise, reposition and update counters */
pos += temp_pos;
}

return total;
}


Отредактировал: r1nk0, - 5.2.2015, 14:10


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STOMPER
сообщение 7.2.2015, 9:27
Сообщение #1289


Стаж: 11 лет

Сообщений: 81
Благодарностей: 1
Полезность: 14

Как скомпилировать плагин ? не получается
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
VBOY
сообщение 7.2.2015, 10:49
Сообщение #1290
Стаж: 16 лет

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

Не сочтите за рекламу, сделайте плз аткую же штуку на этот систему званий https://shop.fungun.net/?p=show&id=89 )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r1nk0
сообщение 7.2.2015, 10:52
Сообщение #1291


Стаж: 12 лет

Сообщений: 1417
Благодарностей: 705
Полезность: 349

не нужный бред


Создание и редактирование карт ($) - vk.com/id476857873
Настройка и техническое обслуживание ваших игровых серверов - vk.com/id476857873
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя bristol
сообщение 7.2.2015, 18:13
Сообщение #1292


Стаж: 12 лет

Сообщений: 320
Благодарностей: 95
Полезность: 225

Здравствуйте, есть небольшая проблемка с отображением звания в чате, с использованием lite translit скобки возле звания изменяют цвет на зеленый, если отключить lt, то все отображается нормально. Компилил колорчатом из первого поста. AMXMODX 1.8.2. Помогите исправить это))

Прикрепленное изображение
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя evil
сообщение 7.2.2015, 18:20
Сообщение #1293


Стаж: 14 лет

Сообщений: 1503
Благодарностей: 495
Полезность: 614

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

в LT измените цвет
Код
^4[%s]


Отредактировал: evil, - 7.2.2015, 18:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя bristol
сообщение 7.2.2015, 18:29
Сообщение #1294


Стаж: 12 лет

Сообщений: 320
Благодарностей: 95
Полезность: 225

Цитата(evil @ 7.2.2015, 20:20) *
в LT измените цвет
Код
^4[%s]



Ага, нашел, спасибо большое)

Заменил:
Код
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^4[%s] ", AESLvl[id]);

на:
Код
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^1[^4%s^1] ", AESLvl[id]);


Отредактировал: bristol, - 7.2.2015, 18:29
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя evil
сообщение 7.2.2015, 18:33
Сообщение #1295


Стаж: 14 лет

Сообщений: 1503
Благодарностей: 495
Полезность: 614

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

Цитата(bristol @ 7.2.2015, 19:29) *
Ага, нашел, спасибо большое)

Заменил:
Код
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^4[%s] ", AESLvl[id]);

на:
Код
iLen += formatex(szFormatTags[iLen], charsmax(szFormatTags) - iLen, "^1[^4%s^1] ", AESLvl[id]);

верно!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя FleXer
сообщение 8.2.2015, 16:22
Сообщение #1296


Стаж: 13 лет

Сообщений: 291
Благодарностей: 222
Полезность: 601

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

Когда пишу /top15 выкидывает с сервера
что в консоли перед киком: Reliable channel overflowed
помимо прочего
aes_main.amxx
aes_exp_cstrike.amxx ; CStrike and CZero support
aes_informer.amxx ; HUD and chat informer
aes_exp_editor.amxx ; Allows set player experience via menu or console cmds

стоит AES StatsX CSTRIKE

meta version
Metamod v1.21p37 2013/05/30 (5:13)
by Will Day
http://www.metamod.org/
Patch: Metamod-P (mm-p) v37
by Jussi Kivilinna
http://metamod-p.sourceforge.net/
compiled: May 30 2013, 11:41:16 EET (optimized)


meta list
Currently loaded plugins:
description stat pend file vers src load unlod
[ 1] AMX Mod X RUN - amxmodx_mm_i386. v1.8.2-d ini Start ANY
[ 2] dproto_EF RUN - dproto_i386.so v0.9.391 ini Start Never
[ 3] VoiceTranscoder RUN - vtc.so v106 ini ANY ANY
[ 4] NetBufExtender RUN - nbex.so v1.0 ini ANY Never
[ 5] AntiDlFile RUN - antidlfile_i386. v1.4 ini Start Never
[ 6] CustomizationEx RUN - cef.so v0.0.2 ini ANY ANY
[ 7] ImpulseFullUpda RUN - ifuf.so v1.0 ini ANY Never
[ 8] LocalizeBug Fix RUN - localizebugfix_m v2.3 ini Start Never
[ 9] WHBlocker RUN - whblocker_mm_i38 v1.5.530 ini Chlvl ANY
[10] Semiclip RUN - semiclip_mm_i386 v1.9f ini ANY ANY
[11] MySQL RUN - mysql_amxx_i386. v1.8.2 pl1 ANY ANY
[12] Orpheu RUN - orpheu_amxx_i386 v2.3 pl1 ANY ANY
[13] Fun RUN - fun_amxx_i386.so v1.8.2 pl1 ANY ANY
[14] Engine RUN - engine_amxx_i386 v1.8.2 pl1 ANY ANY
[15] FakeMeta RUN - fakemeta_amxx_i3 v1.8.2 pl1 ANY ANY
[16] CStrike RUN - cstrike_amxx_i38 v1.8.1.3 pl1 ANY ANY
[17] CSX RUN - csx_amxx_i386.so v1.8.2 pl1 ANY ANY
[18] Ham Sandwich RUN - hamsandwich_amxx v1.8.2 pl1 ANY ANY
[19] okapi RUN - okapi_amxx_i386. v1.0 pl1 ANY ANY
19 plugins, 19 running


Логов ошибок нет

Отредактировал: FleXer, - 8.2.2015, 16:24
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
VBOY
сообщение 9.2.2015, 9:00
Сообщение #1297
Стаж: 16 лет

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

aes_bonus_cstrike.amxx
Я так понял это дополнение дает бонусы по достижении определенного звания?
Как правильно отключить его?
Я поставил на паузу его покатилась следующая ошибка в логах:
Код
L 02/09/2015 - 13:56:53: [AMXX] Run time error 10 (plugin "aes_bonus_cstrike.amxx") (native "get_pcvar_float") - debug not enabled!
L 02/09/2015 - 13:56:53: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 02/09/2015 - 13:56:53: Invalid CVAR pointer


Отредактировал: Bloo, - 9.2.2015, 11:46
Причина: Выдано устное предупреждение!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя evil
сообщение 9.2.2015, 9:02
Сообщение #1298


Стаж: 14 лет

Сообщений: 1503
Благодарностей: 495
Полезность: 614

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

Код
;aes_bonus_cstrike.amxx; CStrike bonuses

в plugins-aes.ini
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
VBOY
сообщение 9.2.2015, 9:08
Сообщение #1299
Стаж: 16 лет

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

Поставил debug :
Код
02/09/2015 - 14:03:49: [AMXX] Run time error 10 (plugin "aes_bonus_system.amxx") (native "callfunc_push_int") - debug not enabled!
L 02/09/2015 - 14:03:49: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 02/09/2015 - 14:03:49: callfunc_push_xxx called without callfunc_begin


спасибо помогло, думал будет джостаточно на паузу , а нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
VBOY
сообщение 9.2.2015, 9:13
Сообщение #1300
Стаж: 16 лет

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

однако теперь в меню /anew ничего не взять, а мне надо что бы автовыдачи небыло. лишь за бонусы можно было взять что то
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
124 страниц V  « 64 65 66 ... 122 123 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 4 гостей читают эту тему: