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

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

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

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

Проблема спавна в плагине Knife DM

, Баг со спавном игроков
Статус пользователя drivemaster
сообщение 3.9.2014, 22:34
Сообщение #1


Стаж: 17 лет

Сообщений: 266
Благодарностей: 79
Полезность: 246

Проблема спавна в плагине Knife DM

Вот код плагина стоящего на сервере:

Source .sma
Код:
#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", "1")
cvar_hp_hs = register_cvar("amx_knifedm_hp_hs", "1")
cvar_gamename = register_cvar("amx_knifedm_gamename", "1")

if(get_pcvar_num(cvar_gamename) == 1)
{
amx_gamename = register_cvar("amx_gamename", "Knife DM / Classic" )
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(102, 255, 0, 0.1, -1.0, 0, 6.0, 10.0)
show_hudmessage(killer, "** Прямо в Голову *** ")
}
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, " ")
}

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++
}
}


Пока не был установлен блок раунда, игроки спавнились без проблем и багов.
После установки модуля блока раунда
[Metamod] RoundEndBlock
игроки также спавнятся, но иногда возникает такой баг, вот как игроки описывают:

Цитата
- Иногда, чтобы зайти на дм надо убить минут 5, заходишь выбираешь команду и ждёшь, раунд то не кончается) и спавна нет, у меня такое было несколько раз когда на сервере 2 человека играет( или надо выбрать команду именно в тот момент когда убивают того за кого ты хочешь зайти.

- Правильно подметил такой баг есть! Только у меня не при выборе команды, а при ее смене.


Ошибка от плагина бывает только одна, изредка, но со спавном я так понял она не связана:
Error Logs
Код:
L 08/25/2014 - 14:17:26: [FUN] Invalid player 1
L 08/25/2014 - 14:17:26: [AMXX] Displaying debug trace (plugin "knifedm.amxx", version "1.1")
L 08/25/2014 - 14:17:26: [AMXX] Run time error 10: native error (native "set_user_health")
L 08/25/2014 - 14:17:26: [AMXX] [0] knifedm.sma::client_death (line 99)


В чём может быть проблема? И решит ли её плагин Simple Respawn от Safety1st или будут конфликты.

Цитата
Также интересует можно ли вписать в плагин, чтобы на картах типа Ka_acer2, где игроки респятся не только с ножом, но и с пистолетами, чтобы у них сразу они пропадали, за это финансово отблагодарить
Заранее благодарен.
- Решено, спасибо qvadro

Отредактировал: drivemaster, - 4.9.2014, 7:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
magis1337
сообщение 3.9.2014, 22:41
Сообщение #2
Стаж: 11 лет
Город: Odessa

Сообщений: 2782
Благодарностей: 1535
Полезность: 918

host5.ru
Меценат Меценат

Установи roun_nonstop и не парься
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя drivemaster
сообщение 3.9.2014, 23:11
Сообщение #3


Стаж: 17 лет

Сообщений: 266
Благодарностей: 79
Полезность: 246

Цитата(magis1337 @ 3.9.2014, 23:41) *
Установи roun_nonstop и не парься

Хотелось всё таки попробовать исправить данный плагин.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: