Dedicated-Server.RU  


Ответ
 
Опции темы Опции просмотра
Старый 29.12.2016, 19:12   #46
Не проверенный
 
Регистрация: 05.01.2016
Адрес: Екатеринбург
Сообщений: 94
Сказал спасибо: 7
Поблагодарили 6 раз(а) в 6 сообщениях
По умолчанию

остались все-таки 2 проблемы, я долго их описывал, но сайт не дал разместить, пишу снова.
1. Прописано amx_restrict on hegren //запрещаем закупку гранат
Я использую еще плагин buyzonerange

Нажмите здесь чтобы увидеть полный текст


/* AMX Mod X
* Buyzone Range
*
* (c) Copyright 2006 by VEN
*
* This file is provided as is (no warranties)
*
* DESCRIPTION
* Plugin allows to set buyzone range: everywhere/nowhere/default
* Note: AMX Mod X v1.75+ required
*
* CVARs
* bz_range (0: Nowhere, 1: Default, 2: Everywhere, default: 1)
* Note: CVAR change is accepted every new round and player spawn
*/

#include <amxmodx>
#include <fakemeta>

// plugin's main information
#define PLUGIN_NAME "Buyzone Range"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "VEN"

// OPTIONS BELOW

// CVAR name and its default value
#define CVAR_NAME "bz_range"
#define CVAR_DEF "1"

// uncomment to disable automatic 32/64bit processor detection
// possible values is <0: 32bit | 1: 64bit>
//#define PROCESSOR_TYPE 0

// OPTIONS ABOVE

// mapzone player's private data offset
#define OFFSET_32BIT 235
#define OFFSET_64BIT 268

// offset's linux difference
#define OFFSET_LINUX_DIFF 5

// buyzone bit
#define BIT_BUYZONE (1<<0)

// determination of actual offsets
#if !defined PROCESSOR_TYPE // is automatic 32/64bit processor detection?
#if cellbits == 32 // is the size of a cell 32 bits?
// then considering processor as 32 bit
#define OFFSET OFFSET_32BIT
#else // in other case considering the size of a cell as 64 bits
// and then considering processor as 64 bit
#define OFFSET OFFSET_64BIT
#endif
#else // processor type is specified by PROCESSOR_TYPE define
#if PROCESSOR_TYPE == 0 // 32bit processor defined
#define OFFSET OFFSET_32BIT
#else // considering that defined 64bit processor
#define OFFSET OFFSET_64BIT
#endif
#endif

// get/set mapzone bits
#define CS_GET_USER_MAPZONES(%1) get_pdata_int(%1, OFFSET, OFFSET_LINUX_DIFF)
#define CS_SET_USER_MAPZONES(%1,%2) set_pdata_int(%1, OFFSET, %2, OFFSET_LINUX_DIFF)

// fake buyzone absmin and absmax
new Float:g_buyzone_min[3] = {-8192.0, -8192.0, -8192.0}
new Float:g_buyzone_max[3] = {-8191.0, -8191.0, -8191.0}

new g_buyzone
new g_pcvar

new bool:g_enabled
new g_bit

new bool:g_new_round
new g_maxplayers

#define MAX_PLAYERS 32
new bool:g_alive[MAX_PLAYERS + 1]

new g_msgid_icon
new g_icon_name[] = "buyzone"

#define ICON_R 0
#define ICON_G 160
#define ICON_B 0

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

g_pcvar = register_cvar(CVAR_NAME, CVAR_DEF)

register_clcmd("buy", "menu_block")
register_clcmd("buyequip", "menu_block")
register_clcmd("fullupdate", "clcmd_fullupdate")

register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
register_event("ResetHUD", "event_player_alive", "be")
register_event("Health", "event_player_dead", "bd", "1=0")

register_forward(FM_PlayerPostThink, "forward_player_postthink")

g_msgid_icon = get_user_msgid("StatusIcon")
register_message(g_msgid_icon, "message_status_icon")

g_maxplayers = get_maxplayers()

g_buyzone = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_buyzone"))
dllfunc(DLLFunc_Spawn, g_buyzone)
engfunc(EngFunc_SetSize, g_buyzone, g_buyzone_min, g_buyzone_max)

update_state_vars()
}

public forward_player_postthink(id) {
if (g_alive[id] && g_enabled) {
switch (g_bit) {
case BIT_BUYZONE: dllfunc(DLLFunc_Touch, g_buyzone, id)
default: CS_SET_USER_MAPZONES(id, CS_GET_USER_MAPZONES(id) & ~BIT_BUYZONE)
}
}
}

public event_new_round() {
g_new_round = true
set_task(0.1, "task_unset_var")
update_state_vars()
}

public task_unset_var() {
g_new_round = false
}

public event_player_alive(id) {
g_alive[id] = true

if (g_new_round) {
if (g_enabled)
draw_buyzone_icon(id, g_bit)
}
else {
update_state_vars()
if (g_enabled) {
for (new i = 1; i <= g_maxplayers; ++i) {
if (g_alive[i])
draw_buyzone_icon(i, g_bit)
}
}
}
}

