Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Статус
В этой теме нельзя размещать новые ответы.
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
Доброго времени суток. Мне нужно помочь с этой системой. На данный момент она просто спавнит воздушный шар и все. Мне нужно сделать когда игрок покидает воздушный шар, то шар автоматически пропадал и в чат писалось: Вы покинули Ваш Воздушный шар, и он был удален.

Pawn:
CMD:vozdush(playerid)
{
    if(!PI[playerid][pShar]) return ErrorMessage(playerid, "Ó âàñ íåòó âîçäóøíîãî øàðà. Êóïèòü åãî ìîæíî â /donate");
    CreateVozdushShar(playerid,19338);
    return true;
}
stock CreateVozdushShar(playerid,idobj)
{
    if(GetPlayerState(playerid)!=1) return ErrorMessage(playerid, "Âû óæå íàõîäèòåñü â òðàíñïîðòå!");
       if(GetPlayerInterior(playerid) > 0) return ErrorMessage(playerid, "Èñïîëüçîâàòü â èíòåðüåðå íåëüçÿ!");
    if(PI[playerid][plveh]!=-1)DestroyVehicle(PI[playerid][plveh]);
    new Float:X, Float:Y, Float:Z, Float:A;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    new yourvehicleid, Text3D:vehicletext;
    yourvehicleid = AddStaticVehicle(487, X, Y, Z, A, -1, -1);
    LinkVehicleToInterior(yourvehicleid, 100);
    VehInfo[yourvehicleid][vLock] = false;
    VehInfo[yourvehicleid][vEngine] = false;
    VehInfo[yourvehicleid][vLamp] = false;
    VehInfo[yourvehicleid][vFuel] = 200.0;
    DestroyDynamicObject(objectshar[playerid]);
    objectshar[playerid] = CreateDynamicObject(idobj, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.000000);
    AttachDynamicObjectToVehicle(objectshar[playerid], yourvehicleid, 0.000000, -0.000000, -1.000000, 0.000000, 0.000000, -0.000000);
    PutPlayerInVeh(playerid, yourvehicleid, 0);
    vehicletext = Create3DTextLabel(""SERVER"Âîçäóøíûé øàð 'IceLand'\n\n{FFBF00}Âîéòè: {FFFFFF}'F'\n\n{FFBF00}×òîáû çàíÿòü ïàññàæèðñêîå ìåñòî: {FFFFFF}`G`", -1, 7.77, 7.77, 7.77, 300.0, 0, 1 ); // Ñîçäà¸ì òåêñò
    Attach3DTextLabelToVehicle( vehicletext, yourvehicleid, 0.0, 0.0, 2.0 );
    return true;
}
 
