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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

После смены выключается плагин

Статус пользователя TuRBoDiZz
сообщение 17.2.2013, 23:52
Сообщение #1
Стаж: 13 лет

Сообщений: 142
Благодарностей: 6
Полезность: 44

Ребят вообщем стоит плагин DM, Админ включает его на какой то карте и после смены на другую плагин продолжает работать, как это можно исправить?

Исходник
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <engine>
#include <fakemeta>

new cvar_enabled, cvar_hp, cvar_hp_hs, cvar_gamename, amx_gamename

public plugin_init()
{
register_plugin("Knife DeathMatch", "1.1", "Lucky")

register_event("DeathMsg", "on_Death", "a")
register_logevent("logevent_team_join", 3, "1=joined team")

cvar_enabled = register_cvar("amx_knifedm", "0")
cvar_hp = register_cvar("amx_knifedm_hp", "0")
cvar_hp_hs = register_cvar("amx_knifedm_hp_hs", "0")
cvar_gamename = register_cvar("amx_knifedm_gamename", "1")

if(get_pcvar_num(cvar_gamename) == 1)
{
amx_gamename = register_cvar("amx_gamename", "|#|KniFe AreNa|#|" )
register_forward(FM_GetGameDescription, "GameDesc")
}

if(get_pcvar_num(cvar_enabled) == 1)
{
remove_entity_name("func_bomb_target")
remove_entity_name("info_bomb_target")
remove_entity_name("hostage_entity")
remove_entity_name("func_hostage_rescue")
remove_entity_name("info_hostage_rescue")
remove_entity_name("info_vip_start")
remove_entity_name("func_vip_safetyzone")
remove_entity_name("func_escapezone")

removeweapons()

server_cmd("sv_restart 2")
}
}

public logevent_team_join()
{
if(get_pcvar_float(cvar_enabled) == 1)
{
new id = get_loguser_index()
set_task(1.0, "spawn_user", id)
}
}

stock get_loguser_index()
{
static loguser[80], name[32];
read_logargv(0,loguser,79);
parse_loguser(loguser,name,31);

return get_user_index(name);
}

public on_Death()
{
if(get_pcvar_float(cvar_enabled) == 1)
{
new id = read_data(2)
set_task(1.0, "spawn_user", id)
}
}

public spawn_user(id)
{
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
return PLUGIN_HANDLED
}

ExecuteHamB(Ham_CS_RoundRespawn, id)
return PLUGIN_HANDLED
}

public client_death(killer, victim, wpnindex, hitplace, TK)
{
if(get_pcvar_float(cvar_enabled) == 1)
{
if(hitplace == HIT_HEAD)
{
set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_hp_hs))

set_hudmessage(255, 0, 0, 0.1, -1.0, 0, 6.0, 10.0)
show_hudmessage(killer, "HeadShot")
}
else
{
set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_hp))
}
}
}

public client_connect(id)
{
if(get_pcvar_num(cvar_enabled) == 1)
{
set_task(20.0, "connect_ads", id)
}
}

public connect_ads(id)
{
client_print(id, print_chat, "[Kn1Fe Server] Включен режим KniFe DM!")
client_print(id, print_chat, "Устройте Мясо на Сервере!")
}

public GameDesc()
{
static gamename[32]
get_pcvar_string(amx_gamename, gamename, 31)
forward_return(FMV_STRING, gamename)
return FMRES_SUPERCEDE
}