public event_player_dead(id) {
g_alive[id] = false
}

public client_disconnect(id) {
g_alive[id] = false
}

public message_status_icon(msg_id, msg_dest, id) {
if (!g_alive[id] || !g_enabled)
return PLUGIN_CONTINUE

new icon[8]
get_msg_arg_string(2, icon, 7)
if (equal(icon, g_icon_name))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public menu_block(id) {
if (g_alive[id] && g_enabled && !g_bit)
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public clcmd_fullupdate() {
return PLUGIN_HANDLED
}

update_state_vars() {
new cvar_value = get_pcvar_num(g_pcvar)
g_enabled = true
switch (cvar_value) {
case 0: g_bit = 0
case 1: g_enabled = false
default: g_bit = BIT_BUYZONE
}
}

draw_buyzone_icon(id, draw) {
message_begin(MSG_ONE, g_msgid_icon, _, id)
write_byte(draw)
write_string(g_icon_name)
if (draw) {
write_byte(ICON_R)
write_byte(ICON_G)
write_byte(ICON_B)
}
message_end()
}
[свернуть]


, закупка по всей карте, гранаты то можно купить то нельзя.
2. Несколько плагинов работают не правильно, проблема в client_disconnected
прочему-то не отрабатывает!!!

Последний раз редактировалось coolmans; 30.12.2016 в 17:30.
coolmans вне форума   Ответить с цитированием
Старый 29.12.2016, 19:37   #47
Проверенный
 
Регистрация: 02.06.2016
Адрес: Одесса
Сообщений: 403
Сказал спасибо: 84
Поблагодарили 83 раз(а) в 69 сообщениях
По умолчанию

И ещё один баг не баг, а так.
Сразу при старте сервера не читаются квары из amxx.cfg, а меняются уже только при последующих сменах карты.
Не критично конечно, но и хорошего мало.
Nardamon вне форума   Ответить с цитированием
Старый 29.12.2016, 21:35   #48
Не проверенный
 
Регистрация: 23.06.2013
Адрес: Ленинград
Сообщений: 48
Сказал спасибо: 21
Поблагодарили 22 раз(а) в 17 сообщениях
По умолчанию

Цитата:
Сообщение от Adidasman Посмотреть сообщение
MOBY, исходник плагина можно?
Не знаю как вставить ник, посему пишу как умею.
А вы исходники ReAmxx кому-то ещё предоставляете?
Нет, я не прошу их предоставить мне, но вопрос таков - кто их видел кроме лично Вас?
P.S. если что - билд 7 очень айс и я не в коей мере не хейтер.

Добавлено:
Цитата:
Сообщение от Safety1st Посмотреть сообщение
Это ещё цветочки.
предлагаю всё же не спешить с выводами, а спросить напрямую у виновника торжества. Учитывая ваш вклад и вклад адидаса, это актуальный вопрос.
Gudaus вне форума   Ответить с цитированием
Старый 29.12.2016, 21:42   #49
Проверенный
 
Регистрация: 04.05.2013
Адрес: Север
Сообщений: 471
Сказал спасибо: 126
Поблагодарили 648 раз(а) в 180 сообщениях
По умолчанию

Gudaus, s1lent и Asmodai, этого достаточно
Adidasman вне форума   Ответить с цитированием
Старый 30.12.2016, 03:39   #50
с доступом к форуму безопасности
 
Регистрация: 20.10.2012
Адрес: Москва
Сообщений: 603
Сказал спасибо: 490
Поблагодарили 274 раз(а) в 155 сообщениях
Cool

Цитата:
Сообщение от Nardamon Посмотреть сообщение
ReAmxx не самостоятельный продукт, а некоторые доработки исходников оригинального AMXX
А если у них (разработчиков AMXX) ничего не поменялось то он публикуется под лицензией GPL
Как бы исходники обязаны быть.
Я свой выбор сделал

__________________
GoldSrc Gaming Community
Safety1st вне форума   Ответить с цитированием
Старый 01.01.2017, 14:56   #51
Не проверенный
 
Регистрация: 27.05.2016
Адрес: SPb
Сообщений: 388
Сказал спасибо: 81
Поблагодарили 47 раз(а) в 40 сообщениях
По умолчанию

Сделайте пожалуйста поддержку UTF-8 для работы со строками.
Я просил Arkshine, он сделал, но там что-то перестала часть функций работать, может я криво компилил, но результат всё равно не очень. Хотелось бы ReAMXX с этой фичей.
Вот либа https://bitbucket.org/knight666/utf8rewind
Вот код https://github.com/Arkshine/amxmodx/...e-utf8-support

Для чего это полезно?
Ну конечно же для фильтрации мата.
Согласитесь, не очень-то удобно слово из трёх букв шесть раз записывать
yododo вне форума   Ответить с цитированием
Старый 01.01.2017, 16:13   #52
Не проверенный
 
Регистрация: 11.11.2013
Адрес: Иваново
Сообщений: 526
Сказал спасибо: 12
Поблагодарили 196 раз(а) в 134 сообщениях
По умолчанию

Цитата:
Сообщение от yododo Посмотреть сообщение
Согласитесь, не очень-то удобно слово из трёх букв шесть раз записывать
Почему 6?
PRoSToTeM@ вне форума   Ответить с цитированием
Старый 01.01.2017, 17:04   #53
Не проверенный
 
Регистрация: 27.05.2016
Адрес: SPb
Сообщений: 388
Сказал спасибо: 81
Поблагодарили 47 раз(а) в 40 сообщениях
По умолчанию

Цитата:
Сообщение от PRoSToTeM@ Посмотреть сообщение
Почему 6?
Три во второй из-за кейса потому что.

Добавлено: А, блин, 9 ))))
yododo вне форума   Ответить с цитированием
Старый 01.01.2017, 20:42   #54
Не проверенный
 
Регистрация: 11.11.2013
Адрес: Иваново
Сообщений: 526
Сказал спасибо: 12
Поблагодарили 196 раз(а) в 134 сообщениях
По умолчанию

Цитата:
Сообщение от yododo Посмотреть сообщение
Три во второй из-за кейса потому что.

Добавлено: А, блин, 9 ))))
Вообще-то тут два в третьей, т.е. 8.
PRoSToTeM@ вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 01.01.2017, 21:34   #55
Администратор
 
Регистрация: 20.10.2010
Адрес: Москва
Сообщений: 2,726
Сказал спасибо: 422
Поблагодарили 2,189 раз(а) в 709 сообщениях
По умолчанию

Не два в третьей, а 2*2*2. Для каждой буквы отдельно считается количество размещений, потом они перемножаются.
Asmodai вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 01.01.2017, 22:32   #56
Не проверенный
 
Регистрация: 27.05.2016
Адрес: SPb
Сообщений: 388
Сказал спасибо: 81
Поблагодарили 47 раз(а) в 40 сообщениях
По умолчанию

Так, понятно, то, что я хорошо отдохнул вы уже заметили.)
В общем суть я изложил.
Думаю, вещь полезная, всё таки, и много кому облегчит жизнь.
yododo вне форума   Ответить с цитированием
Старый 02.01.2017, 01:53   #57
Не проверенный
 
Регистрация: 11.11.2013
Адрес: Иваново
Сообщений: 526
Сказал спасибо: 12
Поблагодарили 196 раз(а) в 134 сообщениях
По умолчанию

Цитата:
Сообщение от Asmodai Посмотреть сообщение
Не два в третьей, а 2*2*2.
Это и есть два в третьей.
PRoSToTeM@ вне форума   Ответить с цитированием
Старый 02.01.2017, 03:00   #58
Администратор
 
Регистрация: 20.10.2010
Адрес: Москва
Сообщений: 2,726
Сказал спасибо: 422
Поблагодарили 2,189 раз(а) в 709 сообщениях
По умолчанию

PRoSToTeM@, нет, в комбинаторике это именно 2*2*2 (2!/(2-1)!*3). А вообще мы не тот день выбрали, чтобв так об этом напрягаться.
Asmodai вне форума   Ответить с цитированием
Старый 02.01.2017, 07:01   #59
Не проверенный
 
Регистрация: 11.11.2013
Адрес: Иваново
Сообщений: 526
Сказал спасибо: 12
Поблагодарили 196 раз(а) в 134 сообщениях
По умолчанию

Asmodai, тут можно рассматривать иначе: представим рассматриваемую строку как LEN-битное слово (LEN - длина строки), N-ый бит соответствует N-ой позиции в строке, причём если бит равен 0, то символ на этой позиции в нижнем регистре, а если равен 1 в верхнем, соответственно количество различных комбинаций будет равно 2^LEN.
PRoSToTeM@ вне форума   Ответить с цитированием
Старый 02.01.2017, 13:32   #60
с доступом к форуму безопасности
 
Регистрация: 24.12.2016
Адрес: _
Сообщений: 1
Сказал спасибо: 0
Поблагодарили 6 раз(а) в 1 сообщении
По умолчанию

Цитата:
Сообщение от yododo Посмотреть сообщение
Сделайте пожалуйста поддержку UTF-8 для работы со строками.
Я просил Arkshine, он сделал, но там что-то перестала часть функций работать, может я криво компилил, но результат всё равно не очень. Хотелось бы ReAMXX с этой фичей.
Вот либа https://bitbucket.org/knight666/utf8rewind
Вот код https://github.com/Arkshine/amxmodx/...e-utf8-support

Для чего это полезно?
Ну конечно же для фильтрации мата.
Согласитесь, не очень-то удобно слово из трёх букв шесть раз записывать
Looks like equali() was broken (a typo). I've updated the PR on github. It should work now, try again.
Next time that would help if you could report directly on this PR. It's still a work in progress, not everything is tested with the latest changes.
Arkshine вне форума   Ответить с цитированием
6 пользователей сказали cпасибо:
Показать/Скрыть список поблагодаривших
Ответ

Метки
amxmodx, regamedll, rehlds


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 11:18. Часовой пояс GMT +3.


Лицензия принадлежит Dedicated-Server.Ru