Проблема с командой. помогите!

Описание: Вопросы по скриптингу (Излагай ясно, проси мало, уходи быстро)
Модератор: SJplayer

Elchin
Автор темы, Рядовой
Рядовой
Аватара
Elchin
Автор темы, Рядовой
Рядовой
Сообщения: 12
Зарегистрирован: 30 июня 2014
С нами: 9 лет 8 месяцев

#1 Elchin » 30 июня 2014, 17:35

в моде есть кодманда /v (управление машиной) которая открывает диалог рядом с машиной либо внутри машины,в котором можно "припарковать авто, изменить цвет, продать и т.д."
она предназначено для хозяев авто. Я решил эту команду сделать доступной так же и для ДПС, для того чтобы они могли парковать авто на штрафстоянке и спавнились там. я скопировал полностью эту команду и сделал доступной для ДПС. но в команде что то не так, введя команду ДПСником /dp выходит тот же диалог, нажав на "припарковать" в чате прописывается авто припарковано, но после /spawcars авто оказывается на том же месте где его припарковал хозяин. меня интересует только "припарковать" остальное не важно. что с командой не так подскажите пожалуйста

диалог

Код: Выделить всё

else if(!strcmp(cmd, "/dp", true))
{

if(
PlayerInfo[playerid] [pMember] != PATRUL_ORG) return SendClientMessage(playerid, COLOR_GREEN, "Ты не являешься сотрудником ДПС!");
new Float:POS[3];
for(
new i=0;i<MAX_VEHICLES;i++)
{
GetVehiclePos(i, POS[0], POS[1], POS[2]);
if(
PlayerToPoint (playerid, 5, POS[0], POS[1], POS[2]))
{
ShowDialog(playerid, BUYCAR_ID+12, DIALOG_STYLE_LIST, "Управление машиной для ДПС", "\
[1] Убрать тюнинг\n\
[2] Припарковаться\n\
[3] Сменить цвет\n\
[4] Продать машину\
"
, "Выбрать", "Отмена");
}
}
return 1;


сама команда

Код: Выделить всё

else if(dialogid == BUYCAR_ID+12)
{
if(
response)
{
new vehicleid = PlayerInfo[playerid][pMember],Float:POS[4];
GetVehiclePos(vehicleid, POS[0], POS[1], POS[2]);
new engine,lights,alarm,doors,bonnet,boot,blink,object ive,fuel,Float:health;
new seat = -1,bool:enge,bool:ligt;
switch(
listitem)
{

case 0:
{
if(
IsPlayerInVehicle(playerid, vehicleid)) seat = GetPlayerVehicleSeat(playerid);
if(
VehicleEngine[vehicleid]) enge = true;
if(
VehicleLights[vehicleid]) ligt = true;
if(
GetStrobesMode[vehicleid] != 0) blink = GetStrobesMode[vehicleid];
fuel = VehicleFuel[vehicleid];
GetVehicleHealth(vehicleid, health);
GetVehiclePos(vehicleid, POS[0], POS[1], POS[2]);
GetVehicleZAngle(vehicleid, POS[3]);
SendClientMessage(playerid, COLOR_WHITE, "Весь тюнинг твоей купленной машины был удалён");
RemoveVehicleTuning(vehicleid);
SetVehicleToRespawn(vehicleid);
SetVehiclePos(vehicleid, POS[0], POS[1], POS[2]);
SetVehicleZAngle(vehicleid, POS[3]);
if(
enge)
{
VehicleEngine[vehicleid] = true;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,true,lights,alarm,doo rs,bonnet,boot,objective);
}
if(
ligt)
{
VehicleLights[vehicleid] = true;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,true,alarm,doo rs,bonnet,boot,objective);
}
VehicleFuel[vehicleid] = fuel;
SetVehicleHealth(vehicleid, health);
if(
seat != -1) PutPlayerInVehicle(playerid, vehicleid, seat);
if(
blink != 0) GetStrobesMode[vehicleid] = blink;
}
case 1:
{
GetVehiclePos(playerid, POS[0], POS[1], POS[2]);
GetVehicleZAngle(vehicleid, POS[3]);
VehicleInfo[vehicleid][vSpw][0] = POS[0];
VehicleInfo[vehicleid][vSpw][1] = POS[1];
VehicleInfo[vehicleid][vSpw][2] = POS[2];
VehicleInfo[vehicleid][vSpw][3] = POS[3];
VehicleInfo[vehicleid][vParked] = 1;
SendClientMessage(playerid, COLOR_WHITE, "Машина успешно припаркована");
}
case 2:
{
new stringcolor[2000];
f(stringcolor, "Введи желаемый номер цвета для вашей машины\n\n\
{FFFFFF}%s%s%s%s%s%s%s\n\n\
{FFFFFF}Стоимость смены цвета машины стоит 200$\
"
, carcolors[0], carcolors[1], carcolors[2], carcolors[3], carcolors[4], carcolors[5], carcolors[6]);
ShowDialog(playerid, BUYCAR_ID+2, DIALOG_STYLE_INPUT, "Смена цвета машины", stringcolor, "Ок", "Отмена");
}
case 3:
{
f(string, "\
Ты действительно хочешь продать свою машину за %d$?\
"
, floatround(VehicleInfo[vehicleid][vPrice]/100*80));
ShowDialog(playerid, BUYCAR_ID+3, DIALOG_STYLE_MSGBOX, "Продажа машины", string, "Да", "Нет");
}
}
}
return 1;
}



паблик от команды /v(для хозяев авто) как я понял нужно что то сюда добавить

Код: Выделить всё

public OnVehicleSpawn(vehicleid)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
for(
new i=0; i<4; i++)
{
if(
vehicleid == POLICE[i]) AttachObjectToVehicle(MIG[i], POLICE[i], 0.000000, -0.074999, 0.824999, 0.000000, 0.000000, 0.000000);
}


if(
IsEngineCar(vehicleid))
{
VehicleEngine[vehicleid] = false;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,false,false,alarm,doo rs,bonnet,boot,objective);
}
else
{
VehicleEngine[vehicleid] = true;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,true,false,alarm,door s,bonnet,boot,objective);
}
if(
IsFuelCar(vehicleid)) VehicleFuel[vehicleid] = 50+random(50);
else VehicleFuel[vehicleid] = 100;
VehicleLights[vehicleid] = false;
RefuelVehicle[vehicleid] = false;
VehicleCrashed[vehicleid] = false;
VehicleEndeng[vehicleid] = true;
GetRouteBus[vehicleid] = 0;
VehicleRadio[vehicleid] = 0;
GetInfoMode[vehicleid] = 0;
GetStrobesMode[vehicleid] = 0;
for(
new i=0; i<8; i++)
{
VehiclePassenger[vehicleid][i] = INVALID_VEHICLE_ID ;
}
if(
IsSchoolCar(vehicleid)) VehicleLimitSpeed[vehicleid] = true;
else VehicleLimitSpeed[vehicleid] = false;
if(
VehicleInfo[vehicleid][vBuyed] == 1)
{
SetVehiclePos(vehicleid, VehicleInfo[vehicleid][vSpw][0], VehicleInfo[vehicleid][vSpw][1], VehicleInfo[vehicleid][vSpw][2]);
SetVehicleZAngle(vehicleid, VehicleInfo[vehicleid][vSpw][3]);
}
if(
GetVehicleHouse[vehicleid] != 0 || VehicleInfo[vehicleid][vBuyed] == 1) OnTuning(vehicleid);
if(
GetVehicleHouse[vehicleid] != 0)
{
VehicleLock[vehicleid] = true;
BootVehicleLock[vehicleid] = true;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,lights,alarm,t rue,bonnet,boot,objective);
}
else
{
if(
IsBuildCar(vehicleid))
{
VehicleLock[vehicleid] = true;
BootVehicleLock[vehicleid] = true;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,lights,alarm,t rue,bonnet,boot,objective);
}
else
{
if(
random(100) < 50 && IsCityCar(vehicleid) && IsLockedCar(vehicleid))
{
VehicleLock[vehicleid] = true;
BootVehicleLock[vehicleid] = true;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,lights,alarm,t rue,bonnet,boot,objective);
}
else
{
if(
VehicleInfo[vehicleid][vLocked][0] == 1)
{
VehicleLock[vehicleid] = true;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,lights,alarm,t rue,bonnet,boot,objective);
}
else
{
VehicleLock[vehicleid] = false;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,d oors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,engine,lights,alarm,f alse,bonnet,boot,objective);
}
if(
VehicleInfo[vehicleid][vLocked][1] == 1) BootVehicleLock[vehicleid] = true;
else BootVehicleLock[vehicleid] = false;
}
}
}
VehicleInfo[vehicleid][vDrugs] = 0;
VehicleInfo[vehicleid][vMoney] = 0;
VehicleInfo[vehicleid][vGun][0] = 0;
VehicleInfo[vehicleid][vGun][1] = 0;
VehicleInfo[vehicleid][vGun][2] = 0;
VehicleInfo[vehicleid][vGun][3] = 0;
VehicleInfo[vehicleid][vGun][4] = 0;
VehicleInfo[vehicleid][vMats] = 0;
VehicleInfo[vehicleid][vArmour] = 0.0;
return 1;
}