Решение
C++:
stock CreateVozdushShar(playerid, idobj)
{
    if(GetPlayerState(playerid)!=1) return ErrorMessage(playerid, "Вы уже находитесь в транспорте!");
    if(GetPlayerInterior(playerid) > 0) return ErrorMessage(playerid, "Использовать в интерьере нельзя!");
    if(PI[playerid][plveh]!=-1)DestroyVehicle(PI[playerid][plveh]);
    new Float:X, Float:Y, Float:Z, Float:A;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    new Text3D:vehicletext;
    vehicle_shar[playerid] = AddStaticVehicle(487, X, Y, Z, A, -1, -1);
    LinkVehicleToInterior(vehicle_shar[playerid], 100);
    VehInfo[vehicle_shar[playerid]][vLock] = false;
    VehInfo[vehicle_shar[playerid]][vEngine] = false...
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
865
@KEFER, всё верно подсказали, это OnPlayerExitVehicle. Создавайте глобальную переменную, в которой будет записан порядковый ID транспорта на сервере. в OnPlayerExitVehicle делаете проверку и удаляете.
 
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
@KEFER, всё верно подсказали, это OnPlayerExitVehicle. Создавайте глобальную переменную, в которой будет записан порядковый ID транспорта на сервере. в OnPlayerExitVehicle делаете проверку и удаляете.
как это должно выглядеть, можешь показать? Я недавно в pawn, учусь, смотрю как и что.
 
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
865
@KEFER,
C++:
new vehicle_shar[MAX_PLAYERS];

stock CreateVozdushShar(playerid,idobj)
{
    if(GetPlayerState(playerid)!=1)
        return ErrorMessage(playerid, "Âû óæå íàõîäèòåñü â òðàíñïîðòå!");
    if(GetPlayerInterior(playerid) > 0)
        return ErrorMessage(playerid, "Èñïîëüçîâàòü â èíòåðüåðå íåëüçÿ!");
    if(PI[playerid][plveh]!=-1)
        DestroyVehicle(PI[playerid][plveh]);
        
    new Float:X, Float:Y, Float:Z, Float:A;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    new Text3D:vehicletext;
    vehicle_shar[playerid] = AddStaticVehicle(487, X, Y, Z, A, -1, -1);
    LinkVehicleToInterior(vehicle_shar[playerid], 100);
    VehInfo[vehicle_shar[playerid]][vLock] = false;
    VehInfo[vehicle_shar[playerid]][vEngine] = false;
    VehInfo[vehicle_shar[playerid]][vLamp] = false;
    VehInfo[vehicle_shar[playerid]][vFuel] = 200.0;
    DestroyDynamicObject(objectshar[playerid]);
    objectshar[playerid] = CreateDynamicObject(idobj, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.000000);
    AttachDynamicObjectToVehicle(objectshar[playerid], vehicle_shar[playerid], 0.000000, -0.000000, -1.000000, 0.000000, 0.000000, -0.000000);
    PutPlayerInVeh(playerid, yourvehicleid, 0);
    vehicletext = Create3DTextLabel(""SERVER"Âîçäóøíûé øàð 'IceLand'\n\n{FFBF00}Âîéòè: {FFFFFF}'F'\n\n{FFBF00}×òîáû çàíÿòü ïàññàæèðñêîå ìåñòî: {FFFFFF}`G`", -1, 7.77, 7.77, 7.77, 300.0, 0, 1 ); // Ñîçäà¸ì òåêñò
    Attach3DTextLabelToVehicle( vehicletext, vehicle_shar[playerid], 0.0, 0.0, 2.0 );
    return true;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(GetPlayerVehicleID(playerid) == vehicle_shar[playerid]) {
        VehInfo[vehicle_shar[playerid]][vLock] = false;
        VehInfo[vehicle_shar[playerid]][vEngine] = false;
        VehInfo[vehicle_shar[playerid]][vLamp] = false;
        VehInfo[vehicle_shar[playerid]][vFuel] = 200.0;
        DestroyDynamicObject(objectshar[playerid]);
        DestroyVehicle(vehicle_shar[playerid]);
    }
    return 1;
}
 
Пользователь
Регистрация
25 Окт 2023
Сообщения
81
@KEFER,
C++:
new vehicle_shar[MAX_PLAYERS];

stock CreateVozdushShar(playerid,idobj)
{
    if(GetPlayerState(playerid)!=1)
        return ErrorMessage(playerid, "Âû óæå íàõîäèòåñü â òðàíñïîðòå!");
    if(GetPlayerInterior(playerid) > 0)
        return ErrorMessage(playerid, "Èñïîëüçîâàòü â èíòåðüåðå íåëüçÿ!");
    if(PI[playerid][plveh]!=-1)
        DestroyVehicle(PI[playerid][plveh]);
      
    new Float:X, Float:Y, Float:Z, Float:A;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    new Text3D:vehicletext;
    vehicle_shar[playerid] = AddStaticVehicle(487, X, Y, Z, A, -1, -1);
    LinkVehicleToInterior(vehicle_shar[playerid], 100);
    VehInfo[vehicle_shar[playerid]][vLock] = false;
    VehInfo[vehicle_shar[playerid]][vEngine] = false;
    VehInfo[vehicle_shar[playerid]][vLamp] = false;
    VehInfo[vehicle_shar[playerid]][vFuel] = 200.0;
    DestroyDynamicObject(objectshar[playerid]);
    objectshar[playerid] = CreateDynamicObject(idobj, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.000000);
    AttachDynamicObjectToVehicle(objectshar[playerid], vehicle_shar[playerid], 0.000000, -0.000000, -1.000000, 0.000000, 0.000000, -0.000000);
    PutPlayerInVeh(playerid, yourvehicleid, 0);
    vehicletext = Create3DTextLabel(""SERVER"Âîçäóøíûé øàð 'IceLand'\n\n{FFBF00}Âîéòè: {FFFFFF}'F'\n\n{FFBF00}×òîáû çàíÿòü ïàññàæèðñêîå ìåñòî: {FFFFFF}`G`", -1, 7.77, 7.77, 7.77, 300.0, 0, 1 ); // Ñîçäà¸ì òåêñò
    Attach3DTextLabelToVehicle( vehicletext, vehicle_shar[playerid], 0.0, 0.0, 2.0 );
    return true;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(GetPlayerVehicleID(playerid) == vehicle_shar[playerid]) {
        VehInfo[vehicle_shar[playerid]][vLock] = false;
        VehInfo[vehicle_shar[playerid]][vEngine] = false;
        VehInfo[vehicle_shar[playerid]][vLamp] = false;
        VehInfo[vehicle_shar[playerid]][vFuel] = 200.0;
        DestroyDynamicObject(objectshar[playerid]);
        DestroyVehicle(vehicle_shar[playerid]);
    }
    return 1;
}
: error 035: argument type mismatch (argument 2)

Код:
stock CreateVozdushShar(playerid,idobj)
{
    if(GetPlayerState(playerid)!=1) return ErrorMessage(playerid, "Вы уже находитесь в транспорте!");
    if(GetPlayerInterior(playerid) > 0) return ErrorMessage(playerid, "Использовать в интерьере нельзя!");
    if(PI[playerid][plveh]!=-1)DestroyVehicle(PI[playerid][plveh]);
    new Float:X, Float:Y, Float:Z, Float:A;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    new Text3D:vehicletext;
    vehicle_shar[playerid] = AddStaticVehicle(487, X, Y, Z, A, -1, -1);
    LinkVehicleToInterior(vehicle_shar[playerid], 100);
    VehInfo[vehicle_shar[playerid]][vLock] = false;
    VehInfo[vehicle_shar[playerid]][vEngine] = false;
    VehInfo[vehicle_shar[playerid]][vLamp] = false;
    VehInfo[vehicle_shar[playerid]][vFuel] = 200.0;
    DestroyDynamicObject(objectshar[playerid]);
    objectshar[playerid] = CreateDynamicObject(idobj, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.000000);
    AttachDynamicObjectToVehicle(objectshar[playerid], vehicle_shar[playerid], 0.000000, -0.000000, -1.000000, 0.000000, 0.000000, -0.000000);
    PutPlayerInVeh(playerid, vehicle_shar, 0);
    vehicletext = Create3DTextLabel(""SERVER"Воздушный шар 'IceLand'\n\n{FFBF00}Войти: {FFFFFF}'F'\n\n{FFBF00}Чтобы занять пассажирское место: {FFFFFF}`G`", -1, 7.77, 7.77, 7.77, 300.0, 0, 1 ); // Создаём текст
    Attach3DTextLabelToVehicle( vehicletext, vehicle_shar[playerid], 0.0, 0.0, 2.0 );
    return true;
}
 
Последнее редактирование:
Создатель WayDev
Команда форума
Администратор
Регистрация
13 Мар 2022
Сообщения
865
C++:
stock CreateVozdushShar(playerid, idobj)
{
    if(GetPlayerState(playerid)!=1) return ErrorMessage(playerid, "Вы уже находитесь в транспорте!");
    if(GetPlayerInterior(playerid) > 0) return ErrorMessage(playerid, "Использовать в интерьере нельзя!");
    if(PI[playerid][plveh]!=-1)DestroyVehicle(PI[playerid][plveh]);
    new Float:X, Float:Y, Float:Z, Float:A;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    new Text3D:vehicletext;
    vehicle_shar[playerid] = AddStaticVehicle(487, X, Y, Z, A, -1, -1);
    LinkVehicleToInterior(vehicle_shar[playerid], 100);
    VehInfo[vehicle_shar[playerid]][vLock] = false;
    VehInfo[vehicle_shar[playerid]][vEngine] = false;
    VehInfo[vehicle_shar[playerid]][vLamp] = false;
    VehInfo[vehicle_shar[playerid]][vFuel] = 200.0;
    DestroyDynamicObject(objectshar[playerid]);
    objectshar[playerid] = CreateDynamicObject(idobj, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.000000);
    AttachDynamicObjectToVehicle(objectshar[playerid], vehicle_shar[playerid], 0.000000, -0.000000, -1.000000, 0.000000, 0.000000, -0.000000);
    PutPlayerInVeh(playerid, vehicle_shar[playerid], 0);
    vehicletext = Create3DTextLabel(""SERVER"Воздушный шар 'IceLand'\n\n{FFBF00}Войти: {FFFFFF}'F'\n\n{FFBF00}Чтобы занять пассажирское место: {FFFFFF}`G`", -1, 7.77, 7.77, 7.77, 300.0, 0, 1 ); // Создаём текст
    Attach3DTextLabelToVehicle( vehicletext, vehicle_shar[playerid], 0.0, 0.0, 2.0 );
    return true;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху