Не работает скрипт (дагоняшки)
|
|
DESTROYER | Дата: Суббота, 05.05.2007, 19:30:42 | Сообщение # 1 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| Проблема: Скрипт не хочет работать на игроках. Но на админе скрипт работает. в консоле пишет ошибки: 1) ошибка если админ(сервер) кавонибудь убил: "death_event (line 83)" 2) ошибка если игрок убил админа(сервера): "death_event (line 67)" Пожалуйста кто может объесните мне в чем проблема я все что можно перепробовал так и не разобрался. К сообщению приклеплен фаил (ds_dagon.sma) - ето сам скрипт..
пропиши (Abort;) в совей жизни
|
|
| |
VEN | Дата: Суббота, 05.05.2007, 19:58:17 | Сообщение # 2 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| sifa[2] массив должен быть для каждого возможного игрока. Т.е. sifa[33][2].
|
|
| |
DESTROYER | Дата: Суббота, 05.05.2007, 20:48:41 | Сообщение # 3 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| Спасибо! держи (+) Эмм.. и еще один вопросик.. как теперь записать ето к примеру тут "if (sifa[killer] == 2) {"
пропиши (Abort;) в совей жизни
Сообщение отредактировал DESTROYER - Суббота, 05.05.2007, 20:56:21 |
|
| |
VEN | Дата: Суббота, 05.05.2007, 21:22:26 | Сообщение # 4 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| А что вообще значит 1 и 2 в твоем коде? Т.е. если присваиваешь игроку единицу, значит, он кого-то убил, если двойку, значит, его кто-то убил?
Сообщение отредактировал VEN - Суббота, 05.05.2007, 21:24:45 |
|
| |
DESTROYER | Дата: Воскресенье, 06.05.2007, 12:06:49 | Сообщение # 5 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| не там если 1 то не голит а если 2 то голит =) вопще по идее я вначале зделал (0) - не голит и (1) - голит но из за ошибок я попробывал вариант с 1 и 2 нечего не получилось и скинул сюда код с прозьбой
пропиши (Abort;) в совей жизни
|
|
| |
VEN | Дата: Воскресенье, 06.05.2007, 12:37:26 | Сообщение # 6 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Тогда, насколько я понял идею, следует сделать массив sifa[33], т.е. одномерный, а не двумерный. Затем ты делаешь так: sifa[killer] = 1 или sifa[victim] = 2 и так "if (sifa[killer] == 2) {"
Сообщение отредактировал VEN - Воскресенье, 06.05.2007, 12:39:25 |
|
| |
DESTROYER | Дата: Понедельник, 07.05.2007, 16:28:04 | Сообщение # 7 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| Спс... до меня наконецто дошло =) НО в игре происходит какойто глюк: при первом убийстве игра вылетает с ошибкой (SZ_GetSpace:overflow without FSB_ALLOWOVERFLOW set on server Reliable Datagram) К сообщению прикрепил полный плагин с подробнейшим объеснением структуры плагина и с соундами... пожалуйста объясните в чем проблема
пропиши (Abort;) в совей жизни
|
|
| |
VEN | Дата: Понедельник, 07.05.2007, 17:00:26 | Сообщение # 8 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Quote | в игре происходит какойто глюк: при первом убийстве игра вылетает с ошибкой | Вылетает сервер или клиент?
Сообщение отредактировал VEN - Понедельник, 07.05.2007, 17:01:19 |
|
| |
DESTROYER | Дата: Понедельник, 07.05.2007, 17:21:10 | Сообщение # 9 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| сам сервер
пропиши (Abort;) в совей жизни
|
|
| |
VEN | Дата: Понедельник, 07.05.2007, 17:28:57 | Сообщение # 10 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Тогда в различные (особенно подозрительные) области в коде вставляешь по-больше print'ов (например, используя функции server_print или log_amx) с различными текстовыми строками, описывающими, возле чего эти принты в коде находятся, чтобы по тексту сообщений потом опознать, где произошла ошибка. Затем "валишь" сервер или ждешь пока сам "свалится". Смотришь последнее сообщение в логах (если использовал log_amx функцию) или в консоли сервера. Дальше ищешь это сообщение у себя в коде и смотришь, что там рядом "подозрительного" находится. Этот метод называется debug.
Сообщение отредактировал VEN - Понедельник, 07.05.2007, 17:30:26 |
|
| |
DESTROYER | Дата: Понедельник, 07.05.2007, 18:04:20 | Сообщение # 11 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| бррр он в логи даже нечего не успевает записать кроме /*Displaying debug trace (plugin "ds_dagon.amxx") Run time error 3: stack error*/ я в тупике EDIT я одно понел... ошибка возникает ИМЕННО на событии (deathMsg) пробую изменить событие... EDIT плагин работает исправно с помощью события (damage) бальшое спасибо за помощь! Но всеравно интересно что случилось с событием (daethmsg)
пропиши (Abort;) в совей жизни
Сообщение отредактировал DESTROYER - Понедельник, 07.05.2007, 18:58:01 |
|
| |
VEN | Дата: Понедельник, 07.05.2007, 19:35:52 | Сообщение # 12 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| stack error - это скорее всего рекурсия: зацикливание при вызове какой-то функции.
|
|
| |
DESTROYER | Дата: Четверг, 10.05.2007, 20:45:15 | Сообщение # 13 |
Сержант
Группа: Пользователи
Сообщений: 39
Статус: Не в сети
| Ура ошибка с DaethMsg устранена... я просто поставил в (plugin_init) строчку (DeathMsg) на самый низ... К сообщению прикреплен гатовй плагин С подробнейшим объеснением каждой команды. еще раз спасибо за все! EDIT Тему можно закрыть
пропиши (Abort;) в совей жизни
Сообщение отредактировал DESTROYER - Четверг, 10.05.2007, 20:47:31 |
|
| |