Jump to content

[HELP] server function client-side how to?


Recommended Posts

Posted

Hi all i have my own script to spawn cars that has a gui when the player hits the marker.

And i want to add some cars to the Gui but only for players in ACL group called "Vip"

I know

isObjectInACLGroup() 

but it dont works client-side...

My script:

Client-Side:

jWin = guiCreateWindow(550,560,200,200,"Sistema de Veículos",false) 
guiSetVisible(jWin,false) 
function openGui() 
guiSetVisible(jWin,true) 
        function spawnveh(button, press) 
            if(press) then 
                if(button == "1") then 
                    x, y, z = getElementPosition(localPlayer) 
                    triggerServerEvent("crVeh", getRootElement(), 468, x, y, z, localPlayer) 
                end 
                if(button == "2") then 
                    x, y, z = getElementPosition(localPlayer) 
                    triggerServerEvent("crVeh", getRootElement(), 457, x, y, z, localPlayer) 
                end 
                if(button == "3") then 
                    x, y, z = getElementPosition(localPlayer) 
                    triggerServerEvent("crVeh", getRootElement(), 412, x, y, z, localPlayer) 
                end 
            end 
        end 
    addEventHandler("onClientKey", getRootElement(), spawnveh) 
    guiWindowSetSizable(jWin,false) 
    tGrid = guiCreateGridList(0,20,190,170,false,jWin) 
    guiGridListAddColumn(tGrid, "Tecla", 0.20) 
    guiGridListAddColumn(tGrid, "Nome", 0.65) 
    row1 = guiGridListAddRow(tGrid) 
    row2 = guiGridListAddRow(tGrid) 
    row3 = guiGridListAddRow(tGrid) 
    guiGridListSetItemText(tGrid, row1, 1, tostring(row1+1), false, false) 
    guiGridListSetItemText(tGrid, row1, 2, "Sanchez", false, false) 
    guiGridListSetItemText(tGrid, row2, 1, tostring(row2+1), false, false) 
    guiGridListSetItemText(tGrid, row2, 2, "Caddy", false, false) 
    guiGridListSetItemText(tGrid, row3, 1, tostring(row3+1), false, false) 
    guiGridListSetItemText(tGrid, row3, 2, "Voodoo", false, false)  
  
end 
addEvent("markerHitted", true) 
addEventHandler("markerHitted", getRootElement(), openGui) 
  
function hideGui() 
    guiSetVisible(jWin,false) 
    removeEventHandler("onClientKey", getRootElement(), spawnveh) 
end 
  
addEvent("markerLeaved", true) 
addEventHandler("markerLeaved", getRootElement(), hideGui) 

Server-side:

pv = { } 
 
sp1 = createMarker(1920.96960, -1791.41931, 12.25451, "cylinder", 1.5, 0, 255, 0, 150)
sp2 = createMarker(1372.22998, -1600.58765, 12.55247, "cylinder", 1.5, 0, 255, 0, 150)
sp3 = createMarker(1149.63818, -1429.25403, 14.79688, "cylinder", 1.5, 0, 255, 0, 150)
sp4 = createMarker(1204.98145, -1070.53796, 28.24623, "cylinder", 1.5, 0, 255, 0, 150)
sp5 = createMarker(652.31482, -1767.81738, 12.55009, "cylinder", 1.5, 0, 255, 0, 150)
sp6 = createMarker(2455.93091, -1787.65576, 12.54688, "cylinder", 1.5, 0, 255, 0, 150)
sp7 = createMarker(2154.16821, -1167.59106, 22.82215, "cylinder", 1.5, 0, 255, 0, 150)
sp8 = createMarker(-20.03092, -278.19138, 4.42969, "cylinder", 1.5, 0, 255, 0, 150)
sp9 = createMarker(1736.50134, 1877.01477, 9.82031, "cylinder", 1.5, 0, 255, 0, 150)
sp10 = createMarker(2377.19727, 2019.28247, 9.82031, "cylinder", 1.5, 0, 255, 0, 150)
sp11 = createMarker(2898.70703, 2454.66870, 9.82031, "cylinder", 1.5, 0, 255, 0, 150)
sp12 = createMarker(-1454.17456, 1870.05615, 31.63281, "cylinder", 1.5, 0, 255, 0, 150)
sp13 = createMarker(-2251.42944, 2329.95679, 3.81250, "cylinder", 1.5, 0, 255, 0, 150)
sp14 = createMarker(-2242.80200, 537.43109, 34.12649, "cylinder", 1.5, 0, 255, 0, 150)
sp15 = createMarker(-1985.65979, 269.49936, 34.17936, "cylinder", 1.5, 0, 255, 0, 150)
sp16 = createMarker(-1498.97607, 849.02643, 6.18750, "cylinder", 1.5, 0, 255, 0, 150)
sp17 = createMarker(-2142.76392, -2447.32666, 29.63276, "cylinder", 1.5, 0, 255, 0, 150)
 
