Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
limbooc » 19 мар 2018, 00:06
Добрый вечер форумчане
в логах ошибка:
- Код: Выделить всё
public HC_CBasePlayer_TakeDamage_Player(iVictim, iInflictor, iAttacker, Float:fDamage, iBitDamage)
{
if(g_iDayMode == 3 && g_iTeamUser[iVictim] == g_iTeamUser[iAttacker] && iBitDamage & (1<<24))
{
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
}
сам лог:
- Код: Выделить всё
L 03/18/2018 - 15:35:39: [AMXX] Displaying debug trace (plugin "jbe_core_RE.amxx", version "1.0")
L 03/18/2018 - 15:35:39: [AMXX] Run time error 4: index out of bounds
L 03/18/2018 - 15:35:39: [AMXX] [0] jbe_core_RE.sma::HC_CBasePlayer_TakeDamage_Player (line 10537)
L 03/18/2018 - 15:35:40: [AMXX] Displaying debug trace (plugin "jbe_core_RE.amxx", version "1.0")
L 03/18/2018 - 15:35:40: [AMXX] Run time error 4: index out of bounds
L 03/18/2018 - 15:35:40: [AMXX] [0] jbe_core_RE.sma::HC_CBasePlayer_TakeDamage_Player (line 10537)
- Код: Выделить всё
line 10537 строка это:
if(g_iDayMode == 3 && g_iTeamUser[iVictim] == g_iTeamUser[iAttacker] && iBitDamage & (1<<24))
- Код: Выделить всё
new g_iDayMode, g_iTeamUser[MAX_PLAYERS + 1]
Вопрос в следующем, где было превышено массив индексов?
-
limbooc
-
- Сообщения: 71
- Зарегистрирован: 15 мар 2017, 07:45
- Благодарил (а): 13 раз.
- Поблагодарили: 1 раз.
- Опыт программирования: Около года
- Языки программирования: Pawn
fl0wer » 19 мар 2018, 00:08
Ты только в g_iTeamUser указываешь индекс, очевидно, что в нем.
-
fl0wer
-
- Сообщения: 1687
- Зарегистрирован: 27 фев 2011, 21:35
- Откуда: Россия, Ижевск
- Благодарил (а): 240 раз.
- Поблагодарили: 508 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: C++, Java, PAWN
-
limbooc » 19 мар 2018, 00:14
fl0wer, как исправить? мб проверку на валидность надо?
- Код: Выделить всё
if(g_iDayMode == 3)
{
if(IsPlayer(iAttacker) && iBitDamage & (1<<24))
{
if(g_iTeamUser[iVictim] == g_iTeamUser[iAttacker])
{
SetHookChainReturn(ATYPE_INTEGER, false);
return HC_SUPERCEDE;
}
}
}
- Код: Выделить всё
-
limbooc
-
- Сообщения: 71
- Зарегистрирован: 15 мар 2017, 07:45
- Благодарил (а): 13 раз.
- Поблагодарили: 1 раз.
- Опыт программирования: Около года
- Языки программирования: Pawn
fl0wer » 19 мар 2018, 00:22
Да. Можно проще ExecuteHam( Ham_IsPlayer, iAttacker ).
-
fl0wer
-
- Сообщения: 1687
- Зарегистрирован: 27 фев 2011, 21:35
- Откуда: Россия, Ижевск
- Благодарил (а): 240 раз.
- Поблагодарили: 508 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: C++, Java, PAWN
-
limbooc » 19 мар 2018, 00:27
cпс,решено
-
limbooc
-
- Сообщения: 71
- Зарегистрирован: 15 мар 2017, 07:45
- Благодарил (а): 13 раз.
- Поблагодарили: 1 раз.
- Опыт программирования: Около года
- Языки программирования: Pawn
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Bing [Bot] и гости: 7