Jump to content

qaisjp

Retired Staff
  • Posts

    2,344
  • Joined

  • Days Won

    10

Everything posted by qaisjp

  1. Safe houses, jobs (mechanic has certain specialities, medic has specialities, cops can arrest. medics can drive heavier vehicles better(handling funcs (triple paranthesis ftw)))
  2. invalid movement. camera is locked abnormally. no errors no crashes. just cosmetic death.
  3. Jeeezus. Why does topics always die when I post last. DarkLink, is this still alive?
  4. on foot.. maybe you should refrain on using it too much
  5. basically it is fu.c.k.ed up with the edit
  6. Sorry for double post, but here is the current (fucked up) code: (c_core) @ http://pastebin.com/Vvay03ea and the server is teh same
  7. Didn't exactly work kinda fucked up beyond description --[[ This resource has been created by qaisjp Find more epic resources at [url=http://www.code.google.com/p/mta-freeroamplus]http://www.code.google.com/p/mta-freeroamplus[/url] Please give me credit! ]] -------------------[..] --///////////////-- ------------------- --[[do -- This contains content from the freecam resource and has been editied by karlis, so thanks to him. TO DO LIST: When moving forward, the ufo will move forward. Only forward is supported (W) Cursor look-at direction changes the rotation of the ufo. So when moving the ufo will always move forward, but in the camera lookat direction ]] local zoom=10 --how far is camera target from ufo local mouseFrameDelay = 0 local ratio = 3 --how many times distance from camera to ufo is smaller then distance from ufo to camera target local mouseSensetivity = 0.25 --ovbious much? local width, height = guiGetScreenSize() local PI = math.pi local hit local zOffset = 3 --how much the camera is higher then ufo itself. -- state variables local speed = 0 local rotX, rotY = 0,0 -- configurable parameters local options = { invertMouseLook = false, normalMaxSpeed = 2, slowMaxSpeed = 0.2, fastMaxSpeed = 12, smoothMovement = true, acceleration = 0.3, decceleration = 0.15, maxYAngle = 188, key_fastMove = "lshift", key_slowMove = "lalt", key_forward = "w", } local rootElement = getRootElement() local getKeyState = getKeyState do local mta_getKeyState = getKeyState function getKeyState(key) if isMTAWindowActive() then return false else return mta_getKeyState(key) end end end --heavily modified freecam resource's core function freecamFrame() if not data.enabled then return end if getKeyState(options.key_fastMove) then options.mouseSensitivity = 0.7 elseif getKeyState(options.key_slowMove) then options.mouseSensitivity = 0.1 else options.mouseSensitivity = 0.3 end do local additions = {"stopedit", "showextras", "extragrid", "mapaccess", "pref"} for i,v in ipairs(additions) do local gui, show = getControl(v), isCursorShowing() guiSetAlpha(gui, show and 1 or 0.9) guiSetEnabled(gui, show) end end setElementPosition(getPedOccupiedVehicle(me) or me, getElementPosition(ufo)) local cameraAngleX = rotX local cameraAngleY = rotY local freeModeAngleZ = math.sin(cameraAngleY) local freeModeAngleY = math.cos(cameraAngleY) * math.cos(cameraAngleX) local freeModeAngleX = math.cos(cameraAngleY) * math.sin(cameraAngleX) local camPosX, camPosY, camPosZ = getElementPosition(ufo) local camPosZ = camPosZ + zOffset local mspeed = options.normalMaxSpeed if getKeyState ( options.key_fastMove ) then mspeed = options.fastMaxSpeed elseif getKeyState ( options.key_slowMove ) then mspeed = options.slowMaxSpeed end if options.smoothMovement then local acceleration = options.acceleration local decceleration = options.decceleration -- Check to see if the forwards key are pressed local speedKeyPressed = false if getKeyState ( options.key_forward ) then speed = speed + acceleration speedKeyPressed = true end -- If no forwards key were pressed, then gradually slow down the movement towards 0 if not speedKeyPressed then speed = speed - decceleration end -- Check the ranges of values - set the speed to 0 if its very close to 0 (stops jittering), and limit to the maximum speed if speed < decceleration then speed = 0 elseif speed > mspeed then speed = mspeed end else speed = 0 if getKeyState ( options.key_forward ) then speed = mspeed end end -- Update the camera position based on the forwards/backwards speed camPosX = camPosX + freeModeAngleX * speed camPosY = camPosY + freeModeAngleY * speed local camX, camY = camPosX, camPosY -- calculate a target based on the current position and an offset based on the angle local camTargetX = camPosX + freeModeAngleX * zoom local camTargetY = camPosY + freeModeAngleY * zoom local camTargetZ = camPosZ + freeModeAngleZ * zoom camPosX = camPosX - ( camTargetX - camPosX ) / ratio camPosY = camPosY - ( camTargetY - camPosY ) / ratio camPosZ = camPosZ - ( camTargetZ - camPosZ ) / ratio if not isLineOfSightClear(camPosX,camPosY,camPosZ,camPosX,camPosY,camPosZ,true,true,true,true,false,true,false,localPlayer) then _,camPosX,camPosY,camPosZ=processLineOfSight(camPosX,camPosY,camPosZ,camPosX,camPosY,camPosZ,true,true,true,true,false,true,false,false,localPlayer) end -- Set the new camera position and target setElementRotation(ufo,0,0,math.deg(-rotX)) setCameraMatrix ( camPosX, camPosY, camPosZ, camTargetRealX, camTargetRealY, camTargetRealZ ) -- Set the new camera position and target local _,_,ufoZ = getElementPosition(ufo) setElementPosition(ufo, camX, camY, ufoZ) end local function freecamMouse (cX,cY,aX,aY) --ignore mouse movement if the cursor or MTA window is on --and do not resume it until at least 5 frames after it is toggled off --(prevents cursor mousemove data from reaching this handler) if not data.enabled then return end if isCursorShowing() or isMTAWindowActive() then mouseFrameDelay = 5 return elseif mouseFrameDelay > 0 then mouseFrameDelay = mouseFrameDelay - 1 return end -- how far have we moved the mouse from the screen center? local width, height = guiGetScreenSize() aX = aX - width / 2 aY = aY - height / 2 --invert the mouse look if specified if options.invertMouseLook then aY = -aY end rotX = rotX + aX * options.mouseSensitivity * 0.01745 rotY = rotY - aY * options.mouseSensitivity * 0.01745 local PI = math.pi if rotX > PI then rotX = rotX - 2 * PI elseif rotX < -PI then rotX = rotX + 2 * PI end if rotY > PI then rotY = rotY - 2 * PI elseif rotY < -PI then rotY = rotY + 2 * PI end -- limit the camera to stop it going too far up or down - PI/2 is the limit, but we can't let it quite reach that or it will lock up -- and strafeing will break entirely as the camera loses any concept of what is 'up' if rotY < -PI / 2.05 then rotY = -PI / 2.05 elseif rotY > PI / 2.05 then rotY = PI / 2.05 end end addEventHandler("onClientRender", root, freecamFrame) addEventHandler("onClientCursorMove", root, freecamMouse) --[[state variables local speed = 0 local strafespeed = 0 local rotX, rotY = 0,0 local velocityX, velocityY, velocityZ -- configurable parameters local options = { invertMouseLook = false, normalMaxSpeed = 1, slowMaxSpeed = 0.2, fastMaxSpeed = 9, smoothMovement = true, acceleration = 0.3, decceleration = 0.15, mouseSensitivity = 0.3, maxYAngle = 188, key_fastMove = "lshift", key_slowMove = "lalt", key_forward = "w", zoom = 100, ratio = 3, --how many times distance from camera to player is smaller then distance from player to camera target } local mouseFrameDelay = 0 local getKeyState = getKeyState do local mta_getKeyState = getKeyState function getKeyState(key) if isMTAWindowActive() or isCursorShowing()then return false else return mta_getKeyState(key) end end end -- PRIVATE local function freecamFrame () if not data.enabled then return end if getKeyState(options.key_fastMove) then options.mouseSensitivity = 0.7 elseif getKeyState(options.key_slowMove) then options.mouseSensitivity = 0.1 else options.mouseSensitivity = 0.3 end do local additions = {"stopedit", "showextras", "extragrid", "mapaccess", "pref"} for i,v in ipairs(additions) do local gui, show = getControl(v), isCursorShowing() guiSetAlpha(gui, show and 1 or 0.9) guiSetEnabled(gui, show) end end setElementPosition(getPedOccupiedVehicle(me) or me, getElementPosition(ufo)) -- work out an angle in radians based on the number of pixels the cursor has moved (ever) local cameraAngleX = rotX local cameraAngleY = rotY local freeModeAngleZ = math.sin(cameraAngleY) local freeModeAngleY = math.cos(cameraAngleY) * math.cos(cameraAngleX)
  8. Hmmm, good luck. If you need a tester I can test for you.
  9. Haha noprobs Samer=) It's hardly finished! Need to script my prefs and implement the maps. Also the camera needs to be fixed (X and Y) and I'm waiting for karlis on that.
  10. That was without the movement implementing. Or no, you didn't send it to me. Unless you put it in the quote.. cos I didn't check the quotation part..
  11. I managed to do the Z axis one, but I dunno how to do the X and Y =(
  12. shenglu, please don't bump ;P
  13. Yes. (I think I understand what you mean by "Implementing the camera" since that feature existed a ton of edits back.
  14. getPlayerName:gsub("#%x%x%x%x%x%x", "") when looping players
  15. To get the latest script click below, remember this is incomplete! c_core : http://pastebin.com/W46QjvR1 s_core : http://pastebin.com/5URwcGNa NEW UPDATE! Syncing with the server should now be made! Object Rotation is now corresponding to Camera Rotation Better camera rotation, implemented on the Z axis, I can't do the X and Y axis since I'm shit with the mathematics aspect of that. bugfix: no longer can accelerate using W when mouse is showing! To do/Coming next: Less server side script due to non-need of events (objects aren't synced, but vehicles are) Perhaps a few extras ( I NEED HELP ON THE WORLD COLLIDE!!!!!!!!!!!!!!!! ) Nuke enhancement and/or fixes. A release and screenshot updates (maybe or maybe not..) Model+Texture for a new UFO ~ I cannot do this, calling all modellers ;_;! ~ Interior and Exterior needed! ENJOY =) edit1: onoes a bug, very slowly the ufo decreases it's Z position. unfortunately, i dunno how to fix this. edit2: hacky fix. client script updated. edit3: sorry for forgetting to thank you karlis =) I didn't quite get what you meant but I understood later on ;D edit4: took out the hacky fix of edit2 that fixed edit1 and replaced it with a proper fix.
  16. qaisjp

    Downloading

    i got it from uswitch, im just rounding off too. uswitch.com also its £3 not 3 eros! POUNDS GPB
  17. CapY, we are just expressing our thoughts, it isn't my right to say this, but GET THE :O OUT OF THIS FORUM if you cannot reply constructive, meaningful and important posts when a serious question/answer has been said. MTA gives you the basic neccesities and utilities, and some basic gamemodes. The actual software is more important that the resources, why do we have the community? I have to agree with Tank07 for a nice idea, but it shouldn't be done. CapY, remember that the community is there for a reason! Edit, June 2020: I don't agree with this comment. Sorry!
  18. qaisjp

    Downloading

    Well, in India 2mb/s is apparently very good (fuck india's shitty isp's + no offence + no racism) I was justt seeing some internet packages I should get when I move to England again and 20mb/s unlimited up and down for £3 monthly. (o2)
  19. qaisjp

    Downloading

    rupees the currency of india (im from england, living in india for 3 years if you are wondering)
  20. qaisjp

    Downloading

    This is one of the reasons I strongly dislike living in India, "Indian", I had 200kb/s once. I made my Dad gimme the 1mb/s (second fastest :C) and the download speeds are tolerable now. Don't think of using dongles, unless it is a few certain ones. Get a router and may I know your ISP? Don't go to sa-mp, there are three words to describe samp ":~ty r***ed application", and that is nothing. Don't go to SA-MP, if you want a good mta server but you want less download, go on "DKR Freeroam++" Good luck. (999RS. monthly, unlimitied bandwidth and download/upload, 1mb/s) - Mine Edit, June 2020: I apologise for this comment.
  21. diego means it is pointless since there shouldn't be a server browser with 5000 features OR a server that came with over 9000 features. some things have to be made ourselves. I doubt the mta team or anyone else will make it because it is a waste of time and make result in unwanted spam. Can't you just go in a server, say hi, and start PM'ing them or ask for their skype/msn/gtalk/hmm? If this was to be implemented, i "Thumb Down" to integrate the request feature into serverbrowser, and you shold request while ingame. Edit, June 2020: I don't agree with this comment. Sorry!
  22. sorry for double post but code updated to support "action nuke" and quickmap (quickmap movement not implemented yet)
×
×
  • Create New...