PDA

Просмотр полной версии : [Вопрос] Неадекватный NPC



Edwin
04.10.2016, 18:08
Ребята, кто разбирается в NPC, может кто объяснить, что происходит с моим ботом?
В общем, в моде 8 ботов, все из них водители автобусов. Самый первый из них, то бишь, кому сервер выдаёт id 0, ведёт себя так, как будто его обидели: как только попадаешь в его зону стрима, автобус резко останавливается и стоит на одном месте. Сама запись пути проигрывается, но движения автобуса нет.
Позже, видимо, когда по записи бот выезжает из моей зоны стрима, автобус пропадает, и они снова спокойненько едут по своему маршруту, пока в зону видимости опять кто-нибудь не попадёт. Тогда автобус снова становится и не двигается
А остальные 7 ботов работают нормально...

http://s020.radikal.ru/i702/1610/e9/5bef29b354aa.png

Geebrox
04.10.2016, 23:18
Без кода вряд ли поможем

P.S. проверьте колбеки OnPlayerStreamIn | OnPlayerStreamOut | OnVehicleStreamIn | OnVehicleStreamOut

Edwin
05.10.2016, 08:48
Так а кода-то толком никакого и нет.. Все NPC стандартные, над ними действия только: коннект (ConnectNPC), посадка в транспорт, да присвоение цвета нику, и ещё в паре мест блокировка действий над ними такого типа:

if(IsPlayerNPC(playerid)) return 1;
Это в OnPlayerConnect, OnPlayerStreamIn/Out, OnVehicleStreamIn/Out, секундный таймер, OnPlayerUpdate, OnPlayerEnterVehicle, ну и в нескольких командах.
На OnPlayerSpawn у них отдельные действия

Geebrox
05.10.2016, 15:23
Так а кода-то толком никакого и нет.. Все NPC стандартные, над ними действия только: коннект (ConnectNPC), посадка в транспорт, да присвоение цвета нику, и ещё в паре мест блокировка действий над ними такого типа:

if(IsPlayerNPC(playerid)) return 1;
Это в OnPlayerConnect, OnPlayerStreamIn/Out, OnVehicleStreamIn/Out, секундный таймер, OnPlayerUpdate, OnPlayerEnterVehicle, ну и в нескольких командах.
На OnPlayerSpawn у них отдельные действия

а Вы уверены что этот код не стоит там где идет запись маршрута, может в секундном таймере, из за этого может и останавливается NPC

Edwin
05.10.2016, 21:26
Да уверен, в том-то и дело.. почему он реагирует только на id 0?
Запись маршрута проигрывается автоматически на стороне сервера

Edwin
10.10.2016, 19:40
Никто не знает?

Redsan
10.10.2016, 19:56
Никто не знает?

Тут экстрасенсов нет, покажите код.

Edwin
13.10.2016, 10:50
Да какой код вам не понятен?



// OnGameModeInit
SetTimer("BotConnect", 100, false);

void BotConnect()
{
ConnectNPC("Borat_Venchenso", "Route1");
ConnectNPC("Fedor_Bates", "Route2");
ConnectNPC("Andy_Larkin", "Route3");
ConnectNPC("Luigi_Capone", "Route32");
ConnectNPC("Raphael", "Route4");
ConnectNPC("Mickelangelo", "Route42");
ConnectNPC("Donatello", "Route5");
ConnectNPC("Leonardo", "Route52");
return 1;
}
Я же говорю: всё просто, обычный коннект

ziggi
13.10.2016, 11:51
Да какой код вам не понятен?


Код из npcmodes.

Edwin
14.10.2016, 10:51
Код из npcmodes.

Он работает
Я подключал на место этого бота ещё одного, просто, стоячего, что бы он занимал слот id 0, и тогда все остальные 8 катались нормально, как надо

Edwin
17.10.2016, 17:28
Ну раз никто не знает, закройте, пожалуйста