HolaRocola Posted August 8, 2015 Posted August 8, 2015 Hola amigos, me descargué un script de la comunidad que se trata de que cuando un jugador le da click o control se activa el nitro, pero quiero saber como agregarlo para que sea solamente para admin? Hice esto pero nose si esta bien: g_Me = getLocalPlayer( ); g_Root = getRootElement( ); g_ResRoot = getResourceRootElement( ); function toggleNOS( key, state ) local accountName = getAccountName(getPlayerAccount(g_Me)); if isObjectInACLGroup("user."..accountName, aclGetGroup("Admin")) then local veh = getPedOccupiedVehicle( g_Me ); if veh and not isEditingPosition then if state == "up" then removeVehicleUpgrade( veh, 1010 ); setControlState( "vehicle_fire", false ); else addVehicleUpgrade( veh, 1010 ); end end end end addEventHandler( "onClientResourceStart", g_ResRoot, function( ) for index, g_Me in pairs(getElementsByType("player")) do bindKey(g_Me, "vehicle_fire", "both", toggleNOS ); bindKey(g_Me, "vehicle_secondary_fire", "both", toggleNOS ); end end )
Pipee20k Posted August 8, 2015 Posted August 8, 2015 (edited) isObjectInACLGroup solo funciona en serverside function resourceStart () for k, p in ipairs (getElementsByType("player")) do bindKey (p, "lalt", "down", toggleNos, p) end end addEventHandler ("onResourceStart", resourceRoot, resourceStart) function playerJoins () bindKey (source, "lalt", "down", toggleNos, source) end addEventHandler("onPlayerJoin", root, playerJoins) function toggleNos (thePlayer) local accName = getAccountName (getPlayerAccount (thePlayer)) if isObjectInACLGroup ("user."..accName, aclGetGroup ("Admin")) then triggerClientEvent (thePlayer, "toggleNos", thePlayer) end end g_Me = getLocalPlayer( ); g_Root = getRootElement( ); g_ResRoot = getResourceRootElement( ); function toggleNOS( key, state ) local accountName = getAccountName(getPlayerAccount(g_Me)); if isObjectInACLGroup("user."..accountName, aclGetGroup("Admin")) then local veh = getPedOccupiedVehicle( g_Me ); if veh and not isEditingPosition then if state == "up" then removeVehicleUpgrade( veh, 1010 ); setControlState( "vehicle_fire", false ); else addVehicleUpgrade( veh, 1010 ); end end end end addEvent ("toggleNOS", true) addEventHandler ("toggleNOS", root, toggleNOS) Mira si eso te funciona, el serverside lo saque de uno de mis primeros scripts XDD Edited August 9, 2015 by Guest
aka Blue Posted August 9, 2015 Posted August 9, 2015 Haces un trigger. Añades un evento al cliente y lo ejecutas desde el servidor usando triggerClientEvent
Enargy, Posted August 12, 2015 Posted August 12, 2015 Serverside... g_ResRoot = getResourceRootElement( getThisResource() ); function toggleNOS( thePlayer, key, state ) if isPlayerIsAdmin( thePlayer ) then local veh = getPedOccupiedVehicle( thePlayer ); if veh then if state == "up" then removeVehicleUpgrade( veh, 1010 ); else addVehicleUpgrade( veh, 1010 ); end end end end function isPlayerIsAdmin( player ) if isObjectInACLGroup("user."..getAccountName(getPlayerAccount( player )), aclGetGroup("Admin")) then return true end return false end addEventHandler( "onResourceStart", g_ResRoot, function( ) for index, g_Me in ipairs(getElementsByType("player")) do bindKey(g_Me, "vehicle_fire", "both", toggleNOS ); bindKey(g_Me, "vehicle_secondary_fire", "both", toggleNOS ); end end ) addEventHandler( "onPlayerJoin", root, function( ) bindKey(source, "vehicle_fire", "both", toggleNOS ); bindKey(source, "vehicle_secondary_fire", "both", toggleNOS ); end )
UserToDelete Posted August 13, 2015 Posted August 13, 2015 Yo lo que tenia para reconocer en clientSide los admins era esto --Esto es server side for k,v in ipairs(getElementsByType("player")) do if hasObjectPermissionTo(v, "command.ban") then setElementData(v, "admin", true) end end Luego en el client Side usaba el --Esto es client side getElementData(localPlayer, "admin") Si era admin, daba true, sino, false
Recommended Posts