Linttamummo Posted January 4, 2014 Share Posted January 4, 2014 Hi. I made police job system, that I type /poliisi, I spawn as a police in SFPD. It worked well, I mean that spawn without arrest functions. But when i add those arrest functions onto it, it stopped to work. I dont know where is problem, but here is the server.lua: function createTeamsOnStart ( ) poliisi1 = createTeam ( "Poliisi", 0,0,255 ) end addEventHandler ( "onResourceStart", resourceRoot, createTeamsOnStart ) function kytta ( thePlayer ) local level = getPlayerWantedLevel ( thePlayer ) if ( level > 0 ) then outputChatBox ( "Sinulla on Wanted tähtiä, joten et voi olla poliisi.", thePlayer, 255,0,0 ) return else outputChatBox ( "Tervetuloa työvuorollesi. Turvallista matkaa.", thePlayer, 0,0,255 ) setPlayerTeam ( thePlayer, poliisi1 ) setPlayerNametagColor ( thePlayer, 0,0,255 ) spawnPlayer ( thePlayer, -1606, 675, -5 ) setElementModel ( thePlayer, 280 ) takeAllWeapons ( thePlayer ) giveWeapon ( thePlayer, 3, 1 ) giveWeapon ( thePlayer, 22, 250 ) giveWeapon ( thePlayer, 25, 100 ) giveWeapon ( thePlayer, 29, 125 ) giveWeapon ( thePlayer, 31, 125 ) giveWeapon ( thePlayer, 41, 2000 ) end end addCommandHandler ( "poliisi", kytta ) function pidattaminen ( pidattaja, weapon, bodypart, loss ) if (pidattaja) and (weapon == 3) then if getElementParent (pidattaja) == poliisi1 then local maija = pidattaja local vanki = source local tahti = getPlayerWantedLevel ( source ) if (getElementData ( vanki, "currentstatus" ) ~= "pidatetty") and (tahti > 0) then if (getElementData ( pidattaja, "currentarrests" ) ~= "single" ) and (getElementData ( pidattaja, "currentarrests" ) ~= "double" ) then setElementData ( maija, "currentarrests", "single" ) triggerClientEvent(maija,"copdirections",maija) elseif (getElementData ( pidattaja, "currentarrests" ) == "single" ) then setElementData ( maija, "currentarrests", "double" ) end setElementData ( vanki, "currentstatus", "pidatetty" ) setElementData ( vanki, "captor", maija ) showCursor ( source, true ) toggleAllControls ( source, false, true, false ) walktheprisoner ( maija, vanki ) setElementData ( vanki, "arrestTimeout", setTimer ( freetheguy, 180000, 1, vanki )) end end end end addEventHandler ( "onPlayerDamage", getRootElement (), pidattaminen ) function yankhimout(player, seat, jacker) if isElement(jacker) then if getElementParent(jacker) == poliisi1 then local tahti = getPlayerWantedLevel( player ) if tahti > 0 then if (getElementData ( jacker, "currentarrests" ) ~= "single" ) and (getElementData ( jacker, "currentarrests" ) ~= "double" ) then local maija = jacker local vanki = player setElementData ( vanki, "currentstatus", "pidatetty" ) setElementData ( vanki, "captor", maija ) setElementData ( maija, "currentarrests", "single" ) triggerClientEvent(maija,"copdirections",maija) showCursor ( vanki, true ) toggleAllControls ( vanki, false, true, false ) walktheprisoner ( maija, vanki ) setElementData ( vanki, "arrestTimeout", setTimer ( freetheguy, 180000, 1, vanki )) elseif (getElementData ( jacker, "currentarrests" ) == "single" ) then local maija = jacker local vanki = player setElementData ( vanki, "currentstatus", "pidatetty" ) setElementData ( vanki, "captor", maija ) setElementData ( maija, "currentarrests", "double" ) showCursor ( vanki, true ) toggleAllControls ( vanki, false, true, false ) walktheprisoner ( maija, vanki ) setElementData ( vanki, "arrestTimeout", setTimer ( freetheguy, 180000, 1, vanki )) end end end end end addEventHandler ( "onVehicleExit", getRootElement(), yankhimout ) function walktheprisoner(maija, vanki) if (getElementData ( vanki, "currentstatus" ) == "pidatetty") and (getPedOccupiedVehicle ( vanki ) == false ) then local copx, copy, copz = getElementPosition ( maija ) local prisonerx, prisonery, prisonerz = getElementPosition ( vanki ) copangle = ( 360 - math.deg ( math.atan2 ( ( copx - prisonerx ), ( copy - prisonery ) ) ) ) % 360 setPedRotation ( vanki, copangle ) setCameraTarget ( vanki, vanki ) local dist = getDistanceBetweenPoints2D ( copx, copy, prisonerx, prisonery ) if ( dist > 16 ) then freetheguy ( vanki ) --FREES PRISONER IF HE GETS FAR AWAY elseif ( dist > 12 ) then setControlState ( vanki, "sprint", true ) setControlState ( vanki, "walk", false ) setControlState ( vanki, "forwards", true ) local zombify = setTimer ( walktheprisoner, 500, 1, maija, vanki ) elseif ( dist > 6 ) then setControlState ( vanki, "sprint", false ) setControlState ( vanki, "walk", false ) setControlState ( vanki, "forwards", true ) local zombify = setTimer ( walktheprisoner, 500, 1, maija, vanki ) elseif ( dist > 1.5 ) then setControlState ( vanki, "sprint", false ) setControlState ( vanki, "walk", true ) setControlState ( vanki, "forwards", true ) local zombify = setTimer ( walktheprisoner, 500, 1, maija, vanki ) elseif ( dist < 1.5 ) then setControlState ( vanki, "sprint", false ) setControlState ( vanki, "walk", false ) setControlState ( vanki, "forwards", false ) local zombify = setTimer ( walktheprisoner, 500, 1, maija, vanki ) end end end function freetheguy (vanki) local thecaptor = (getElementData ( vanki, "captor" )) setElementData ( vanki, "currentstatus", "none" ) setElementData ( vanki, "captor", "none" ) showCursor ( vanki, false ) setControlState ( vanki, "sprint", false ) setControlState ( vanki, "walk", false ) setControlState ( vanki, "forwards", false ) toggleAllControls (vanki, true) local prisonercheck = setTimer ( checkforprisoners, 1500, 1, thecaptor ) TimoutTimer = (getElementData ( vanki, "arrestTimeout" )) if isTimer(TimoutTimer) then killTimer(TimoutTimer) setElementData ( vanki, "arrestTimeout", nil) TimeoutTimer = nil end end function checkforprisoners(maija) if isElement(maija) then local prisoners = 0 local players = getElementsByType ( "player" ) for theKey,thePlayer in ipairs(players) do if (getElementData ( thePlayer, "captor" ) == maija ) then prisoners = prisoners+1 end end if prisoners == 0 then setElementData ( maija, "currentarrests", "none" ) triggerClientEvent( maija,"clearcopdirections",maija) elseif prisoners == 1 then setElementData ( maija, "currentarrests", "single" ) elseif prisoners == 2 then setElementData ( maija, "currentarrests", "double" ) end end end function cheatescape (playerSource) freetheguy ( playerSource ) setPlayerWantedLevel( playerSource, 0 ) end addCommandHandler ( "minaolenvanki", cheatescape ) ]] function someonedied( ammo, pidattaja, weapon, bodypart ) local tahti = getPlayerWantedLevel( source ) if tahti > 0 then if isElement(pidattaja) then if getElementParent(pidattaja) == poliisi1 then local Kreward = get("legalsystem.Kreward") local thisreward = tahti*Kreward givePlayerMoney ( pidattaja, thisreward ) -- REWARDS A KILL IF THE PLAYER HAS A WANTED LEVEL end end end if (getElementData ( source, "currentstatus" ) == "pidatetty") then freetheguy ( source ) --IF A PRISONER DIES, FREES THEM FOR RESPAWN end if (getElementData ( source, "currentarrests" ) == "single" ) or (getElementData ( source, "currentarrests" ) == "double" ) then setElementData ( source, "currentarrests", "none" ) local players = getElementsByType ( "player" ) for theKey,thePlayer in ipairs(players) do if (getElementData ( thePlayer, "captor" ) == source ) then freetheguy ( thePlayer ) --IF A COP DIES, FREES ALL HIS PRISONERS end end end end addEventHandler ( "onPlayerWasted", getRootElement(), someonedied ) function playergotout( player, seat, jacker ) if isElement(jacker) then if (getElementData ( player, "currentarrests" ) == "single" ) or (getElementData ( player, "currentarrests" ) == "double" ) then local players = getElementsByType ( "player" ) for theKey,thePlayer in ipairs(players) do if (getElementData ( thePlayer, "captor" ) == player ) then freetheguy ( thePlayer ) end end end end end addEventHandler ( "onVehicleExit", getRootElement(), playergotout ) function aplayerleft() if (getElementData ( source, "currentarrests" ) == "single" ) or (getElementData ( source, "currentarrests" ) == "double" ) then local players = getElementsByType ( "player" ) for theKey,thePlayer in ipairs(players) do if (getElementData ( thePlayer, "captor" ) == source ) then freetheguy ( thePlayer ) -- IF A COP DISCONNECTS, FREES HIS PRISONERS end end end end addEventHandler ( "onPlayerQuit", getRootElement(), aplayerleft ) function copcarenter (vehicle, seat, jacked ) local carid = getElementModel( vehicle ) if carid == 598 or carid == 596 or carid == 597 or carid == 427 or carid == 490 then if getElementParent(source) == poliisi1 then if (getElementData ( source, "currentarrests" ) == "single" ) or (getElementData ( source, "currentarrests" ) == "double" ) then local players = getElementsByType ( "player" ) for theKey,thePlayer in ipairs(players) do if (getElementData ( thePlayer, "captor" ) == source ) then local copx, copy, copz = getElementPosition ( source ) local prisonerx, prisonery, prisonerz = getElementPosition ( thePlayer ) local dist = getDistanceBetweenPoints2D ( copx, copy, prisonerx, prisonery ) if ( dist < 6 ) then if (getVehicleOccupant ( vehicle, 2 ) == false) then warpPedIntoVehicle ( thePlayer, vehicle, 2 ) elseif (getVehicleOccupant ( vehicle, 3 ) == false) then warpPedIntoVehicle ( thePlayer, vehicle, 3 ) end end end end end end elseif carid == 599 then if getElementParent(source) == poliisi1 then if (getElementData ( source, "currentarrests" ) == "single" ) or (getElementData ( source, "currentarrests" ) == "double" ) then local players = getElementsByType ( "player" ) for theKey,thePlayer in ipairs(players) do if (getElementData ( thePlayer, "captor" ) == source ) then local copx, copy, copz = getElementPosition ( source ) local prisonerx, prisonery, prisonerz = getElementPosition ( thePlayer ) local dist = getDistanceBetweenPoints2D ( copx, copy, prisonerx, prisonery ) if ( dist < 6 ) then if (getVehicleOccupant ( vehicle, 2 ) == false) then warpPedIntoVehicle ( thePlayer, vehicle, 1 ) end Link to comment
CristianoRonaldo14 Posted January 4, 2014 Share Posted January 4, 2014 Problem You Can Change SQLite For Saving Edit 55- where code ?? Link to comment
Linttamummo Posted January 4, 2014 Author Share Posted January 4, 2014 Whole edit of message: So, i tried to do some version of police script with "jail" and timer, and it looks like this. Fix something if I made mistake function createTeamsOnStart ( ) poliisi1 = createTeam ( "Poliisi", 0,0,255 ) end addEventHandler ( "onResourceStart", resourceRoot, createTeamsOnStart ) function kytta ( thePlayer ) local level = getPlayerWantedLevel ( thePlayer ) if ( level > 0 ) then outputChatBox ( "Sinulla on Wanted tähtiä, joten et voi olla poliisi.", thePlayer, 255,0,0 ) return else outputChatBox ( "Tervetuloa työvuorollesi. Turvallista matkaa.", thePlayer, 0,0,255 ) setPlayerTeam ( thePlayer, poliisi1 ) setPlayerNametagColor ( thePlayer, 0,0,255 ) spawnPlayer ( thePlayer, -1606, 675, -5 ) setElementModel ( thePlayer, 280 ) takeAllWeapons ( thePlayer ) giveWeapon ( thePlayer, 3, 1 ) giveWeapon ( thePlayer, 22, 250 ) giveWeapon ( thePlayer, 25, 100 ) giveWeapon ( thePlayer, 29, 125 ) giveWeapon ( thePlayer, 31, 125 ) giveWeapon ( thePlayer, 41, 2000 ) end end addCommandHandler ( "poliisi", kytta ) function pidattaminen (attackerweapon, poliisi, bodypart) local poliisi = attacker local uhri = source local tahti = getPlayerWantedLevel ( source ) if ( tahti > 0 ) then getElementType ( source, "uhri" ) if (poliisi) and (attackerweapon == 3) then if getTeamName( theTeam ) == "Poliisi" then setPedFrozen ( source, frozen ) setElementInterior (source, 6, 264, 78, 1002) setElementDimension (source, 1) local timer = setTimer ( source, 120000, 1 ) if isTimer ( timer ) then killTimer ( timer ) setElementInterior (source, nil, 1544, -1670, 14) setElementDimension (source, 0) setPedFrozen ( source, not frozen ) setPlayerWantedLevel ( source, 0 ) end end end end end addEventHandler ( "onPlayerDamage", getRootElement (), pidattaminen ) 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