Finijumper Posted August 20, 2014 Share Posted August 20, 2014 Como puedo restringir los comandos para que solo los puedan usar los admins, por ej. hay uno que es /be (bala explosiva) y hora lo pueden usar todas las personal del servidor. Link to comment
Castillo Posted August 20, 2014 Share Posted August 20, 2014 getPlayerAccount getAccountName aclGetGroup isObjectInACLGroup Necesitas esas funciones. Link to comment
Finijumper Posted August 20, 2014 Author Share Posted August 20, 2014 Pero no se como usarlas o donde ponerlas Link to comment
Tomas Posted August 20, 2014 Share Posted August 20, 2014 Publica el código o al menos la función que está handleada al comando. Link to comment
Finijumper Posted August 21, 2014 Author Share Posted August 21, 2014 El client.lua es este: bBullets = false function enableBlowingbullets() if (bBullets == false)then bBullets = true outputChatBox("Bala explosiva ativada.", 0, 255, 0) outputChatBox("Use /be para desativar.", 0, 255, 0) else bBullets = false outputChatBox("Bala explosiva desativada.", 255, 0, 0) outputChatBox("Use /be para ativar.", 255, 0, 0) end end addCommandHandler("be", enableBlowingbullets) function weaponfired (weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement ) if (bBullets == true)then triggerServerEvent ("bulletboom", source, hitX, hitY, hitZ ) end end addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer (), weaponfired ) Y el server.lua ese: addEvent ("bulletboom", true ) function bulletexplosion (hitX, hitY, hitZ) createExplosion ( hitX, hitY, hitZ, 2 ) end addEventHandler("bulletboom",getRootElement(),bulletexplosion) Link to comment
alex17 Posted August 21, 2014 Share Posted August 21, 2014 reemplaza tu server.lua por esto function bulletexplosion (hitX, hitY, hitZ) if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(source)), aclGetGroup ( "Admin" ) ) then createExplosion ( hitX, hitY, hitZ, 2 ) end end addEvent("bulletboom",true) addEventHandler("bulletboom",getRootElement(),bulletexplosion) Link to comment
Finijumper Posted August 21, 2014 Author Share Posted August 21, 2014 Funciona, pero me gustaría que la gente que no fuera admin no puediera usar el comando (o que no le saliera ningún mensaje cuando lo escribieran, ya que ahora no pueden disparar explosivos pero ven esto: Link to comment
Tomas Posted August 22, 2014 Share Posted August 22, 2014 bBullets = false function enableBlowingbullets() if (bBullets == false)then bBullets = true outputChatBox("Bala explosiva ativada.", 0, 255, 0) outputChatBox("Use /be para desativar.", 0, 255, 0) else bBullets = false outputChatBox("Bala explosiva desativada.", 255, 0, 0) outputChatBox("Use /be para ativar.", 255, 0, 0) end end addCommandHandler("be", enableBlowingbullets) function weaponfired (weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement ) if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(source)), aclGetGroup ( "Admin" ) ) then if (bBullets == true)then triggerServerEvent ("bulletboom", source, hitX, hitY, hitZ ) end end end addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer (), weaponfired ) Recuerda al postear códigos encerrarlos en el tag [lua ] [ /lua] Link to comment
Finijumper Posted August 22, 2014 Author Share Posted August 22, 2014 Gracias por lo del tag, no lo sabía. Ahora pruebo el código y edito el mensaje. EDITO: No funciona, Tomasito, he remplazado todo el código por el tuyo y ahora ni los admin pueden disparar explosivos. Y los que no son admins pueden usar el comando igualmente (les sale la imagen que puse anteriormente). Link to comment
Tomas Posted August 22, 2014 Share Posted August 22, 2014 Ohh cierto, ni me había dado cuenta que era Client-Side Con respecto a lo del chat no puedes poner un chat para una persona específica en el client-side. Deberías hacerlo en el sv-side. Postea todo el código y te lo arreglo todo, o al menos el orden de los argumentos de la función handleada al evento bulletboom. Link to comment
Finijumper Posted August 22, 2014 Author Share Posted August 22, 2014 El client.lua es este: bBullets = false function enableBlowingbullets() if (bBullets == false)then bBullets = true outputChatBox("Bala explosiva ativada.", 0, 255, 0) outputChatBox("Use /be para desativar.", 0, 255, 0) else bBullets = false outputChatBox("Bala explosiva desativada.", 255, 0, 0) outputChatBox("Use /be para ativar.", 255, 0, 0) end end addCommandHandler("be", enableBlowingbullets) function weaponfired (weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement ) if (bBullets == true)then triggerServerEvent ("bulletboom", source, hitX, hitY, hitZ ) end end addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer (), weaponfired ) Y el server.lua ese: addEvent ("bulletboom", true ) function bulletexplosion (hitX, hitY, hitZ) createExplosion ( hitX, hitY, hitZ, 2 ) end addEventHandler("bulletboom",getRootElement(),bulletexplosion) Link to comment
Tomas Posted August 22, 2014 Share Posted August 22, 2014 -- Sv side: function enableBlowingbullets(player) if getElementData(player,"bBullets") == "false" then if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then outputChatBox("Bala explosiva activada.",player, 0, 255, 0) outputChatBox("Use /be para desactivar.",player, 0, 255, 0) setElementData(player,"bBullets","true") else outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) outputChatBox("Use /be para activar.",player, 255, 0, 0) setElementData(player,"bBullets","false") end end end addCommandHandler("be", getRootElement(),enableBlowingbullets) function setfalse () setElementDatA(source,"bBullets","false") end addEventHandler("onPlayerLogin",getRootElement(),setfalse) -- Clientside addEvent ("bulletboom", true ) function bulletexplosion (hitX, hitY, hitZ) if getElementData(source,"bBullets") == "true" then createExplosion ( hitX, hitY, hitZ, 2 ) end end addEventHandler("bulletboom",getRootElement(),bulletexplosion) Link to comment
Finijumper Posted August 23, 2014 Author Share Posted August 23, 2014 Ahora ni los admin pueden activar la bala explosiva Cuando le doy a start script me sale eso: https://www.dropbox.com/s/0gr6ba1lmlcp8fj/consola%20be.png?dl=0 Link to comment
Tomas Posted August 23, 2014 Share Posted August 23, 2014 Ahora ni los admin pueden activar la bala explosiva Cuando le doy a start script me sale eso: https://www.dropbox.com/s/0gr6ba1lmlcp8fj/consola%20be.png?dl=0 -- Sv side: function enableBlowingbullets(player) if getElementData(player,"bBullets") == "false" then if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then outputChatBox("Bala explosiva activada.",player, 0, 255, 0) outputChatBox("Use /be para desactivar.",player, 0, 255, 0) setElementData(player,"bBullets","true") else outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) outputChatBox("Use /be para activar.",player, 255, 0, 0) setElementData(player,"bBullets","false") end end end addCommandHandler("be",enableBlowingbullets) function setfalse () setElementDatA(source,"bBullets","false") end addEventHandler("onPlayerLogin",getRootElement(),setfalse) -- Clientside addEvent ("bulletboom", true ) function bulletexplosion (hitX, hitY, hitZ) if getElementData(source,"bBullets") == "true" then createExplosion ( hitX, hitY, hitZ, 2 ) end end addEventHandler("bulletboom",getRootElement(),bulletexplosion) Link to comment
Finijumper Posted August 23, 2014 Author Share Posted August 23, 2014 No puedo activar el comando, independientemente de que sea Admin o no No se que podrá ser. Igualmente gracias por la ayuda que me estás dando crack Link to comment
Tomas Posted August 23, 2014 Share Posted August 23, 2014 Lol, el problema es que puse setElementDatA y Lua es sensible a las mayúsculas, ahí lo arreglo, lo siento:} -- Sv side: function enableBlowingbullets(player) if getElementData(player,"bBullets") == "false" then if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then outputChatBox("Bala explosiva activada.",player, 0, 255, 0) outputChatBox("Use /be para desactivar.",player, 0, 255, 0) setElementData(player,"bBullets","true") else outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) outputChatBox("Use /be para activar.",player, 255, 0, 0) setElementData(player,"bBullets","false") end end end addCommandHandler("be",enableBlowingbullets) function setfalse () setElementData(source,"bBullets","false") end addEventHandler("onPlayerLogin",getRootElement(),setfalse) -- Clientside addEvent ("bulletboom", true ) function bulletexplosion (hitX, hitY, hitZ) if getElementData(source,"bBullets") == "true" then createExplosion ( hitX, hitY, hitZ, 2 ) end end addEventHandler("bulletboom",getRootElement(),bulletexplosion) PD: Para que funcione debes activar el script, y reconectar. Link to comment
Finijumper Posted August 23, 2014 Author Share Posted August 23, 2014 Ahora funciona todo bien Pero cuando activo el comando como admin no disparo explosivos -.- Algo debe de estar mal en el código. Link to comment
Tomas Posted August 24, 2014 Share Posted August 24, 2014 Ya descubrí el problema Client side: function bulletexplosion (a,b,c,hitX, hitY, hitZ) if getElementData(source,"bBullets") == "si" then createExplosion ( hitX, hitY, hitZ, 2 ) end end addEventHandler("onClientPlayerWeaponFire",getRootElement(),bulletexplosion) Server-side: function enableBlowingbullets(player) if isObjectInACLGroup ( "user." .. getAccountName(getPlayerAccount(player)), aclGetGroup ( "Admin" ) ) then if getElementData(player,"bBullets") == "no" or not getElementData(player,"bBullets") then outputChatBox("Bala explosiva activada.",player, 0, 255, 0) outputChatBox("Use /be para desactivar.",player, 0, 255, 0) setElementData(player,"bBullets","si") else outputChatBox("Bala explosiva desactivada.",player, 255, 0, 0) outputChatBox("Use /be para activar.",player, 255, 0, 0) setElementData(player,"bBullets","no") end else outputChatBox("Necesitas ser admin para usar este comando!",player,255,0,0) end end addCommandHandler("be",enableBlowingbullets) Y Alexs.. No me vengas a joder con los elementData ._. Link to comment
Finijumper Posted August 24, 2014 Author Share Posted August 24, 2014 Muchas gracias Tomasito Funciona a la perfección y además me encanta la modificación que has echo con el mensaje de que necesitas ser admin. Link to comment
Recommended Posts