Боты в тачку
#1



Сегодня появилась проблема: боты спавнятся, но не перемещаются по заданным координатам и не садятся в авто... Код ботов:
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, т.к. боты не всегда в правильном порядке спавнятся...
Reply
#2

Вроде как ботов можно посадить только в машины созданные через addstaticvehicle.
Reply
#3

Заменял на 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.
Reply
#4

странно, давным-давно делал сервис починки, где бот увозил тачку на стоянку. Создавал транспорт через CreateVehicle, ботов коннектил в ФС... Попробуй место посадки 0 поставить. Попробуй в фс бодов коннектить.
Reply
#5

У меня места не только нулевые... Я сделал 3 тачки, в них на каждое место сажаю ботов. И всё это в ФС.
Reply
#6

Может я не в тему скажу или чего то не понял, но попробуй в папке 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/ находится файл с записаными действиями
Код:
BUS_LV_TO_SF.rec
Всё прекрасно работает

P.S. Может ты что то делаешь с SetSpawnInfo?
У меня с этой ф-цией для ботов были проблемы схожего характера
Как я понял у тебя в скрипте Сэт Спаун Инфо для ботов нет.
Попробуй добавить...
Reply
#7

Всё прекрасно работало без записей. Задача состоит в том, чтобы посадить ботов в автомобиль, никаких путей я не записывал, они тут не нужны.
Reply
#8

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Всё прекрасно работало без записей. Задача состоит в том, чтобы посадить ботов в автомобиль, никаких путей я не записывал, они тут не нужны.
нУ.. вобщем... попробуй тогда сделать SetSpawnInfo(BOT_ID, и т.д.) для каждого бота
Reply
#9

В спавнИнфо не содержится информации, связанной с авто... Не вижу логической связи, но попробую, вдруг чудеса.
Reply
#10

Тут наверняка наивная ошибка.
Возможно, подключены другие скрипты или инклюды, которые дают помехи.
Возможно в самом моде не стоит проверка, чтобы дальнейший код распространялся только на людей, а не на ботов.

Короче версий много ищи.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)