Функции по сазданию персональных авто.
#1

Доброго времени суток.
Решил на серере создать "персональное авто", тоесть на каждого игрока выделяется по 1 машине, не важно какой мадели, главное она должна быть одна.

Хотел решить проблему, созданием авто с переменной, тоесть например:

PHP код:
            RCarId[playerid] = CreateVehicle(Player[playerid][pCarid2], Player[playerid][pPos_x],Player[playerid][pPos_y],Player[playerid][pPos_z]+5random(360), GetPVarInt(playerid,"Color"), GetPVarInt(playerid,"Color"), -1); 
Я сделал, если человек берет другое авто (есть спецаиальная менюшка)
то
PHP код:
DestroyVehicle(RCarId[playerid]); 
Тоесть сносим старое, и на его место ставим новое.

Но вот парадокс, игроки начали жаловатся (в скоре после установки данной "системы")
что их авто проподает, когда другой игрок создает своё авто.

Может ли быть данное явление вызвано тем, что сервер пытается "Дестроить" авто игрока, но его пока не существует? (тоесть "RCarId[playerid]" ещё не создали, а уже пытаемся его удалить)?

И как проверить, создано ли авто с данной переменной? (кроме как создания "паралельной" переменной, которая будет менятся в зависимости от того, создано авто или нет)
Reply
#2

Проверка на модель или координаты может сработать.
Reply
#3

Проверь чтобы переменная RCarId[playerid] обнулялась при дисконнекте/коннекте игрока.

Баги нужно исправлять, а не обходить глупыми проверками.
Reply
#4

Не нужно её обнулять, авто и игрок с ID 0 вполне себе может существовать на сервере. Нужно ставить -1 или использовать PVar'ы.
Reply
#5

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Не нужно её обнулять, авто и игрок с ID 0 вполне себе может существовать на сервере. Нужно ставить -1 или использовать PVar'ы.
Нумерация транспорта начинается с 1.
Reply
#6

PHP код:
И как проверитьсоздано ли авто с данной переменной? (кроме как создания "паралельной" переменнойкоторая будет менятся в зависимости от тогосоздано авто или нет
реал, не?
Reply
#7

Quote:
Originally Posted by Gettopro
Посмотреть сообщение
PHP код:
И как проверитьсоздано ли авто с данной переменной? (кроме как создания "паралельной" переменнойкоторая будет менятся в зависимости от тогосоздано авто или нет
реал, не?
Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Проверка на модель или координаты может сработать.
Читал, не?
Reply
#8

Тоесть типо:
PHP код:
if(Player[playerid][pCarid2] == GetVehicleModel(CurrentSpawnedVehicle[playerid])) {DestroyVehicle(CurrentSpawnedVehicle[playerid]);} 
З.Ы. CurrentSpawnedVehicle - это переменная нашей тачки, но этот вариант не стоит использовать, ТК у меня дрифт сервер, и 80% онлайна на элегиях :/ А вот проверку на координату можно, только я не совсем понял как вы её предлогаете сделать?
З.Ы.Ы. Player[playerid][pCarid2] - это значение соответсвует модели последней созданной им тачки
типо:
PHP код:
new Float:coord[3]; GetVehiclePos(CurrentSpawnedVehicle[playerid], coord[0], coord[1], coord[2]); 
это я понял, а что дальше? (например если игрок вне авто) :/
Reply
#9

Как ты можешь разрабатывать систему, если даже не представляешь как она должна работать?

ЗЫ за ещё один "ап" удалю тему!
Reply
#10

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Как ты можешь разрабатывать систему, если даже не представляешь как она должна работать?

ЗЫ за ещё один "ап" удалю тему!
я представляю, я уже даже её сделал, но не могу добится чтоб у игроков не пропадали авто, в то в время как другой вызывает своё.
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)