Jump to content

rafull6

Members
  • Posts

    141
  • Joined

  • Last visited

Everything posted by rafull6

  1. One more question. I have a little problem. When robbery started, and player makes reconnect/disconnect -> then when he joins the server, and hits bank marker - he can't start robbery. Nothig happens. I think it's because of the timer. He dies, and time stops. I tried to add this code to main script to fix this problem but script stops work addEventHandler ( "onPlayerQuit", getRootElement(), quitPlayer function( ) if getElementData( source,"bank" ) == 1 then setElementAlpha( bankMarker,255 ) triggerServerEvent( "ServerPlaySoundRobberyStop",root ) setElementData( source,"bank",2 ) if isTimer( bankRobberTimer ) then killTimer( bankRobberTimer ) end if isTimer( timerWasted ) then killTimer( timerWasted ) end timerWasted = setTimer( function( player ) setElementData( player,"bank",0 ) end, 60000, 1 , source ) end end ) Where is my mistake?
  2. Awesome! Kenix you're genius! Thank you very much again!!!
  3. Thank you) Now it is working perfectly) Thank you very much!!!!! P.S. Is it possible to add in this code next thing. Marke will appear when cooldown is finished, and disappear when robbery is done
  4. Hey, guys! Today one guy shared Bank Robbery script for me, but there is one problem with it: After the robbery, there is cooldown time (the time before the next one robbery will be available), and when those time left, and robbery is available you need to reconnect to the server, or window with button "start robbering" would not start. Here is my code: addEvent("stopplaySoundRobbery",true) bankMarker = createMarker(364.00500488281,163.38682556152,1008.3828125,"cylinder",3,150,0,0,255) bankBip = createBlip ( 2416.5532226563, 1124.1168212891, 10.8203125, 36, 2) setElementInterior(bankMarker,3,364.00500488281,163.38682556152,1007.4828125) --3 int missionState = 0 bankColshape = createColCircle ( 2414.1735839844,1123.9982910156,10.8203125,1) addEventHandler("onClientColShapeLeave",bankColshape, function( LeaveElement, matchingDimension ) if ( LeaveElement == getLocalPlayer() ) then -- if missionState == 1 then if getElementData(LeaveElement,"bank") == 1 then outputChatBox("`Миссия провалена вы не захватили банк!",255,0,0) triggerServerEvent("ServerPlaySoundRobberyStop",root) killTimer(bankRobberTimer) setElementData(LeaveElement,"bank",2) --setElementData(getLocalPlayer(),"bank",nil) setTimer(function() setElementData(LeaveElement,"bank",0) end,60000) end -- end end end ) addEventHandler("onClientPlayerWasted",getLocalPlayer(), function() --if missionState == 1 then if getElementData(getLocalPlayer(),"bank") == 1 then outputChatBox("`Миссия провалена вы не захватили банк!",255,0,0) triggerServerEvent("ServerPlaySoundRobberyStop",root) --setElementData(getLocalPlayer(),"bank",nil) setElementData(getLocalPlayer(),"bank",2) killTimer(bankRobberTimer) setTimer(function() setElementData(getLocalPlayer(),"bank",0) end,60000) end --end end ) addEvent("playSoundRobbery",true) addEventHandler("playSoundRobbery",root, function() sound = playSound3D("alarm.mp3", 364.00500488281,163.38682556152,1010.3828125, true) setSoundMaxDistance ( sound, 50 ) end ) addEvent("playSoundRobberyStop",true) addEventHandler("playSoundRobberyStop",root, function() stopSound( sound ) end ) --[[ addEvent("stopplaySoundRobbery",true) addEventHandler("stopplaySoundRobbery",root, function() stopSound( sound ) end ) ]] addEventHandler("onClientMarkerHit",bankMarker, function( hitElement, matchingDimension ) --if missionState == 1 then --end if hitElement == getLocalPlayer() then if getElementData(hitElement,"bank") == 1 then return elseif getElementData(hitElement,"bank") == 2 then return end showCursor(true) bankWindow = guiCreateWindow(0.3184,0.3568,0.3809,0.306,"ROBBER",true) buttonYes = guiCreateButton(36,147,89,46,"Yes",false,bankWindow) buttonNo = guiCreateButton(251,147,89,46,"No",false,bankWindow) addEventHandler ( "onClientGUIClick", buttonYes, function( ) showCursor(false) guiSetVisible(bankWindow,false) triggerServerEvent("ServerPlaySoundRobbery",root) --triggerServerEvent("ServerPlaySoundRobbery",getLocalPlayer()) outputChatBox("`Вы захватили банк вы должны продержаться 5 минут.",255,0,0) outputChatBox("`Вы сможете захватить банк через 180 минут.",255,0,0) outputChatBox("`Если вы выйдите из банка то миссия будет провалена!",255,0,0) setElementData(hitElement,"bank",1) callServerfunction("setPlayerWantedLevel",hitElement, 6 ) --missionState = 1 bankRobberTimer = setTimer(function() outputChatBox("`Вы успешно ограбили банк вы получили 100 000 $.",255,0,0) triggerServerEvent("ServerPlaySoundRobberyStop",root) setTimer(function() setElementData(getLocalPlayer(),"bank",0) end,60000) givePlayerMoney(100000) end,60000,1) --300000 end ) addEventHandler ( "onClientGUIClick", buttonNo, function ( ) showCursor(false) guiSetVisible(bankWindow,false) end ) end end ) function callServerfunction(funcname, ...) local arg = { ... } if (arg[1]) then for key, value in next, arg do if (type(value) == "number") then arg[key] = tostring(value) end end end triggerServerEvent("onClientCallsServerFunction", resourceRoot , funcname, unpack(arg)) end addCommandHandler("data",function() setElementData(getLocalPlayer(),"bank",0) end ) How to fix this failure?
  5. Столкнулся с такой проблемой: когда игрок заходит на маркер - окно открывается у всех. Подскажите пожалуйста как это исправить, что бы окошко открывалось только тому кто зашел на маркер? addEventHandler( "onClientMarkerHit", marker1, function ( playerSource, commandName, playerName) if playerName then local thePlayer = getPlayerFromName ( playerName ) if thePlayer then createWindow(wndCreateVehicle) showCursor (true) end ) не работает
  6. С клиентской частью почти разобрался. Окно спавна вызываеться когда жмем L. CONTROL_MARGIN_RIGHT = 5 LINE_MARGIN = 5 LINE_HEIGHT = 16 g_Root = getRootElement() g_ResRoot = getResourceRootElement(getThisResource()) g_Me = getLocalPlayer() server = createServerCallInterface() --------------------------- -- Create vehicle window --------------------------- function createSelectedVehicle(leaf) if not leaf then leaf = getSelectedGridListLeaf(wndCreateVehicle, 'vehicles') if not leaf then return end end server.giveMeVehicles(leaf.id) end wndCreateVehicle = { 'wnd', text = 'Create vehicle', width = 300, controls = { { 'lst', id='vehicles', width=280, height=340, columns={ {text='Vehicle', attr='name'} }, rows={xml='vehicles.xml', attrs={'id', 'name'}}, onitemdoubleclick=createSelectedVehicle }, {'btn', id='create', onclick=createSelectedVehicle}, {'btn', id='close', closeswindow=true} } } function toggle1window() if isWindowOpen(wndCreateVehicle) then showCursor(false) hideAllWindows() else showCursor(true) showAllWindows() end end addEventHandler( "onMarkerHit", getRootElement(), toggle1window ) addEventHandler('onClientResourceStart', g_ResRoot, function() bindKey('l', 'down', toggle1window) createWindow(wndCreateVehicle) hideAllWindows() end ) ПОДСКАЖИТЕ ПОЖАЛУЙСТА СЕРВЕРНУЮ ЧАСТЬ СКРИПТА ЧТО БЫ ОКНО ОТКРЫВАЛОСЬ НЕ ПРИ НАЖАТИИ L, А ПРИ ЗАХОДЕ НА МАРКЕР. Серверная часть. При заходе на маркер курсор активируется но окно не появляется ): function showGUI (jugador) if (source == marker1) then triggerClientEvent (jugador,"showGUI",getRootElement(),jugador) end end addEventHandler ("onMarkerHit",getRootElement(),showGUI) ----------------------------- Добавлено: Есть код: function toggle1window() if isWindowOpen(wndCreateVehicle) then showCursor(false) hideAllWindows() else showCursor(true) showAllWindows() end end addEventHandler( "onMarkerHit", getRootElement(), toggle1window ) addEventHandler('onClientResourceStart', g_ResRoot, function() bindKey('l', 'down', toggle1window) createWindow(wndCreateVehicle) hideAllWindows() end ) function showGUI () guiSetVisible (wndCreateVehicle,true) showCursor (true) end addEvent ("showGUI",true) addEventHandler ("showGUI",getRootElement(),showGUI) Можно ли как то функцию toggle1window прописать в самую нижнюю функцию, то есть что бы вместо guiSetVisible (wndCreateVehicle,true) вызвалась функция toggle1window??? КАК ТАКОЕ СДЕЛАТЬ?
  7. Нашел клиентскую часть, которая отвечает за вызов окошка с автомобилями. addEventHandler('onClientResourceStart', g_ResRoot, function() bindKey('l', 'down', toggleCARWindow) createWindow(wndCreateVehicle) hideAllWindows() end ) function toggleCARWindow() if isWindowOpen(wndCreateVehicle) then showCursor(false) hideAllWindows() else showCursor(true) showAllWindows() end end Подскажите что нужно дописать в серверную часть что бы при заходе на маркер открывалось это окно? Что нужно сделать с функцией toggleCARWindow!?
  8. Всем привет! Помогите пожалуйста осуществить следующую идею. Нужно из freeroam мода достать функцию спавна автомобилей, и сделать так, что бы окошко спавна автомобилей (то которое мы видим когда нажимаем F1->Create) появлялось при заходе на маркер. Вот мой код, который напрочь отказывается работать: Клиент. часть: CONTROL_MARGIN_RIGHT = 5 LINE_MARGIN = 5 LINE_HEIGHT = 16 g_Root = getRootElement() g_ResRoot = getResourceRootElement(getThisResource()) g_Me = getLocalPlayer() server = createServerCallInterface() guiSetInputMode("no_binds_when_editing") --------------------------- -- Create vehicle window --------------------------- function createSelectedVehicle(leaf) if not leaf then leaf = getSelectedGridListLeaf(wndCreateVehicle, 'vehicles') if not leaf then return end end server.giveMeVehicles(leaf.id) end wndCreateVehicle = { 'wnd', text = 'Create vehicle', width = 300, controls = { { 'lst', id='vehicles', width=280, height=340, columns={ {text='Vehicle', attr='name'} }, rows={xml='vehicles.xml', attrs={'id', 'name'}}, onitemdoubleclick=createSelectedVehicle }, {'btn', id='create', onclick=createSelectedVehicle}, {'btn', id='close', closeswindow=true} } } function createVehicleCommand(cmd, ...) local vehID local vehiclesToCreate = {} local args = { ... } for i,v in ipairs(args) do vehID = tonumber(v) if not vehID then vehID = getVehicleModelFromName(v) end if vehID then table.insert(vehiclesToCreate, math.floor(vehID)) end end server.giveMeVehicles(vehiclesToCreate) end addCommandHandler('createvehicle', createVehicleCommand) addCommandHandler('cv', createVehicleCommand) function showGUI () guiSetVisible (wndCreateVehicle,true) showCursor (true) end addEvent ("showGUI",true) addEventHandler ("showGUI",getRootElement(),showGUI) Сервер. часть: marker1 = createMarker( 1927.6690673828, 2057.2536621094, 9.671875, "cylinder", 3, 255, 0, 0, 100 ) g_Root = getRootElement() g_ResRoot = getResourceRootElement(getThisResource()) g_PlayerData = {} g_VehicleData = {} local chatTime = {} local lastChatMessage = {} g_ArmedVehicles = { [425] = true, [447] = true, [520] = true, [430] = true, [464] = true, [432] = true } g_Trailers = { [606] = true, [607] = true, [610] = true, [590] = true, [569] = true, [611] = true, [584] = true, [608] = true, [435] = true, [450] = true, [591] = true } g_RPCFunctions = { giveMeVehicles = { option = 'createvehicle', descr = 'Creating vehicles' } } function showGUI (jugador) if (source == marker1) then triggerClientEvent (jugador,"showGUI",getRootElement(),jugador) end end addEventHandler ("onMarkerHit",getRootElement(),showGUI) function giveMeVehicles(vehicles) if type(vehicles) == 'number' then vehicles = { vehicles } end local px, py, pz, prot local radius = 3 local playerVehicle = getPedOccupiedVehicle(source) if playerVehicle and isElement(playerVehicle) then px, py, pz = getElementPosition(playerVehicle) prot, prot, prot = getVehicleRotation(playerVehicle) else px, py, pz = getElementPosition(source) prot = getPedRotation(source) end local offsetRot = math.rad(prot) local vx = px + radius * math.cos(offsetRot) local vy = py + radius * math.sin(offsetRot) local vz = pz + 2 local vrot = prot local vehicleList = g_PlayerData[source].vehicles local vehicle if ( not vehicles ) then return end for i,vehID in ipairs(vehicles) do if vehID < 400 or vehID > 611 then errMsg(vehID ..' is incorrect vehicle model', source) elseif not table.find(getOption('vehicles.disallowed'), vehID) then if #vehicleList >= getOption('vehicles.maxperplayer') then unloadVehicle(vehicleList[1]) end vehicle = createVehicle(vehID, vx, vy, vz, 0, 0, vrot) if (not isElement(vehicle)) then return end setElementInterior(vehicle, getElementInterior(source)) setElementDimension(vehicle, getElementDimension(source)) table.insert(vehicleList, vehicle) g_VehicleData[vehicle] = { creator = source, timers = {} } if vehID == 464 then warpPedIntoVehicle(source, vehicle) elseif not g_Trailers[vehID] then if getOption('vehicles.idleexplode') then g_VehicleData[vehicle].timers.fire = setTimer(commitArsonOnVehicle, getOption('vehicles.maxidletime'), 1, vehicle) end g_VehicleData[vehicle].timers.destroy = setTimer(unloadVehicle, getOption('vehicles.maxidletime') + (getOption('vehicles.idleexplode') and 10000 or 0), 1, vehicle) end vx = vx + 4 vz = vz + 4 else errMsg(getVehicleNameFromModel(vehID):gsub('y$', 'ie') .. 's are not allowed', source) end end Проблемма в том что я не могу заставить появиться окно при заходе на маркер. Возможно дело в function showGUI (jugador) if (source == marker1) then triggerClientEvent (jugador,"showGUI",getRootElement(),jugador) end end addEventHandler ("onMarkerHit",getRootElement(),showGUI) (За основу брал паблик скрипт покупки оружия, хотел изменить окно оружия на окно выбора машин) Подскажите как заставить скрипт работать. P.S. В lua я совсем недавно, по этому, очень прошу отнестись с пониманием P.S.S Ну полнейший новичек.
  9. Like a hasObjectPermissionTo?
  10. JR10, works great! Thanks =) BUT!!! It doesn't want to transfer me to admin team (even after logging) (((
  11. About my 2nd question "How to make teams like "Players", "Members"..." So i enabled in dxscoreboard "show teams". But how to connect it with ACL. I want to make next: when player connects to the server it checks him in ACL groups and move to the team in scoreboard. For example: all defoult players will be moved to the group "Users", members admins and moderators to "Members" in scoreboard. How to do that?
  12. Hello guys. I have few questions about scoreboard. I tried to find the answers, but i failed. Help me with it please. (P.S. I'm usind DXscoreboard https://community.multitheftauto.com/index.php?p=resources&s=details&id=419) 1st question: How to add columns like a "kills", "death", "money" ( i saw a lot of examples, but they do not work for me) 2nd question: How to make teams like "Players", "Members" (screenshot): 3rd question: How to paint all player blips and their names in yellow colour (for example), and make member colours blue (for example). Mey be that's very easy for you guys, but it's pretty hard for me, because I'm begginer in lua, so, please help me with it
  13. Вот с такой проблемой столкнулся: танк заблокировал для общего доступа в ресурсе фрироам а через этот ресурс его вызвать можно. Как это исправить дайте наводку пожалуста...
  14. Thank you volk. that's works greate!
  15. I've fixed that script but now have an error after i use "staff" command: Error: [2011-06-27 16:08:01] Starting god [2011-06-27 16:08:01] god restarted successfully [2011-06-27 16:08:10] ERROR: god\gods.lua:3: attempt to concatenate global 'playerName' (a nil value) My code: function staff ( thePlayer, commandName) local accName = getAccountName ( getPlayerAccount ( thePlayer ) ) if isObjectInACLGroup ( "user." .. playerName, aclGetGroup ( "Admin" ) ) then setElementHealth ( thePlayer, 1000 ) setPlayerNametagColor ( thePlayer, 190, 200, 190 ) setElementModel ( thePlayer, 165 ) setPedArmor ( thePlayer, 1000 ) triggerClientEvent(thePlayer,"god_mode",thePlayer) else outputChatBox ( "*" .. getPlayerName ( source ) .. "* this command is only for Staff .", thePlayer , 255,0,0 ) end end addCommandHandler("staff", staff)
  16. stupid question but how to make an admin check? (duno in lua)
  17. won't work ERROR: god\gods.lua:2: attempt to call global 'isPlayerAdmin' (a nil value)
  18. О! Работает! Спасибо большое))) З.Ы, Да я просто с другой панели взял (там работало )
  19. Тут такая проблема возникла... Вот скрипт то работает отлично но есть одно но: если я прописую команду /sv [авто], я появляюсь в автомобиле, если я пропишу эту команду еще раз, появиться еще один автомобиль. Получается можно наспавнить целую кучу транспорта. Что нужно добавить в скрипт что бы предыдущий автомобиль удалялся? То есть если я пропишу /sv rhino я сяду в танк, потом я пропишу /sv dumper и появлюсь в самосвале, но при этом танк пропадет. Как такое сделать?
×
×
  • Create New...