Sergey_Walter Posted December 6, 2013 Share Posted December 6, 2013 Помогите портировать\реализовать команду из сампа в мта, не получается( Когда в 4 дверной машине занято например 2 пассажирское место то игрока усаживало за 3 и т.д место. if(strcmp(cmd,"/drag",true)==0) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid,COLOR_WHITE,"{ff0500}• {ffffff}ИСПОЛЬЗОВАНИЕ: /drag [playerid]"); return true; } if(IsACop(playerid)) { giveplayerid = ReturnUser(tmp); new ta4a = 0; new res; new next = 0; if(PlayerDrag[giveplayerid] == true) { RemovePlayerFromVehicle(giveplayerid); TogglePlayerControllable(giveplayerid, 1); SendClientMessage(playerid,COLOR_WHITE,"{ff0500}• {ffffff}Вы высадили преступника"); format(string, sizeof(string), "* %s вытолкал из автомобиля %s", PlayerName[playerid] ,PlayerName[giveplayerid]); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); PlayerDrag[giveplayerid] = false; return true; } if(IsPlayerInAnyVehicle(playerid) || IsPlayerInAnyVehicle(giveplayerid)) { SendClientMessage(playerid,COLOR_WHITE,"Вы или тот игрок находитесь уже в тачке"); return true; } if(PlayerCuffed[giveplayerid] > 0) { if(ProxDetectorS(3.0, playerid, giveplayerid)) { for(new i; i != CAR_AMOUNT; i++) { new disto = CheckPlayerDistanceToVehicle(3.0, playerid, i); if(disto) { res = i; ta4a++; } } if(ta4a == 0) { SendClientMessage(playerid,COLOR_LIGHTRED,"Вы не рядом с автомобилем!"); return true; } if(ta4a == 1) { for(new i = 1; i < 3; i++) { if(next == 0) { if(!IsAnyPlayerInVehicle(res,i)) { next = 1; PutPlayerInVeh(giveplayerid,res,i); TogglePlayerControllable(giveplayerid, 0); PlayerDrag[giveplayerid] = true; SendClientMessage(giveplayerid,COLOR_LIGHTRED,"Вас насильно затолкали в тачку!"); format(string, sizeof(string), "* %s затолкал в автомобиль %s", PlayerName[playerid] ,PlayerName[giveplayerid]); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); } } } if(next == 0) { SendClientMessage(playerid,COLOR_LIGHTRED,"В тачке нет свободных мест!"); } } if(ta4a > 1) { SendClientMessage(playerid,COLOR_LIGHTRED,"Вокруг вас слишком много автомобилей!"); } } else { SendClientMessage(playerid,COLOR_LIGHTRED,"Вы слишком далеко от игрока!"); } } else { SendClientMessage(playerid,COLOR_LIGHTRED,"Игрок не в наручниках!"); return true; } } else { SendClientMessage(playerid,COLOR_LIGHTRED,"Вы не законик!"); } return true; Набросал кое-что, но всё равно не работает( function drag(thePlayer, commandName, target) local targetPlayer, targetPlayerName = exports.global:findPlayerByPartialNick(thePlayer, target) local ta4a = 0 local res local next = 0 if getElementData(targetPlayer, "playerDrag") == true then removePedFromVehicle(targetPlayer) triggerClientEvent(thePlayer,"addNotification", root, "Вы высадили преступника!", 2) setElementData(targetPlayer, "playerDrag", false) return end local theVehicle = getPedOccupiedVehicle(thePlayer) local theVehicleTarget = getPedOccupiedVehicle(targetPlayer) if theVehicle or theVehicleTarget then triggerClientEvent(thePlayer,"addNotification", root, "Вы или тот игрок находитесь уже в тачке", 3) return end if getElementData(targetPlayer, "restrain") > 0 then local posX , posY , posZ = getElementPosition(thePlayer) local posX2 , posY2 , posZ2 = getElementPosition(targetPlayer) if getDistanceBetweenPoints2D(posX, posY, posX2, posY2) < 3 then for i, value in ipairs(exports.pool:getPoolElementsByType("vehicle")) do local posX , posY , posZ = getElementPosition(thePlayer) local posX2 , posY2 , posZ2 = getElementPosition(value) local disto = getDistanceBetweenPoints2D(posX, posY, posX2, posY2) if getDistanceBetweenPoints2D(posX, posY, posX2, posY2) < 3 then res = value ta4a = ta4a + 1 end end if ta4a == 0 then triggerClientEvent(thePlayer,"addNotification", root, "Вы или тот игрок находитесь уже в тачке", 3) return end if ta4a == 1 then for i = 0, 3 do if next == 0 then if isPedInVehicle(res) then--??? next = 1 warpPedIntoVehicle(targetPlayer, res, i) setElementData(targetPlayer, "playerDrag", true) triggerClientEvent(targetPlayer,"addNotification", root, "Вас насильно затолкали в тачку!", 2) end end end if next == 0 then triggerClientEvent(thePlayer,"addNotification", root, "В тачке нет свободных мест!", 3) end end if ta4a > 1 then triggerClientEvent(thePlayer,"addNotification", root, "Вокруг вас слишком много автомобилей!", 3) end else triggerClientEvent(thePlayer,"addNotification", root, "Вы слишком далеко от игрока!", 3) end else triggerClientEvent(thePlayer,"addNotification", root, "Игрок не в наручниках!", 3) return end end addCommandHandler("drag", drag) Link to comment
CocaColaBear Posted December 6, 2013 Share Posted December 6, 2013 (edited) addCommandHandler("warp", function(player, _, wPlayer) local warpPlayer = getPlayerByName(wPlayer) if(warpPlayer) then local vehicle = getPedOccupiedVehicle(player) if(vehicle and getPedOccupiedVehicleSeat(player) == 0) then local occupants = getVehicleOccupants(vehicle) local maxPassengers = getVehicleMaxPassengers(vehicle) if(#occupants <= maxPassengers) then local seatID = 1 for i = 2, maxPassengers do if(not isElement(occupants[i])) then seatID = i break end end warpPedIntoVehicle(vehicle, seatID) else outputChatBox("В автомобиле нет мест!", player) end else outputChatBox("Вы не в авто или не за рулем", player) end else outputChatBox("Такого игрока нет", player) end end ) Примерно так, адаптируешь под себя. Edited December 6, 2013 by Guest Link to comment
Sergey_Walter Posted December 6, 2013 Author Share Posted December 6, 2013 Спасибо большое Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now