Jump to content

Fresku

Members
  • Posts

    15
  • Joined

  • Last visited

About Fresku

  • Birthday 11/06/1988

Details

  • Gang
    Hedde druksop?!
  • Occupation
    Eating

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Fresku's Achievements

Square

Square (6/54)

0

Reputation

  1. Hey there, Here's the source code of my delivery system I made because I was bored. You can call in any type of vehicle (Must be specified in the available vehicles list, or else it won't work) Keep in mind that only 'Fast' delivery is working since it's not finished, and never will be I guess... No errors as far as I know. Have fun with it. EDIT: Made Parachute a low LOD so it can be seen from a larger distance. CLIENT local planeTime = 20 local normalTime = 50 addEvent("client:startDelivery", true) addEventHandler("client:startDelivery", root, function(p, vehicleID, type) if type == "Fast" then createAirmailDelivery(vehicleID, p) --Create an awesome Andromada elseif type == "Normal" then createNormalDelivery(vehicleID, p) --Create a Helicopter lol not finished end end) function createAirmailDelivery(vehicleID, p) local x, y, z = getElementPosition(p) local newZ = z+60 local plane = createObject(14553, x+1000, y, newZ, 20, 0, 0, true) local px, py, pz = getElementPosition(plane) setElementRotation(plane, 20, 0, findRotation(px, py, x, y)) if p == localPlayer then blip = createBlipAttachedTo(plane, 0, 2, 255, 0, 0, 255, 0, 99999) setElementData(plane, "blip", blip) end moveObject(plane, planeTime*1000, x-800, y, newZ) setTimer(function(p) if p == localPlayer then local blip = getElementData(plane, "blip") destroyElement(blip) end if isElement(plane) then destroyElement(plane) end end, planeTime*1000, 1, p) setTimer(function() local px, py, pz = getElementPosition(plane) local rx, ry, rz = getElementRotation(plane) triggerServerEvent("server:deliverVehicle", root, {vehicleID, px, py, pz, rx, ry, rz}) end, planeTime*1000/2.1, 1) end function createNormalDelivery(vehicleID, p) end addEvent("client:deliverVehicle", true) addEventHandler("client:deliverVehicle", root, function(dumpy, dropTime) local x, y, z = getElementPosition(dumpy) local rx = math.random(10, 20) local groundPos = getGroundPosition(x+rx, y, z+3) moveObject(dumpy, dropTime*1000, x+rx, y, groundPos, 0, 0, math.random(180, 360)) end) function findRotation(x1,y1,x2,y2) local t = math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end SERVER local deliveryTypes = { ["Fast"]={extraCost=550}, ["Normal"]={extraCost=65} } local vehicles = { ["Infernus"]={cost=1, special=false, letter="an"}, ["Sweeper"]={cost=1, special=false, letter="a"}, ["Bullet"]={cost=1, special=false, letter="a"}, ["Dumper"]={cost=1, special=true, letter="a"}, ["Boxville"]={cost=1, special=false, letter="a"} } local dropTime = 20 addCommandHandler("deliver", function(p, cmd, vehName, type) if not vehName or not type or not tostring(vehName) or not tostring(type) or not isValidDeliveryType(type) then outputChatBox("SYNTAX: /"..cmd.." (Delivery types: Fast ($"..comma(getVehicleDeliveryCost("Fast")).."), Normal ($"..comma(getVehicleDeliveryCost("Normal"))..") )", p, 255, 200, 0, false) return end if isVehicleAvailable(vehName) then local vehicleID, vehicleCost, letter, deliverCost = getVehicleModelFromName(vehName), getVehicleCost(vehName), getVehicleLetter(vehName), getVehicleDeliveryCost(type) local enoughMoney, requiredMoney = hasPlayerMoney(p, tonumber(vehicleCost), deliverCost) if enoughMoney then outputChatBox("* You ordered "..letter.." "..vehName.." for $"..comma(vehicleCost+deliverCost).."!", p, 0, 230, 0, false) outputChatBox("* Please wait while we deliver your "..vehName..".", p, 0, 230, 0, false) takePlayerMoney(p, vehicleCost+deliverCost) triggerClientEvent("client:startDelivery", root, p, vehicleID, type) else outputChatBox("* You require an additional $"..comma(requiredMoney).." to order "..letter.." "..vehName..".", p, 230, 0, 0, false) end else outputChatBox("* We're sorry, we do not deliver that kind of vehicle.", p, 230, 0, 0, false) end end) addEvent("server:deliverVehicle", true) addEventHandler("server:deliverVehicle", root, function(vehInfo) local vehID, px, py, pz, rx, ry, rz = unpack(vehInfo) local veh = createVehicle(vehID, px, py, pz, rx, ry, rz) local parachute = createObject(2903, px, py, pz, 0, 0, 0, true) local dumpy = createObject(1337, px, py, pz) setObjectScale(parachute, 0.5) setElementCollisionsEnabled(dumpy, false) setElementCollisionsEnabled(parachute, false) attachElements(veh, dumpy) attachElements(parachute, dumpy, 0, 0, 3.3) triggerClientEvent("client:deliverVehicle", root, dumpy, dropTime) setTimer(function() destroyElement(dumpy) destroyElement(parachute) setElementVelocity(veh, 0, 0, -0.05) end, dropTime*1000-2000, 1) end) function hasPlayerMoney(p, cost, deliveryCost) local cost = cost+deliveryCost if (getPlayerMoney(p) >= cost) then return true, 0 else return false, cost - getPlayerMoney(p) end end function getVehicleDeliveryCost(deliveryType) if deliveryTypes[deliveryType] then return deliveryTypes[deliveryType].extraCost else return false end end function isValidDeliveryType(type) if deliveryTypes[type] then return true else return false end end function isVehicleAvailable(vehName) if vehicles[vehName] then return true else return false end end function getVehicleCost(vehName) if vehicles[vehName] then return vehicles[vehName].cost else return false end end function getVehicleLetter(vehName) if vehicles[vehName] then return vehicles[vehName].letter else return false end end function comma(amount) local formatted = amount while true do formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2') if (k==0) then break end end return formatted end
  2. D'oh. http://www.peerblock.com/ PeerBlock lets you control who your computer "talks to" on the Internet. By selecting appropriate lists of "known bad" computers, you can block communication with advertising or spyware oriented servers, computers monitoring your p2p activities, computers which have been "hacked", even entire countries! They can't get in to your computer, and your computer won't try to send them anything either. And best of all, it's free!
  3. Oi oi oi, Maurize, are you still looking for a custom model? I fixed my plugin mane
  4. local x, y, z = markerst[1][1], markerst[1][2], markerst[1][3] Make a loop to get each of them coordinates
  5. Aren't you supposed to be in the Arabic section?
  6. Instead of using laggy timers, you can also use getTickCount() in the onClientRender function itself. edit: local iFPS = 0 local iFrames = 0 function GetFPS( ) return iFPS end addEventHandler( 'onClientRender', root, function() iFrames = iFrames + 1 if getTickCount () %800 < 15 then iFPS = iFrames; iFrames = 0 end end )
  7. One of the greatest DX newsbars yet to be released. Feel free to modify it to your likings. Picture: Source code removed due to illegal distribution.
  8. I'd suggest to use shaders... Easiest way to manipulate in-game textures.
  9. You should trigger the event after the player logged in. So you can check if he's a member of a locked team. If so, you can set his team, which will allow him to use the 'locked' spawn.
  10. A script I never used to finish. It's working though... You can trigger it by triggering the event: client:showSpawnMenu SpawnC.lua: local classes = { [1]={name="Asian Gangster", location="San Fierro", skin=123, r=255, g=255, b=0, camx=-2193.1892, camy=609.5613, camz=35.1641, x=-2185.3618, y=609.2630, z=35.1641, rotz=91, locked=false}, [2]={name="Gangster", location="Los Santos", skin=115, r=200, g=0, b=0, camx=2090.4487, camy=-1806.4600, camz=13.5469, x=2098.1418, y=-1806.5272, z=13.5542, rotz=91, locked=false}, [3]={name="Gangster", location="Las Venturas", skin=115, r=200, g=0, b=0, camx=2504.7014, camy=1272.5519, camz=10.8125, x=2513.3313, y=1272.1747, z=10.8125, rotz=91, locked=false}, [4]={name="Gangster", location="San Fierro", skin=115, r=200, g=0, b=0, camx=-2650.6509, camy=1351.9685, camz=7.1874, x=-2654.8606, y=1356.3500, z=7.1082, rotz=211, locked=false}, [5]={name="Citizen", location="Los Santos", skin=0, r=255, g=200, b=0, camx=2080.0674, camy=-1768.3506, camz=13.5525, x=2074.3320, y=-1768.9489, z=13.5545, rotz=264, locked=false}, [6]={name="Citizen", location="Las Venturas", skin=0, r=255, g=200, b=0, camx=1549.4467, camy=2672.7546, camz=10.8203, x=1549.5360, y=2666.0066, z=10.8274, rotz=360, locked=false}, [7]={name="Citizen", location="San Fierro", skin=0, r=255, g=200, b=0, camx=-2631.7356, camy=922.4197, camz=71.9426, x=-2636.7900, y=932.1591, z=71.8688, rotz=210, locked=false}, [8]={name="Staff", location="Las Venturas", skin=217, r=255, g=255, b=0, camx=2477.5403, camy=2773.1514, camz=10.7346, x=2492.9961, y=2773.0344, z=10.8063, rotz=89, locked=true, team="Staff"} } local weapons = { ["Asian Gangster"]={5, 24, 26, 28, 30}, ["Gangster"]={5, 24, 26, 28, 30}, ["Citizen"]={7, 22, 32, 30, 18}, ["Staff"]={24, 31, 34, 35, 16} } local curr = 1 addEvent("client:showSpawnMenu", true) addEventHandler("client:showSpawnMenu", root, function(class) addEventHandler("onClientRender", root, drawSpawnInfo) bindKey("arrow_l", "down", switchPrevious) bindKey("arrow_r", "down", switchNext) bindKey("space", "down", switchSpawn) bindKey("enter", "down", spawn) updateClassPos(curr) end) function switchSpawn() end function switchNext(_, state) if state == "down" then curr = curr + 1 if curr > #classes then curr = 1 end outputChatBox(classes[curr].name) updateClassPos(curr) end end function switchPrevious(_, state) if state == "down" then curr = curr - 1 if curr < 1 then curr = #classes end outputChatBox(classes[curr].name) updateClassPos(curr) end end function spawn() if classes[curr].locked then if isPlayerInTeam(localPlayer, classes[curr].team) then normalSpawn() else outputChatBox("Only members of '"..classes[curr].team.."' are allowed to use this spawn!", 255, 0, 0) end else normalSpawn() end end function normalSpawn() removeEventHandler("onClientRender", root, drawSpawnInfo) unbindKey("arrow_l", "down", switchPrevious) unbindKey("arrow_r", "down", switchNext) unbindKey("enter", "down", spawn) outputChatBox("Spawned") if isElement(actor) then destroyElement(actor) end triggerServerEvent("server:spawnOptions", localPlayer, classes[curr].skin, weapons[classes[curr].name][1], weapons[classes[curr].name][2], weapons[classes[curr].name][3], weapons[classes[curr].name][4], weapons[classes[curr].name][5], classes[curr].x, classes[curr].y, classes[curr].z, classes[curr].rotz) end function updateClassPos(num) if not isElement(actor) then actor = createPed(classes[num].skin, classes[num].x, classes[num].y, classes[num].z) end local cx, cy, cz = classes[num].camx, classes[num].camy, classes[num].camz setPedRotation(actor, classes[num].rotz) setElementPosition(actor, classes[num].x, classes[num].y, classes[num].z) setElementModel(actor, classes[num].skin) setCameraMatrix(cx, cy, cz, classes[num].x, classes[num].y, classes[num].z) end function isPlayerInTeam(src, TeamName) if src and isElement ( src ) and getElementType ( src ) == "player" then local team = getPlayerTeam(src) if team then if getTeamName(team) == TeamName then return true else return false end end end end function drawSpawnInfo() local x, y, z = classes[curr].x, classes[curr].y, classes[curr].z local sx, sy = getScreenFromWorldPosition(x, y, z) if sx then dxDrawFramedText(classes[curr].name, sx+65, sy-50, 10, 10, tocolor(classes[curr].r, classes[curr].g, classes[curr].b, 255), tocolor(0, 0, 0, 255), 2, "default-bold") dxDrawFramedText(getZoneName(x, y, z, true).." (SPACE to change)", sx+65, sy, 10, 10, tocolor(255, 255, 255, 255), tocolor(0, 0, 0, 255), 1.5, "default-bold") dxDrawFramedText("Weapons:", sx+65, sy+25, 10, 10, tocolor(255, 255, 255, 255), tocolor(0, 0, 0, 255), 1.5, "default-bold") dxDrawFramedText("- "..getWeaponNameFromID(weapons[classes[curr].name][1]), sx+65, sy+50, 10, 10, tocolor(255, 255, 255, 255), tocolor(0, 0, 0, 255), 1.5, "default-bold") dxDrawFramedText("- "..getWeaponNameFromID(weapons[classes[curr].name][2]), sx+65, sy+75, 10, 10, tocolor(255, 255, 255, 255), tocolor(0, 0, 0, 255), 1.5, "default-bold") dxDrawFramedText("- "..getWeaponNameFromID(weapons[classes[curr].name][3]), sx+65, sy+100, 10, 10, tocolor(255, 255, 255, 255), tocolor(0, 0, 0, 255), 1.5, "default-bold") dxDrawFramedText("- "..getWeaponNameFromID(weapons[classes[curr].name][4]), sx+65, sy+125, 10, 10, tocolor(255, 255, 255, 255), tocolor(0, 0, 0, 255), 1.5, "default-bold") dxDrawFramedText("- "..getWeaponNameFromID(weapons[classes[curr].name][5]), sx+65, sy+150, 10, 10, tocolor(255, 255, 255, 255), tocolor(0, 0, 0, 255), 1.5, "default-bold") end end function dxDrawFramedText ( message , left , top , width , height , color , frameColor , scale , font , alignX , alignY , clip , wordBreak , postGUI ) color = color or tocolor ( 255 , 255 , 255 , 255 ) frameColor = frameColor or tocolor ( 0 , 0 , 0 , 255 ) scale = scale or 1 font = font or "default" alignX = alignX or "left" alignY = alignY or "top" clip = clip or false wordBreak = wordBreak or false postGUI = postGUI or false local sMessage = message : gsub ( "#%x%x%x%x%x%x" , "" ) dxDrawText ( sMessage , left + 1 , top + 1 , width + 1 , height + 1 , frameColor , scale , font , alignX , alignY , clip , wordBreak , false ) dxDrawText ( sMessage , left + 1 , top - 1 , width + 1 , height - 1 , frameColor , scale , font , alignX , alignY , clip , wordBreak , false ) dxDrawText ( sMessage , left - 1 , top + 1 , width - 1 , height + 1 , frameColor , scale , font , alignX , alignY , clip , wordBreak , false ) dxDrawText ( sMessage , left - 1 , top - 1 , width - 1 , height - 1 , frameColor , scale , font , alignX , alignY , clip , wordBreak , false ) dxDrawText ( message , left , top , width , height , color , scale , font , alignX , alignY , clip , wordBreak , false ) end SpawnS.lua: local ammo = { [9]={1}, [22]={170}, [25]={35}, [31]={300}, [39]={20}, [1]={1}, [5]={1}, [24]={77}, [26]={40}, [28]={200}, [30]={300}, [41]={1500}, [8]={1}, [23]={170}, [29]={240}, [34]={350}, [45]={1}, [2]={1}, [32]={350}, [37]={550}, [18]={15}, [3]={1}, [17]={15}, [42]={1500}, [16]={30}, [7]={1}, [35]={2} } addEvent("server:spawnOptions", true) addEventHandler("server:spawnOptions", root, function(skin, w1, w2, w3, w4, w5, x, y, z, rotz) spawnPlayer(source, x, y, z, rotz, skin) setElementInterior(source, 0) setElementDimension(source, 0) setCameraTarget(source, source) giveWeapon(source, w1, ammo[w1][1]) giveWeapon(source, w2, ammo[w2][1]) giveWeapon(source, w3, ammo[w3][1], true) giveWeapon(source, w4, ammo[w4][1]) giveWeapon(source, w5, ammo[w5][1]) end)
  11. Yah mayn, I totally forgot about them weapon creation functions...
  12. *NOTICE* This script is not finished yet! Ever wanted to control that static Minigun object in GTA:SA? Well... NOW YOU CAN! This video was brought to you by Bert Reymound ©, 2012
×
×
  • Create New...