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

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

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

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

Исправить ошибку в плагине No Shoot Through Walls

Статус пользователя Default
сообщение 24.3.2015, 14:30
Сообщение #1


Стаж: 19 лет

Сообщений: 136
Благодарностей: 48
Полезность: 262

Добрый день.

Прошу помощи в исправлении ошибки в плагине No Shoot Through Walls.
Работа за СПАСИБО.

no_walls.amxx debug

Start of error session
L 03/24/2015 - 05:52:09: Start of error session.
L 03/24/2015 - 05:52:09: Info (map "cs_assault") (file "addons/amxmodx/logs/error_20150324.log")
L 03/24/2015 - 05:52:09: Invalid player id 181
L 03/24/2015 - 05:52:09: [AMXX] Displaying debug trace (plugin "no_walls.amxx")
L 03/24/2015 - 05:52:09: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 03/24/2015 - 05:52:09: [AMXX] [0] no_walls.sma::CBasePlayer_TraceAttack (line 48)
L 03/24/2015 - 05:53:36: Invalid player id 230
L 03/24/2015 - 05:53:36: [AMXX] Displaying debug trace (plugin "no_walls.amxx")
L 03/24/2015 - 05:53:36: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 03/24/2015 - 05:53:36: [AMXX] [0] no_walls.sma::CBasePlayer_TraceAttack (line 48)
L 03/24/2015 - 07:23:58: Invalid player id 235
L 03/24/2015 - 07:23:58: [AMXX] Displaying debug trace (plugin "no_walls.amxx")
L 03/24/2015 - 07:23:58: [AMXX] Run time error 10: native error (native "get_user_weapon")
L 03/24/2015 - 07:23:58: [AMXX] [0] no_walls.sma::CBasePlayer_TraceAttack (line 48)


Код:
	/*
<^>

Author : hornet
Plugin : No Shoot Through Walls

<^>

This plugin is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This plugin is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this plugin; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

<^>
*/

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
#include <xs>

#define VERSION "0.0.1"

new g_pEnabled;

public plugin_init()
{
register_plugin( "No Shoot Through Walls", VERSION, "hornet" );

g_pEnabled = register_cvar( "nowalls_enabled", "1" );

RegisterHam( Ham_TraceAttack, "player", "CBasePlayer_TraceAttack" );
}

public CBasePlayer_TraceAttack( iVictim, iAttacker, Float:flDamage, Float:vDirection[ 3 ], ptr, Bits )
{
if( get_pcvar_num( g_pEnabled ) && iAttacker && get_user_weapon( iAttacker ) != CSW_KNIFE )
{
static Float:vStart[ 3 ], Float:vEnd[ 3 ], Float:flFraction;

get_tr2( ptr, TR_vecEndPos, vEnd );
get_tr2( ptr, TR_flFraction, flFraction );

xs_vec_mul_scalar( vDirection, -1.0, vDirection );
xs_vec_mul_scalar( vDirection, flFraction * 9999.0, vStart );
xs_vec_add( vStart, vEnd, vStart );

new iTarget = trace_line( iVictim, vEnd, vStart, vEnd );

if( !iTarget )
return HAM_SUPERCEDE;
}

return HAM_IGNORED;
}


Дополнительная информация, AMXX 1.8.2, билд сервера 6153beta

Прошу помощи в решении данной проблемы.

UPDATE: добавил исходник, тэг PAWN съедает первую пустую строчку.

Отредактировал: Default, - 24.3.2015, 15:05
Прикрепленные файлы:
Прикрепленный файл  no_walls.sma ( 1,75 килобайт ) Кол-во скачиваний: 8
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 24.3.2015, 14:37
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Код:
   /*
<^>

Author : hornet
Plugin : No Shoot Through Walls

<^>

This plugin is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at
your option) any later version.

This plugin is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this plugin; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

<^>
*/

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
#include <xs>

#define VERSION "0.0.1"

new g_pEnabled;

public plugin_init()
{
register_plugin( "No Shoot Through Walls", VERSION, "hornet" );

g_pEnabled = register_cvar( "nowalls_enabled", "1" );

RegisterHam( Ham_TraceAttack, "player", "CBasePlayer_TraceAttack" );
}

public CBasePlayer_TraceAttack( iVictim, iAttacker, Float:flDamage, Float:vDirection[ 3 ], ptr, Bits )
{
if(!is_user_connected(iAttacker)) return HAM_IGNORED;
if( get_pcvar_num( g_pEnabled ) && iAttacker && get_user_weapon( iAttacker ) != CSW_KNIFE )
{
static Float:vStart[ 3 ], Float:vEnd[ 3 ], Float:flFraction;

get_tr2( ptr, TR_vecEndPos, vEnd );
get_tr2( ptr, TR_flFraction, flFraction );

xs_vec_mul_scalar( vDirection, -1.0, vDirection );
xs_vec_mul_scalar( vDirection, flFraction * 9999.0, vStart );
xs_vec_add( vStart, vEnd, vStart );

new iTarget = trace_line( iVictim, vEnd, vStart, vEnd );

if( !iTarget )
return HAM_SUPERCEDE;
}

return HAM_IGNORED;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Default
сообщение 24.3.2015, 14:54
Сообщение #3


Стаж: 19 лет

Сообщений: 136
Благодарностей: 48
Полезность: 262

Ошибка при компиляции:



Исходник с правкой добавил.

Отредактировал: Default, - 24.3.2015, 14:56
Прикрепленные файлы:
Прикрепленный файл  no_walls.sma ( 1,8 килобайт ) Кол-во скачиваний: 3
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 24.3.2015, 14:55
Сообщение #4


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Скрин ошибки
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Default
сообщение 24.3.2015, 14:56
Сообщение #5


Стаж: 19 лет

Сообщений: 136
Благодарностей: 48
Полезность: 262

Затереть забыл =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 24.3.2015, 14:59
Сообщение #6


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Поправил код в посте выше
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Default
сообщение 24.3.2015, 15:07
Сообщение #7


Стаж: 19 лет

Сообщений: 136
Благодарностей: 48
Полезность: 262

Благодарю, тему можно закрывать.

Готовый исходник прилагаю, может кому пригодиться.

Отредактировал: Default, - 24.3.2015, 15:16
Прикрепленные файлы:
Прикрепленный файл  no_walls.sma ( 1,8 килобайт ) Кол-во скачиваний: 20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: