Kick_West
Умник
Код:
CMD:vehicle(playerid, params[])
{
if(sscanf(params, "s[24]s[64]", params[0], params[1])) return SendInf(playerid,"/v(ehicle) [значение] [id]"),SendClientMessage(playerid,COLOR_GREY, "ДОСТУПНЫЕ ЗНАЧЕНИЯ: lock - замок автомобиля, fix - доставить автомобиль к дому"),SendClientMessage(playerid,COLOR_GREY, "ДОСТУПНЫЕ ЗНАЧЕНИЯ: stats - посмотреть статистику, gps - найти личный автомобиль");
if(!strcmp(params[0],"fix",true))
{
if(p_info[playerid][pCash] < 50) return SendErrorMessage(playerid, "Недостаточно денег");
if(p_info[playerid][pRoom])
{
SetHotelCar(playerid);
GameTextForPlayer(playerid, "~r~$-50", 5000, 1);
TransferMoney(playerid,p_info[playerid][pCash]-50,50,">> vehicle fix");
p_info[playerid][pCash] -= 50;
UpdateMoney(playerid);
return 1;
}
if(p_info[playerid][pTempKey])
{
if(params[1] < 1 || params[1] > 2) return SendClientMessage(playerid, 0xFF9900FF, "Произошла ошибка. Выберите нумерованное число от 1 до 2");
UpdateTempVehicle(playerid,params[0]);
GameTextForPlayer(playerid, "~r~$-50", 5000, 1);
TransferMoney(playerid,p_info[playerid][pCash]-50,50,">> vehicle fix");
p_info[playerid][pCash] -= 50;
UpdateMoney(playerid);
return 1;
}
if(0 == p_info[playerid][pHouse]) return 1;
if(IsSellsCar(playerid, params[1]) != -1) return SendClientMessage(playerid,COLOR_GREY,"Недоступно. Данный автомобиль продается");
new vehicleid = caridhouse[playerid][ params[1] - 1 ];
if(!vehicleid) return SendClientMessage(playerid,COLOR_GREY,"Попробуйте перезайти для решения проблемы.");
SetVehicleToHouse(playerid, params[1], true);
ToggleLock(vehicleid);
GameTextForPlayer(playerid, "~r~-50$", 5000, 1);
TransferMoney(playerid,p_info[playerid][pCash]-50,50,">> vehicle fix");
p_info[playerid][pCash] -= 50;
UpdateMoney(playerid);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
}
else if(!strcmp(params[0],"stats", true))
{
if(!caridhouse[playerid][0] && !caridhouse[playerid][1] && GetVehicleModel(caridhouse[playerid][0]) < 400 && GetVehicleModel(caridhouse[playerid][1]) < 400) return true;
if(!IsPlayerConnected(params[1])) return SendErrorMessage(playerid,"Игрок не в сети");
if(!IsPlayerStream(8.0, playerid, params[1])) return SendErrorMessage(playerid,"Игрок не рядом с вами");
new house = p_info[playerid][pHouse];
if(caridhouse[playerid][0] <= 0 || house == 0) return SendClientMessage(playerid,CGRAY,"У вас нет автомобиля / дома.");
format(stringer, 267, "{FFFFFF}Автомобиль: %s\t\tВладелец: %s\n\nСостояние автомобиля:[%s %]",VehicleNames[GetVehicleModel(caridhouse[playerid][0])-400],gHouses[house][houseOwner],p_info[playerid][pProz]);
SendClientMessage(params[1],-1,stringer);
ShowPlayerDialog(params[1], 0000, DIALOG_STYLE_MSGBOX, "Статистика автомобиля", stringer, "Скрыть", "");
format(stringer, 128, "%s достал(а) документы и показал(а) их %s", NamePlayer[playerid],NamePlayer[params[1]]);
SendStreamMessage(30.0, playerid, stringer, 0xE75480FF);
}
else if(!strcmp(params[0],"gps", true))
{
if(params[1] == 1)
{
if(caridhouse[playerid][0] != 0)
{
GetVehiclePos(caridhouse[playerid][0],p_info[playerid][p_car_pos_x][0],p_info[playerid][p_car_pos_y][0],p_info[playerid][p_car_pos_z][0]);
SendClientMessage(playerid, 0xCCCCCCFF, "Ваш личный транспорт был отмечен на карте");
SetPlayerGPS(playerid,80,p_info[playerid][p_car_pos_x][0],p_info[playerid][p_car_pos_y][0],p_info[playerid][p_car_pos_z][0],47,-1,MAPICON_GLOBAL_CHECKPOINT);
}
}
else if(params[1] == 2)
{
if(caridhouse[playerid][1] != 0)
{
GetVehiclePos(caridhouse[playerid][1],p_info[playerid][p_car_pos_x][1],p_info[playerid][p_car_pos_y][1],p_info[playerid][p_car_pos_z][1]);
SendClientMessage(playerid, 0xCCCCCCFF, "Ваш личный транспорт был отмечен на карте");
SetPlayerGPS(playerid,80,p_info[playerid][p_car_pos_x][1],p_info[playerid][p_car_pos_y][1],p_info[playerid][p_car_pos_z][1],47,-1,MAPICON_GLOBAL_CHECKPOINT);
}
}
}
else if(!strcmp(params[0],"lock",true))
{
if(sscanf(params,"i",params[1]))
{
new Float:check_pos[6];
GetPlayerPos(playerid,check_pos[0],check_pos[1],check_pos[2]);
for(new v = 1; v < MAX_VEHICLES; v++)
{
if(IsValidVehicle(v))
{
GetVehiclePos(v,check_pos[3],check_pos[4],check_pos[5]);
if(PointToPoint(check_pos[0],check_pos[1],check_pos[2],check_pos[3],check_pos[4],check_pos[5]) < 4.0)
{
if(gVehicles[v-1][vRentPlayer]==playerid)
{
ToggleLock(v, (gVehicles[v-1][vLock]) ? (false) : (true));
UpdateTDLock(playerid, v);
GameTextForPlayer(playerid, (!gVehicles[v-1][vLock]) ? ("~r~~h~CLOSE") : ("~g~~h~OPEN"), 1000, 4);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
SetPlayerChatBubble(playerid,(!gVehicles[v-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
format(stringer, 128, "{00FF66}Велосипед\nАрендовал: {00FF99}[%s]\n{00FF66}Статус замка: {00FF99}[%s]", NamePlayer[playerid], (gVehicles[v-1][vLock]) ? ("Открыт") : ("Закрыт"));
UpdateDynamic3DTextLabelText(gVehicles[v-1][vRentPlayerText],0xFFFFFFAA,stringer);
return 1;
}
}
}
}
return SendInf(playerid, "/v(ehicle) lock [id] (1 - первая машина | 2 - вторая машина | 3 - фракционная машина | 4 - рабочая машина)");
}
if(params[1] < 1 || params[1] > 4) return SendInf(playerid, "/v lock [id] (1 - первая машина | 2 - вторая машина | 3 - фракционная машина | 4 - рабочая машина)");
if(p_info[playerid][pRoom] && params[1] == 1)
{
new vehicleid = caridhouse[playerid][0];
if(!vehicleid) return SendClientMessage(playerid,COLOR_GREY,"Произошла ошибка [ /v(ehicle lock ]. Сообщите о недоработке на форум www.source-rp.ru");
GetVehiclePos(vehicleid,gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ]);
if(!PlayerToPoint(4.0, playerid, gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ])) return SendErrorMessage(playerid,"Вы должны быть рядом с автомобилем");
ToggleLock(vehicleid, (gVehicles[vehicleid-1][vLock]) ? (false) : (true));
UpdateTDLock(playerid, vehicleid);
GameTextForPlayer(playerid, (!gVehicles[vehicleid-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
SetPlayerChatBubble(playerid,(!gVehicles[vehicleid-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
return 1;
}
if(params[1] == 4)
{
if(!p_info[playerid][pJob]) return SendErrorMessage(playerid,"Вы нигде не работаете.");
new Float:pos_v_x, Float:pos_v_y, Float:pos_v_z;
new check_nearest_vehicle = -1;
if(IsValidVehicle(GetPVarInt(playerid,"bus_id"))) check_nearest_vehicle = GetPVarInt(playerid,"bus_id");
else if(IsValidVehicle(GetPVarInt(playerid,"taxijob"))) check_nearest_vehicle = GetPVarInt(playerid,"taxijob");
else if(IsValidVehicle(GetPVarInt(playerid,"meh_car"))) check_nearest_vehicle = GetPVarInt(playerid,"meh_car");
else if(IsValidVehicle(GetPVarInt(playerid,"prod_vehicle_id"))) check_nearest_vehicle = GetPVarInt(playerid,"prod_vehicle_id");
if(check_nearest_vehicle == -1) return SendClientMessage(playerid,CRED,"Вы не арендуете {"#cLIGHTRED"}автомобиль");
GetVehiclePos(check_nearest_vehicle, pos_v_x, pos_v_y, pos_v_z);
if(!PlayerToPoint(8.0, playerid, pos_v_x, pos_v_y, pos_v_z)) return SendClientMessage(playerid, CRED, "Вы должны быть рядом с {"#cLIGHTRED"}рабочим автомобилем");
ToggleLock(check_nearest_vehicle, (gVehicles[check_nearest_vehicle-1][vLock]) ? (false) : (true));
UpdateTDLock(playerid, check_nearest_vehicle);
GameTextForPlayer(playerid, (!gVehicles[check_nearest_vehicle-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
SetPlayerChatBubble(playerid,(!gVehicles[check_nearest_vehicle-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
return 1;
}
if(params[1] == 3)
{
if(!p_info[playerid][tMember]) return SendErrorMessage(playerid,"Вы не состоите в организации");
for(new i = 1, j = GetVehiclePoolSize(); i <= j; i++)
{
if(gVehicles[i-1][vFraction] == p_info[playerid][tMember])
{
if(PlayerToPoint(4.0, playerid, gVehicles[i-1][veX], gVehicles[i-1][veY], gVehicles[i-1][veZ]))
{
ToggleLock(i, (gVehicles[i-1][vLock]) ? (false) : (true));
UpdateTDLock(playerid, i);
GameTextForPlayer(playerid, (!gVehicles[i-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
SetPlayerChatBubble(playerid,(!gVehicles[i-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
return 1;
}
}
}
SendErrorMessage(playerid, "Вы должны быть рядом с фракционным автомобилем");
return 1;
}
if(0 == p_info[playerid][pHouse] && 0 == p_info[playerid][pTempKey]) return SendErrorMessage(playerid,"У вас нет недвижимости");
new vehicleid = caridhouse[playerid][params[0]-1];
if(IsSellsCar(playerid, params[0]) != -1) return SendClientMessage(playerid,COLOR_GREY,"Недоступно. Данный автомобиль продается");
if(!vehicleid) return SendClientMessage(playerid,COLOR_GREY,"Произошла ошибка [ /v(ehicle lock ]. Сообщите о недоработке на форум www.source-rp.ru");
GetVehiclePos(vehicleid,gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ]);
if(!PlayerToPoint(4.0, playerid, gVehicles[vehicleid-1][veX], gVehicles[vehicleid-1][veY], gVehicles[vehicleid-1][veZ])) return SendErrorMessage(playerid,"Вы должны быть рядом с автомобилем");
ToggleLock(vehicleid, (gVehicles[vehicleid-1][vLock]) ? (false) : (true));
UpdateTDLock(playerid, vehicleid);
GameTextForPlayer(playerid, (!gVehicles[vehicleid-1][vLock]) ? ("VEHICLE~r~~h~CLOSE") : ("VEHICLE~g~~h~OPEN"), 1000, 4);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
SetPlayerChatBubble(playerid,(!gVehicles[vehicleid-1][vLock]) ? ("закрыл(а) автомобиль") : ("открыл(а) автомобиль"),0xE75480FF,30.0,10000);
format(stringer, 128, "Владелец: %s\nСтатус замка: %s", NamePlayer[playerid], (gVehicles[vehicleid-1][vLock]) ? ("Открыт") : ("Закрыт"));
UpdateDynamic3DTextLabelText(gVehicles[vehicleid-1][vOwnerVehicleText],CORANGE,stringer);
}
return 1;
}
Когда пишу то она просит заного /vehicle , я так полагаю что я неправильно ввел sscanf значения, и что-то не так сделал, Посмотрите поправьте меня. Так же варнинг о ссканфе