createBlipAttachedTo(sp1, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp2, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp3, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp4, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp5, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp6, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp7, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp8, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp9, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp10, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp11, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp12, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp13, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp14, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp15, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp16, 38, 2, 0, 255, 0, 255, 0, 500)
createBlipAttachedTo(sp17, 38, 2, 0, 255, 0, 255, 0, 500)
 
 
function createTheVehicle(id, posx, posy, posz, player)
    if(isElement(pv[player])) then
        destroyElement(pv[player])
    end
        pv[player] = createVehicle(id, posx, posy, posz + 5)
        warpPedIntoVehicle(player, pv[player])
        if(getTeamName(getPlayerTeam(player)) == "Staff") then
            addVehicleUpgrade(pv[player], 1010)
        end
end
addEvent("crVeh", true)
addEventHandler("crVeh", getRootElement(), createTheVehicle)
 
--
 
addEventHandler("onMarkerHit", sp1,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp1,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp2,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp2,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp3,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp3,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp4,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp4,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp5,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp5,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp6,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp6,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp7,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp7,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp8,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp8,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp9,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp9,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp10,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp10,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
addEventHandler("onMarkerHit", sp11,
function(hitElement)
    if(getElementType(hitElement) == "player") then
        triggerClientEvent(hitElement, "markerHitted", getRootElement())
    end
end
)
 
addEventHandler("onMarkerLeave", sp11,
function(leftElement)
    if(getElementType(leftElement) == "player") then
        triggerClientEvent(leftElement, "markerLeaved", getRootElement())
    end
end
)
 
--
 
Posted

Client-side:

triggerServerEvent("Checkmyawesomegroupifiminit", getLocalPlayer()) 

Server-side:

--Code to check or she/he is in that group 
triggerClientEvent(source, "Backtoclientnamestufflol", source, --[[i just used my first source here : D]], variable-or-is-in-the-group) 

Posted

Tried this dont worked...

Client

function setvvar(root, yn) 
    if(yn == "yes") then vip = "yes" 
    else if(yn == "no") then vip = "no" 
end 
end 
triggerServerEvent("checkVip", getLocalPlayer()) 
addEvent("pisvip", true) 
addEventHandler("pisvip", getRootElement(), setvvar) 

Server

  
function checkVip(player) 
    if(isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)), aclGetGroup("Vip"))) then 
        triggerClientEvent(player, "pisvip", getRootElement(), "yes") 
    else 
        triggerClientEvent(player, "pisvip", getRootElement(), "no") 
    end 
end 
addEvent("checkVip", true) 
addEventHandler("checkVip", getRootElement(), checkVip) 

Any idea? :/

Posted

Use 'source' instead of 'player'. And remove 'player' out of the function. ONLY if you are using:

triggerServerEvent("fjkjkfjksdf", getLocalPlayer()) 

and not:

triggerServerEvent("dfsdfj", getRootElement(), getLocalPlayer()) 

Also:

function setvvar(root, yn) 

Remove 'root'.

Posted

Client-side:

function setvvar(yn) 
    vip = yn 
end 
end 
triggerServerEvent("checkVip", getLocalPlayer()) 
addEvent("pisvip", true) 
addEventHandler("pisvip", getRootElement(), setvvar) 

Server-side:

  
function checkVip() 
    if(isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Vip"))) then 
        triggerClientEvent(source, "pisvip", getRootElement(), "yes") 
    else 
        triggerClientEvent(source, "pisvip", getRootElement(), "no") 
    end 
end 
addEvent("checkVip", true) 
addEventHandler("checkVip", getRootElement(), checkVip) 

Edited again. :')

Posted

Err...

I'm having other problem...

I can check if player is vip yea so far so good...

but when the player disconnects (logs out) and relogs in and they hit the marker dont shows the ''VIP'' vehicles only the normal player vehicles and i have to restart resource and they are shown in the gui again... and when reconnects all happens again

Posted
Err...

I'm having other problem...

I can check if player is vip yea so far so good...

but when the player disconnects (logs out) and relogs in and they hit the marker dont shows the ''VIP'' vehicles only the normal player vehicles and i have to restart resource and they are shown in the gui again... and when reconnects all happens again

It would be better to store if the player is VIP with setElementData and getElementData

  
setElementData 
getElementData 
'onPlayerQuit' 
'onPlayerLogin' 
Posted
function checkVip() 
    if(isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Vip"))) then 
        triggerClientEvent(source, "pisvip", getRootElement(), "yes") 
    else 
        triggerClientEvent(source, "pisvip", getRootElement(), "no") 
    end 
end 
addEvent("checkVip", true) 
addEventHandler("checkVip", getRootElement(), checkVip) 

add event onPlayerLogin

That's all. :P

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...