Боты в тачку -
OKStyle - 17.06.2011
Сегодня появилась проблема: боты спавнятся, но не перемещаются по заданным координатам и не садятся в авто... Код ботов:
pawn Код:
ConnectNPC("Guard01", "blank");
ConnectNPC("Guard02", "blank");
Спавн:
pawn Код:
if(IsPlayerNPC(playerid))
{
new
BotName[MAX_PLAYER_NAME]
;
GetPlayerName(playerid, BotName, sizeof(BotName));
if(strcmp(BotName, "Guard01", false, 7) == 0)
{
SetPlayerInterior(playerid, 0);
SetPlayerSkin(playerid, 163);
SetPlayerPos(playerid, 0.0, 0.0, 3.0);
SetPlayerColor(playerid, COLOR_CORTEGE_NPC);
PutPlayerInVehicle(playerid, CortegeV[2], 1); // CortegeV[amount] - массив с тачками
}
else if(strcmp(BotName, "Guard02", false, 7) == 0)
{
SetPlayerInterior(playerid, 0);
SetPlayerSkin(playerid, 163);
SetPlayerPos(playerid, 0.0, 0.0, 3.0);
SetPlayerColor(playerid, COLOR_CORTEGE_NPC);
PutPlayerInVehicle(playerid, CortegeV[2], 1);
}
// blablabla
return 1;
}
Тачки создаются так:
pawn Код:
SetVehicleNumberPlate(CortegeV[0] = CreateVehicle(579, 1465.6664, -1723.1, 13.4, 90.0, 0, 0, -1),"GUARD 01");
SetVehicleNumberPlate(CortegeV[1] = CreateVehicle(579, 1481.8339, -1723.1, 13.4, 90.0, 0, 0, -1),"GUARD 02");
Пробовал и отдельно тачку делать:
pawn Код:
CortegeV[3] = CreateVehicle(409, 1473.9039, -1723.1, 13.4, 90.0, 0, 0, -1);
Всё равно не садятся и даже не перемещаются по координатам... Иногда даже установка цвета не работала.. Пробовал дебаг после каждого действия - после PutPlayerInVehicle ставил printf - доходит, пишет, но результата нет... Что я упустил?
Грешу на
else if, т.к. боты не всегда в правильном порядке спавнятся...
Re: Боты в тачку -
Stepashka - 17.06.2011
Вроде как ботов можно посадить только в машины созданные через addstaticvehicle.
Re: Боты в тачку -
OKStyle - 17.06.2011
Заменял на AddStaticVehicleEx и на AddStaticVehicle - всё равно не садятся... Почему-то разное их кол-во только спавнится где нужно - от 0 до 4х, остальные на 0,0,0
UPD: убрал посадку в транспорт - боты нормально отправились на свои спавны и получили свой цвет... Значит проблема в посадке.
UPD 2: проверил в консоли ID создаваемых машин... ничего не пойму, на пустом моде у них ID: 32, 33 и 34... Хотя я по константе обращался - роли не должно играть. Но при посадке в авто показывает ID 1, 2 и 3. Попробовал так:
pawn Код:
PutPlayerInVehicle(playerid, CortegeV[0]-31, 2);
Чтобы ID выровнять, но в игре цвета снова не раздались, а некоторые боты зависли на 0,0,0.
Re: Боты в тачку -
ZiGGi - 17.06.2011
странно, давным-давно делал сервис починки, где бот увозил тачку на стоянку. Создавал транспорт через CreateVehicle, ботов коннектил в ФС... Попробуй место посадки 0 поставить. Попробуй в фс бодов коннектить.
Re: Боты в тачку -
OKStyle - 17.06.2011
У меня места не только нулевые... Я сделал 3 тачки, в них на каждое место сажаю ботов. И всё это в ФС.
Re: Боты в тачку -
FL1K3R - 17.06.2011
Может я не в тему скажу или чего то не понял, но попробуй в папке npcmodes
найти скрипт для этих ботов и в нём указать:
pawn Код:
public OnNPCEnterVehicle(vehicleid, seatid)
{
StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"ИМЯ_ЗАПИСИ_АВТО");
return 1;
}
Например для водителя автобуса у меня в наличии вот эти данные:
в СКРИПТЕ (основном)
pawn Код:
ConnectNPC("bus_driver01","bus_lv");
pawn Код:
if(!strcmp(npcname,"bus_driver01",true))
{
NPC[7] = playerid;
SetPlayerColor(NPC[7],TEAM_HIT_COLOR);
SetSpawnInfo(NPC[7], 0, 71,0.0,0.0,0.0,0,0,0,0,0,0,0);
SetPlayerSkin(NPC[7], 71);
PutPlayerInVehicle(NPC[7], 707, 0);
return 1;
}
В папке npcmodes есть скрипт bus_lv.amx с содержанием
pawn Код:
public OnNPCEnterVehicle(vehicleid, seatid)
{
StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"BUS_LV_TO_SF");
return 1;
}
А в папке npcmodes/recordings/ находится файл с записаными действиями
Всё прекрасно работает
P.S. Может ты что то делаешь с SetSpawnInfo?
У меня с этой ф-цией для ботов были проблемы схожего характера
Как я понял у тебя в скрипте Сэт Спаун Инфо для ботов нет.
Попробуй добавить...
Re: Боты в тачку -
OKStyle - 17.06.2011
Всё прекрасно работало без записей. Задача состоит в том, чтобы посадить ботов в автомобиль, никаких путей я не записывал, они тут не нужны.
Re: Боты в тачку -
FL1K3R - 17.06.2011
Quote:
Originally Posted by OKStyle
Всё прекрасно работало без записей. Задача состоит в том, чтобы посадить ботов в автомобиль, никаких путей я не записывал, они тут не нужны.
|
нУ.. вобщем... попробуй тогда сделать SetSpawnInfo(BOT_ID, и т.д.) для каждого бота
Re: Боты в тачку -
OKStyle - 17.06.2011
В спавнИнфо не содержится информации, связанной с авто... Не вижу логической связи, но попробую, вдруг чудеса.
Re: Боты в тачку -
DANGER1979 - 17.06.2011
Тут наверняка наивная ошибка.
Возможно, подключены другие скрипты или инклюды, которые дают помехи.
Возможно в самом моде не стоит проверка, чтобы дальнейший код распространялся только на людей, а не на ботов.
Короче версий много ищи.