Дим M
Администратор
Администратор
Аватара
Дим M
Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#2 Дим » 30 июня 2014, 18:31

Этот код узнаёт позицию авто и записывает координаты в переменные

Код: Выделить всё

GetVehiclePos(playeridPOS[0], POS[1], POS[2]);
GetVehicleZAngle(vehicleidPOS[3]);
VehicleInfo[vehicleid][vSpw][0] = POS[0];
VehicleInfo[vehicleid][vSpw][1] = POS[1];
VehicleInfo[vehicleid][vSpw][2] = POS[2];
VehicleInfo[vehicleid][vSpw][3] = POS[3];
VehicleInfo[vehicleid][vParked] = 1
[center]i love you [s]mxIni[/s] Mysql[/center]

Elchin
Автор темы, Рядовой
Рядовой
Аватара
Elchin
Автор темы, Рядовой
Рядовой
Сообщения: 12
Зарегистрирован: 30 июня 2014
С нами: 9 лет 8 месяцев

#3 Elchin » 30 июня 2014, 19:08

и что изменить чтобы команды была доступной для PATRUL_ORG?

Sprite M
Ст. сержант
Ст. сержант
Аватара
Sprite M
Ст. сержант
Ст. сержант
Сообщения: 83
Зарегистрирован: 5 июня 2013
С нами: 10 лет 9 месяцев

#4 Sprite » 30 июня 2014, 19:11

Наверно надо сделать отдельный диалог и команду для ДПС, и сделать типа защиты - если на штраф стоянке - то владелец не может забрать, пока ДПС не отпустит :smile:

Дим M
Администратор
Администратор
Аватара
Дим M
Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#5 Дим » 30 июня 2014, 19:25

Попробуй такую команду

Код: Выделить всё

else if(!strcmp(cmd, "/park", true))
{

if(
PlayerInfo[playerid] [pMember] != PATRUL_ORG) return SendClientMessage(playerid, COLOR_GREEN, "Ты не являешься сотрудником ДПС!");
new Float:POS[3];
for(
new i=0;i<MAX_VEHICLES;i++)
{
GetVehiclePos(i, POS[0], POS[1], POS[2]);
if(
PlayerToPoint (playerid, 5, POS[0], POS[1], POS[2]))
{
GetVehiclePos(playerid, POS[0], POS[1], POS[2]);
GetVehicleZAngle(vehicleid, POS[3]);
VehicleInfo[vehicleid][vSpw][0] = POS[0];
VehicleInfo[vehicleid][vSpw][1] = POS[1];
VehicleInfo[vehicleid][vSpw][2] = POS[2];
VehicleInfo[vehicleid][vSpw][3] = POS[3];
VehicleInfo[vehicleid][vParked] = 1;
VehicleInfo[vehicleid][vParkedLok] = 1;// заблокировать для пользователя (добавить переменную)
}
}
return 1;
}


И для игрока сделаешь условие - если vParkedLok = 1 - то нельзя пользоваться авто
[center]i love you [s]mxIni[/s] Mysql[/center]

Elchin
Автор темы, Рядовой
Рядовой
Аватара
Elchin
Автор темы, Рядовой
Рядовой
Сообщения: 12
Зарегистрирован: 30 июня 2014
С нами: 9 лет 8 месяцев

#6 Elchin » 30 июня 2014, 20:00

error 017: undefined symbol "vehicleid"
error 017: undefined symbol "vehicleid"
error 017: undefined symbol "vehicleid"
error 017: undefined symbol "vehicleid"
error 017: undefined symbol "vehicleid"
error 017: undefined symbol "vehicleid"
error 017: undefined symbol "vehicleid"