removeweapons()
{
new weapon, nnumr

while ((weapon = find_ent_by_class(-1,"armoury_entity")))
{
remove_entity(weapon)
nnumr++
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 18.2.2013, 9:24
Сообщение #2
Стаж: 14 лет
Город: Moscow

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

А как 'Админ включает его на какой то карте'?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TuRBoDiZz
сообщение 18.2.2013, 14:57
Сообщение #3
Стаж: 13 лет

Сообщений: 142
Благодарностей: 6
Полезность: 44

Цитата(Safety1st @ 18.2.2013, 9:24) *
А как 'Админ включает его на какой то карте'?



amx_cvar amx_knifedm 1
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя M1r3x
сообщение 18.2.2013, 15:02
Сообщение #4


Стаж: 13 лет

Сообщений: 276
Благодарностей: 80
Полезность: 3

Цитата(TuRBoDiZz @ 18.2.2013, 1:52) *
Ребят вообщем стоит плагин DM, Админ включает его на какой то карте и после смены на другую плагин продолжает работать, как это можно исправить?

Исходник
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <hamsandwich>
#include <engine>
#include <fakemeta>

new cvar_enabled, cvar_hp, cvar_hp_hs, cvar_gamename, amx_gamename

public plugin_init()
{
register_plugin("Knife DeathMatch", "1.1", "Lucky")

register_event("DeathMsg", "on_Death", "a")
register_logevent("logevent_team_join", 3, "1=joined team")

cvar_enabled = register_cvar("amx_knifedm", "0")
cvar_hp = register_cvar("amx_knifedm_hp", "0")
cvar_hp_hs = register_cvar("amx_knifedm_hp_hs", "0")
cvar_gamename = register_cvar("amx_knifedm_gamename", "1")

if(get_pcvar_num(cvar_gamename) == 1)
{
amx_gamename = register_cvar("amx_gamename", "|#|KniFe AreNa|#|" )
register_forward(FM_GetGameDescription, "GameDesc")
}

if(get_pcvar_num(cvar_enabled) == 1)
{
remove_entity_name("func_bomb_target")
remove_entity_name("info_bomb_target")
remove_entity_name("hostage_entity")
remove_entity_name("func_hostage_rescue")
remove_entity_name("info_hostage_rescue")
remove_entity_name("info_vip_start")
remove_entity_name("func_vip_safetyzone")
remove_entity_name("func_escapezone")

removeweapons()

server_cmd("sv_restart 2")
}
}

public logevent_team_join()
{
if(get_pcvar_float(cvar_enabled) == 1)
{
new id = get_loguser_index()
set_task(1.0, "spawn_user", id)
}
}

stock get_loguser_index()
{
static loguser[80], name[32];
read_logargv(0,loguser,79);
parse_loguser(loguser,name,31);

return get_user_index(name);
}

public on_Death()
{
if(get_pcvar_float(cvar_enabled) == 1)
{
new id = read_data(2)
set_task(1.0, "spawn_user", id)
}
}

public spawn_user(id)
{
if(cs_get_user_team(id) == CS_TEAM_SPECTATOR)
{
return PLUGIN_HANDLED
}

ExecuteHamB(Ham_CS_RoundRespawn, id)
return PLUGIN_HANDLED
}

public client_death(killer, victim, wpnindex, hitplace, TK)
{
if(get_pcvar_float(cvar_enabled) == 1)
{
if(hitplace == HIT_HEAD)
{
set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_hp_hs))

set_hudmessage(255, 0, 0, 0.1, -1.0, 0, 6.0, 10.0)
show_hudmessage(killer, "HeadShot")
}
else
{
set_user_health(killer, get_user_health(killer) + get_pcvar_num(cvar_hp))
}
}
}

public client_connect(id)
{
if(get_pcvar_num(cvar_enabled) == 1)
{
set_task(20.0, "connect_ads", id)
}
}

public connect_ads(id)
{
client_print(id, print_chat, "[Kn1Fe Server] Включен режим KniFe DM!")
client_print(id, print_chat, "Устройте Мясо на Сервере!")
}

public GameDesc()
{
static gamename[32]
get_pcvar_string(amx_gamename, gamename, 31)
forward_return(FMV_STRING, gamename)
return FMRES_SUPERCEDE
}

removeweapons()
{
new weapon, nnumr

while ((weapon = find_ent_by_class(-1,"armoury_entity")))
{
remove_entity(weapon)
nnumr++
}
}

http://wiki.amxmodx.org/Configuring_AMX_Mod_X#Maps на почитай.
может я что то не так понял).

