SA-MP Forums Archive
[FilterScript] Tank Lights System - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+----- Forum: Релизы/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=66)
+----- Thread: [FilterScript] Tank Lights System (/showthread.php?tid=422624)



Tank Lights System - OKStyle - 14.03.2013



В синглплеере присутствует баг, когда в тёмное время суток фары на танке не горят. В мультиплеере, соответственно, фиксить это не стали. В данном скрипте я исправил это недоразумение.

Система полностью автоматизирована и работает по принципу обычных фар в синглплеере, т.е. они сами включаются в тёмное время суток, гаснут при выходе из танка.

Для удобства я добавил ещё 2 команды: на включение и выключение фар. Включенные вручную фары горят всегда, пока не перезайдёшь в танк или не выключишь их вручную.

TANK_LIGHTS_SYNC_DELAY - время обновления аттача, отрегулируйте в зависимости от вашего обновления времени. По-умолчанию стоит 30 секунд, согласно стандартному, т.е. 1 минута реального времени = 1 час игрового.

Обновлено: убраны 3 танка, теперь фонари будут работать на всех танках вашего сервера, исправлены незначительные баги.

Code:
/tlon - включить
/tloff - выключить
/tld - выключить ручное управление фарами
/time - установить время
Pastebin: http://pastebin.com/YxWP3Fbi


Re: Tank Lights System - stabker - 16.03.2013

Только пробежался по коду, особо не присматривался, но есть несколько вопросов.

1. ID таймера и созданного объекта хранятся в char переменных, разве это все будет нормально работать, если возвращенный ид > 255?

2. Массив объявлен tlight[MAX_PLAYERS * 2 char], а используется tlight{playerid + 1000}, по-умолчанию MAX_PLAYERS == 500, произойдет обращение к несуществующей ячейке. Скорее всего нужно так tlight{playerid + MAX_PLAYERS} ?

3. Разве
pawn Code:
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 432) return 1;
будет правильно работать, если
pawn Code:
oldstate == PLAYER_STATE_DRIVER && newstate != PLAYER_STATE_DRIVER
?

4. С читами таймер можно будет запустить несколько раз и несколько раз создать объекты.

5. Не логичнее ли создавать таймер для каждого танка отдельно, чем для игрока?


Re: Tank Lights System - OKStyle - 17.03.2013

Quote:
Originally Posted by stabker
View Post
1. ID таймера и созданного объекта хранятся в char переменных, разве это все будет нормально работать, если возвращенный ид > 255?
Протестируете - скажете, я не могу точно сказать.

Quote:
Originally Posted by stabker
View Post
2. Массив объявлен tlight[MAX_PLAYERS * 2 char], а используется tlight{playerid + 1000}, по-умолчанию MAX_PLAYERS == 500, произойдет обращение к несуществующей ячейке. Скорее всего нужно так tlight{playerid + MAX_PLAYERS} ?
Ну да, тут я просто основывался на билде в 1000p. Конечно, с MAX_PLAYERS будет целесообразнее.

Quote:
Originally Posted by stabker
View Post
3. Разве
pawn Code:
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 432) return 1;
будет правильно работать, если
pawn Code:
oldstate == PLAYER_STATE_DRIVER && newstate != PLAYER_STATE_DRIVER
?
Попробуйте в игре и скажете.

Quote:
Originally Posted by stabker
View Post
4. С читами таймер можно будет запустить несколько раз и несколько раз создать объекты.
Они при запуске таймера удаляются. Ну и скрипт априори не расчитывался на читеров.

Quote:
Originally Posted by stabker
View Post
5. Не логичнее ли создавать таймер для каждого танка отдельно, чем для игрока?
Танков может быть 2000, а игроков - не больше 1000.


Re: Tank Lights System - Makar93 - 17.03.2013

А среди спрайтов в samp.img нет ли текстур света от фар? Если еще и их приаттачить, то от сингла вообще не отличить будет