Дим M
Администратор
Администратор
Аватара
Дим M
Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#7 Дим » 30 июня 2014, 20:10

Попробуй тогда этот код вставить в новый диалог

Код: Выделить всё

if(PlayerInfo[playerid] [pMember] != PATRUL_ORG) return SendClientMessage(playerid, COLOR_GREEN, "Ты не являешься сотрудником ДПС!");
new Float:POS[3];
for(
new i=0;i<MAX_VEHICLES;i++)
{
GetVehiclePos(i, POS[0], POS[1], POS[2]);
if(
PlayerToPoint (playerid, 5, POS[0], POS[1], POS[2]))
{
GetVehiclePos(playerid, POS[0], POS[1], POS[2]);
GetVehicleZAngle(vehicleid, POS[3]);
VehicleInfo[vehicleid][vSpw][0] = POS[0];
VehicleInfo[vehicleid][vSpw][1] = POS[1];
VehicleInfo[vehicleid][vSpw][2] = POS[2];
VehicleInfo[vehicleid][vSpw][3] = POS[3];
VehicleInfo[vehicleid][vParked] = 1;
VehicleInfo[vehicleid][vParkedLok] = 1;// заблокировать для пользователя (добавить переменную)
}
}


Либо

Код: Выделить всё

else if(!strcmp(cmd, "/dp", true))
{

if(
PlayerInfo[playerid] [pMember] != PATRUL_ORG) return SendClientMessage(playerid, COLOR_GREEN, "Ты не являешься сотрудником ДПС!");
new Float:POS[3];
for(
new i=0;i<MAX_VEHICLES;i++)
{
GetVehiclePos(i, POS[0], POS[1], POS[2]);
if(
PlayerToPoint (playerid, 5, POS[0], POS[1], POS[2]))
{
ShowDialog(playerid, BUYCAR_ID+12, DIALOG_STYLE_LIST, "Управление машиной для ДПС", "\
[1] Припарковать\n\
"
, "Выбрать", "Отмена");
}
}
return 1;


Код: Выделить всё

else if(dialogid == BUYCAR_ID+12)
{
if(
response)
{
new vehicleid = PlayerInfo[playerid][pMember],Float:POS[4];
GetVehiclePos(vehicleid, POS[0], POS[1], POS[2]);
new engine,lights,alarm,doors,bonnet,boot,blink,object ive,fuel,Float:health;
new seat = -1,bool:enge,bool:ligt;
switch(
listitem)
{

case 0:
{
GetVehiclePos(playerid, POS[0], POS[1], POS[2]);
GetVehicleZAngle(vehicleid, POS[3]);
VehicleInfo[vehicleid][vSpw][0] = POS[0];
VehicleInfo[vehicleid][vSpw][1] = POS[1];
VehicleInfo[vehicleid][vSpw][2] = POS[2];
VehicleInfo[vehicleid][vSpw][3] = POS[3];
VehicleInfo[vehicleid][vParked] = 1;
VehicleInfo[vehicleid][vParkedLok] = 1;// заблокировать для пользователя (добавить переменную)
}
}
}
return 1;
[center]i love you [s]mxIni[/s] Mysql[/center]

Elchin
Автор темы, Рядовой
Рядовой
Аватара
Elchin
Автор темы, Рядовой
Рядовой
Сообщения: 12
Зарегистрирован: 30 июня 2014
С нами: 9 лет 8 месяцев

#8 Elchin » 1 июля 2014, 16:59

тоже самое. "машина припаркована успешно" /spawncars машина там же где парковалась

Дим M
Администратор
Администратор
Аватара
Дим M
Администратор
Администратор
Сообщения: 1608
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#9 Дим » 1 июля 2014, 17:05

Машина копом не паркуется, где ему надо?

Elchin писал(а):"машина припаркована успешно"
В моём коде нет такого
[center]i love you [s]mxIni[/s] Mysql[/center]

Elchin
Автор темы, Рядовой
Рядовой
Аватара
Elchin
Автор темы, Рядовой
Рядовой
Сообщения: 12
Зарегистрирован: 30 июня 2014
С нами: 9 лет 8 месяцев

#10 Elchin » 1 июля 2014, 20:29

да. нужно чтобы коп мог исп эту команду. "Машина припаркована успешно" - это я добавил. иначе не понятно команда работает или нет. ничего больше не посоветуете?


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Вопросы»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 5 гостей