Отредактировал: kovalyov, - 18.2.2013, 15:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TuRBoDiZz
сообщение 18.2.2013, 15:07
Сообщение #5
Стаж: 13 лет

Сообщений: 142
Благодарностей: 6
Полезность: 44

Цитата(kovalyov @ 18.2.2013, 15:02) *
http://wiki.amxmodx.org/Configuring_AMX_Mod_X#Maps на почитай.
может я что то не так понял).

Ну вообщем возьмем пример "обычный CSDM", когда его включаешь на определенной карте и после меняешь на другую, плагин автоматически переходит в функцию disanble, как такое можно сделать с этим плагином?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя M1r3x
сообщение 18.2.2013, 15:20
Сообщение #6


Стаж: 13 лет

Сообщений: 276
Благодарностей: 80
Полезность: 3

Цитата(TuRBoDiZz @ 18.2.2013, 17:07) *
Ну вообщем возьмем пример "обычный CSDM", когда его включаешь на определенной карте и после меняешь на другую, плагин автоматически переходит в функцию disanble, как такое можно сделать с этим плагином?

Пример добавления плагина для определённой карты
Допустим у вас есть плагин hook.amxx и вы хотите чтобы он работал только на карте de_aztec, а на остальных был выключен. Для этого делаем следующее:
1) Заходим в cstrike/addons/amxmodx/configs и создаём в этой директории папку под названием maps
2) В только что созданной папке создаём текстовый документ под названием plugins-de_aztec и вписываем в него название плагина.
3) Закрываем документ, сохраняем изменения и меняем расширение документа .txt на .ini

Теперь как отключить плагин лишь на конкретной карте
1) Заходим в cstrike/addons/amxmodx/configs и создаём в этой директории папку под названием maps
2) В только что созданной папке создаём текстовый документ под названием plugins-de_aztec и вписываем в него
название плагина.amxx disabled.
3) Закрываем документ, сохраняем изменения и меняем расширение документа .txt на .ini
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TuRBoDiZz
сообщение 18.2.2013, 17:50
Сообщение #7
Стаж: 13 лет

Сообщений: 142
Благодарностей: 6
Полезность: 44

Цитата(kovalyov @ 18.2.2013, 15:20) *
Пример добавления плагина для определённой карты
Допустим у вас есть плагин hook.amxx и вы хотите чтобы он работал только на карте de_aztec, а на остальных был выключен. Для этого делаем следующее:
1) Заходим в cstrike/addons/amxmodx/configs и создаём в этой директории папку под названием maps
2) В только что созданной папке создаём текстовый документ под названием plugins-de_aztec и вписываем в него название плагина.
3) Закрываем документ, сохраняем изменения и меняем расширение документа .txt на .ini

Теперь как отключить плагин лишь на конкретной карте
1) Заходим в cstrike/addons/amxmodx/configs и создаём в этой директории папку под названием maps
2) В только что созданной папке создаём текстовый документ под названием plugins-de_aztec и вписываем в него
название плагина.amxx disabled.
3) Закрываем документ, сохраняем изменения и меняем расширение документа .txt на .ini


Это я думаю всё не то, с отключением плагина нужно что бы просто он сам выключался на любой след.карте

Есть идея на тему которую вы предложили мне, тупо добавить в /addons/amxmodx/configs/maps/ cfg к каждой карте, команду "amx_knifedm 0" и когда нужно на самой карте менять на "amx_knifedm 1".
Как думаете сработает такая фишка? скажется ли это на нагрузку на сервер?

Отредактировал: TuRBoDiZz, - 18.2.2013, 17:51
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 19.2.2013, 2:12
Сообщение #8
Стаж: 14 лет
Город: Moscow

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

Это всё то, только сделать надо с умом)
В amxx.cfg добавляете amx_knifedm 0, чтобы плагин по дефолту был выключен.
А если хотите, чтобы на определённых картах сам включался - тогда используйте конфиги для карт.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: