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

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

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

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

Ошибка индекса дд

Статус пользователя Legend21
сообщение 18.11.2016, 19:27
Сообщение #1
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Приветствую. Прошу помочь с ошибкой. Плагин являет собой прокачкой урона с 0 до 10 уровня.

Проблема со стоит в том, что когда игрок набивает 10 уровень (максималка) , начинает спамить в логах при атаке. Сам много вариантов пробовал, разработчик плагина тоже старался - ничего не помогает. Может найдется ТОТ умный человек который поможет. Буду благодарен за помощь.

Ошибка:
Код:
L 11/11/2016 - 20:27:57: [AMXX] Displaying debug trace (plugin "zp_wpn_dmg_up.amxx", version "1.0")
L 11/11/2016 - 20:27:57: [AMXX] Run time error 4: index out of bounds
L 11/11/2016 - 20:27:57: [AMXX] [0] zp_wpn_dmg_up.sma::fw_TakeDamage (line 70)
L 11/11/2016 - 20:28:09: [AMXX] Displaying debug trace (plugin "zp_wpn_dmg_up.amxx", version "1.0")
L 11/11/2016 - 20:28:09: [AMXX] Run time error 4: index out of bounds
L 11/11/2016 - 20:28:09: [AMXX] [0] zp_wpn_dmg_up.sma::fw_TakeDamage (line 70)
L 11/11/2016 - 20:28:13: [AMXX] Displaying debug trace (plugin "zp_wpn_dmg_up.amxx", version "1.0")
L 11/11/2016 - 20:28:13: [AMXX] Run time error 4: index out of bounds
L 11/11/2016 - 20:28:13: [AMXX] [0] zp_wpn_dmg_up.sma::fw_TakeDamage (line 70)


Форвард выдающий ошибку:
Код:
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) {
if(damagetype & DMG_GENERIC || victim == attacker || !is_user_connected(attacker) || !is_user_connected(victim))
return HAM_IGNORED
if((damagetype & DMG_HEGRANADE) && zp_get_user_zombie(attacker))
return HAM_IGNORED
if(zp_get_user_zombie(attacker) || zp_get_user_survivor(attacker))
return HAM_IGNORED
if(Getg_g_bGiveItems(attacker))
return HAM_IGNORED
if(Kills_Dmg[g_kills[attacker]]) {
new Float: xdmg = Wpn_Dmg[g_kills[attacker]]
damage *= xdmg
}
SetHamParamFloat(4, damage)
return HAM_IGNORED
}




Отредактировал: Legend21, - 15.2.2017, 20:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
EvilSMS
сообщение 18.11.2016, 19:47
Сообщение #2
Стаж: 10 лет

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

А если так?
Код:

if(damagetype & DMG_GENERIC || victim == attacker || !is_user_connected(attacker) || !is_user_connected(victim))


На
Код:

if(damagetype & DMG_GENERIC || victim == attacker || !is_user_connected(attacker))


В суть не вникал, чисто для интереса.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 18.11.2016, 20:42
Сообщение #3
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

EvilSMS,

Уже это пробовали.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 18.11.2016, 20:51
Сообщение #4
Стаж: 11 лет

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

Не плагин, а огрызок какой то, черти-что с бухты-барахты запилили фигню.
Передай своему горе разработчику.
Код:
if(Kills_Dmg[g_kills[attacker]]) // ????

Код:
new const Kills_Dmg[11] = {
2, // 0
4, // 1
6, // 2
8, // 3
10, // 4
12, // 5
14, // 6
16, // 7
18, // 8
20, // 9
22 // 10
}

new const Float:Wpn_Dmg[11] = {
1.1, // 0
1.2, // 1
1.3, // 2
1.4, // 3
1.5, // 4
1.6, // 5
1.7, // 6
1.8, // 7
1.9, // 8
2.0 // 9
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 19.11.2016, 18:05
Сообщение #5
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

Проблему решил переписавши плагин. Всем спасибо ОГРОМНОЕ.

Удалив назойливый массив
Код:
new g_kills[33]

Потом констант который фиг знает что там делал.
Код:
 new const Kills_Dmg[11]


Упростил задачу

Код:

#include <amxmodx>
#include <hamsandwich>
#include <zombieplague>

native Getg_g_bGiveItems(id)

#define DMG_GENERIC 0
#define MAX_LEVELS 10
#define DMG_HEGRANADE (1<<24)

new const Float:Wpn_Dmg[11] = {
1.0, // 0
1.1, // 1
1.2, // 2
1.3, // 3
1.4, // 4
1.5, // 5
1.6, // 6
1.7, // 7
1.8, // 8
1.9, // 9
2.0 // 10
}

new g_level[33], Float:g_damage[33]

public plugin_init() {
register_plugin("[ZP] Weapon Dmg Up", "1.0", "di.alyabev")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
}

public plugin_natives() {
register_native("zp_dmg_user_lvl", "native_dmg_user_lvl", 1);
}

public native_dmg_user_lvl(id) {
return g_level[id]
}

public client_connect(id) {
g_level[id] = 0
g_damage[id] = 0.0
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damagetype) {
if(damagetype & DMG_GENERIC || victim == attacker || !is_user_connected(attacker))
return HAM_IGNORED
if((damagetype & DMG_HEGRANADE) && zp_get_user_zombie(attacker))
return HAM_IGNORED
if(Getg_g_bGiveItems(attacker))
return HAM_IGNORED
if(!zp_get_user_zombie(attacker) && !zp_get_user_nemesis(attacker) && !zp_get_user_survivor(attacker))
{
if (g_level[attacker]){
new Float: xdmg = Wpn_Dmg[g_level[attacker]]
damage *= xdmg
}
SetHamParamFloat(4, damage)
}
return HAM_IGNORED
}


Cкрытый текст

di.alyabev "скриптер", не выполнил свою задачу.


Отредактировал: Legend21, - 19.11.2016, 18:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
EvilSMS
сообщение 19.11.2016, 18:14
Сообщение #6
Стаж: 10 лет

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

Legend21, а он скриптер? Что-то новое crazy.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Legend21
сообщение 19.11.2016, 18:41
Сообщение #7
Стаж: 14 лет
Город: Винница

Сообщений: 604
Благодарностей: 229
Полезность: 561

EvilSMS,

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