LPM//Bruno Posted August 23, 2014 Share Posted August 23, 2014 Bueno amigos nesesito ayuda con mi script de /dm, lo que hace es desactivar las armas y el daño al ponerlo. Hubo conflictos con el grenzones, asi que lo unii a los 2 en 1 solo script. EL problema es que cuando un usuario se warpea a una zona verde, y luego va hacia otra , eesta se bugea y el usuario puede pegar en zona verde. EL otro problema es que cuando los users ponen en mi panel de FR el comando destrabar (killLocalPlayer() es) es decir el usuario muere, y respawnea yo he puesto para que los usuarios cuando esten en una zona verde NO pudieran utilizar el comando /dm pero cuando mueren, en la zona de respawn este comando se bugea y pueden utilizarlo, de forma que salen y pueden matar a cualquiera y quedar inmortales. CLIENT --- by BRUNO modop = false zonaverde = false addEvent ("entra",true) addEventHandler ("entra",getRootElement(), function() zonaverde = true addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), stopDamage ) addEventHandler ( "onClientPlayerStealthKill", getLocalPlayer(), stopDamage ) addEventHandler ( "onClientPedDamage", getLocalPlayer(), stopDamage ) toggleControl ("fire", false) toggleControl ("aim_weapon", false) toggleControl ("vehicle_fire", false) toggleControl ("vehicle_secondary_fire ", false) showPlayerHudComponent ("weapon", false) showPlayerHudComponent ("crosshair", false) showPlayerHudComponent ("ammo", false) toggleControl ("next_weapon", false) toggleControl ("previous_weapon", false) end ) addEvent ("sale",true) addEventHandler ("sale",getRootElement(), function() zonaverde = false if (modop == true) then -- comprueba si el dm esta activado o no addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), stopDamage ) addEventHandler ( "onClientPlayerStealthKill", getLocalPlayer(), stopDamage ) addEventHandler ( "onClientPedDamage", getLocalPlayer(), stopDamage ) setElementAlpha (getLocalPlayer(), 255) toggleControl ("fire", false) toggleControl ("aim_weapon", false) toggleControl ("vehicle_fire", false) toggleControl ("vehicle_secondary_fire ", false) showPlayerHudComponent ("weapon", false) showPlayerHudComponent ("crosshair", false) showPlayerHudComponent ("ammo", false) toggleControl ("next_weapon", false) toggleControl ("previous_weapon", false) else removeEventHandler ( "onClientPlayerDamage", getLocalPlayer(), stopDamage ) removeEventHandler ( "onClientPlayerStealthKill", getLocalPlayer(), stopDamage ) removeEventHandler ( "onClientPedDamage", getLocalPlayer(), stopDamage ) setElementAlpha (getLocalPlayer(), 255) toggleControl ("fire", true) toggleControl ("aim_weapon", true) toggleControl ("vehicle_fire", true) toggleControl ("vehicle_secondary_fire ", true) showPlayerHudComponent ("weapon", true) showPlayerHudComponent ("crosshair", true) showPlayerHudComponent ("ammo", true) toggleControl ("next_weapon", true) toggleControl ("previous_weapon", true) end end ) anti_pasivo_abuse = false function pasivo() if anti_pasivo_abuse then triggerServerEvent("MensajeAntiAbuse", getLocalPlayer(), getLocalPlayer()) return end anti_pasivo_abuse = true setTimer(function() anti_pasivo_abuse = false end, 180000, 1) if zonaverde == true then return end if (modop == false) then modop = true addEventHandler ("onClientPlayerDamage", getLocalPlayer(), stopDamage) addEventHandler ("onClientPlayerStealthKill", getLocalPlayer(), stopDamage) addEventHandler ("onClientPedDamage", getLocalPlayer(), stopDamage) setElementAlpha (getLocalPlayer(), 255) toggleControl ("fire", false) toggleControl ("aim_weapon", false) toggleControl ("vehicle_fire", false) toggleControl ("vehicle_secondary_fire ", false) toggleControl ("next_weapon", false) toggleControl ("previous_weapon", false) showPlayerHudComponent ("weapon", false) showPlayerHudComponent ("crosshair", false) showPlayerHudComponent ("ammo", false) triggerServerEvent("DmON", getLocalPlayer(), getLocalPlayer()) triggerServerEvent("ActivarDM", getLocalPlayer(), getLocalPlayer()) else modop = false removeEventHandler ( "onClientPlayerDamage", getLocalPlayer(), stopDamage ) removeEventHandler ( "onClientPlayerStealthKill", getLocalPlayer(), stopDamage ) removeEventHandler ( "onClientPedDamage", getLocalPlayer(), stopDamage ) setElementAlpha (getLocalPlayer(), 255) toggleControl ("fire", true) toggleControl ("aim_weapon", true) toggleControl ("vehicle_fire", true) toggleControl ("vehicle_secondary_fire ", true) toggleControl ("next_weapon", true) toggleControl ("previous_weapon", true) showPlayerHudComponent ("weapon", true) showPlayerHudComponent ("crosshair", true) showPlayerHudComponent ("ammo", true) toggleControl ("next_weapon", true) toggleControl ("previous_weapon", true) triggerServerEvent("DmOFF", getLocalPlayer(), getLocalPlayer()) triggerServerEvent("DesactivarDM", getLocalPlayer(), getLocalPlayer()) end end addEvent ("pasivo",true) addEventHandler ("pasivo",getLocalPlayer(),pasivo) function NoKill() if (modop == true) then addEventHandler ("onClientPlayerDamage", getLocalPlayer(), stopDamage) addEventHandler ("onClientPlayerStealthKill", getLocalPlayer(), stopDamage) addEventHandler ("onClientPedDamage", getLocalPlayer(), stopDamage) setElementAlpha (getLocalPlayer(), 255) toggleControl ("fire", false) toggleControl ("aim_weapon", false) toggleControl ("vehicle_fire", false) toggleControl ("vehicle_secondary_fire ", false) showPlayerHudComponent ("weapon", false) showPlayerHudComponent ("crosshair", false) showPlayerHudComponent ("ammo", false) toggleControl (hitElement, "next_weapon", false) toggleControl (hitElement, "previous_weapon", false) end end addEventHandler("onClientPlayerWasted", getLocalPlayer(), NoKill) function stopDamage () cancelEvent() end ---- Contenido del realdriveby local driver = false local shooting = false local helpText,helpAnimation lastSlot = 0 settings = {} --This function simply sets up the driveby upon vehicle entry local function setupDriveby( player, seat ) --If his seat is 0, store the fact that he's a driver if seat == 0 then driver = true else driver = false end --By default, we set the player's equiped weapon to nothing. setPedWeaponSlot( localPlayer, 0 ) if settings.autoEquip then toggleDriveby() end end addEventHandler( "onClientPlayerVehicleEnter", localPlayer, setupDriveby ) --Tell the server the clientside script was downloaded and started addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()), function() bindKey ( "mouse2", "down", "Toggle Driveby", "" ) bindKey ( "e", "down", "Next driveby weapon", "1" ) bindKey ( "q", "down", "Previous driveby weapon", "-1" ) toggleControl ( "vehicle_next_weapon",false ) toggleControl ( "vehicle_previous_weapon",false ) triggerServerEvent ( "driveby_clientScriptLoaded", localPlayer ) helpText = dxText:create("",0.5,0.85) helpText:scale(1) helpText:type("stroke",1) end ) addEventHandler("onClientResourceStop",getResourceRootElement(getThisResource()), function() toggleControl ( "vehicle_next_weapon",true ) toggleControl ( "vehicle_previous_weapon",true ) end ) --Get the settings details from the server, and act appropriately according to them addEvent ( "doSendDriveBySettings", true ) addEventHandler("doSendDriveBySettings",localPlayer, function(newSettings) settings = newSettings --We change the blocked vehicles into an indexed table that's easier to check local newTable = {} for key,vehicleID in ipairs(settings.blockedVehicles) do newTable[vehicleID] = true end settings.blockedVehicles = newTable end ) --This function handles the driveby toggling key. function toggleDriveby() --If he's not in a vehicle dont bother if not isPedInVehicle( localPlayer ) then return end --If its a blocked vehicle dont allow it local vehicleID = getElementModel ( getPedOccupiedVehicle ( localPlayer ) ) if settings.blockedVehicles[vehicleID] then return end if (modop == true) then return end --Has he got a weapon equiped? local equipedWeapon = getPedWeaponSlot( localPlayer ) if equipedWeapon == 0 then --Decide whether he is a driver or passenger if ( driver ) then weaponsTable = settings.driver else weaponsTable = settings.passenger end --We need to get the switchTo weapon by finding any valid IDs local switchTo local switchToWeapon local lastSlotAmmo = getPedTotalAmmo ( localPlayer, lastSlot ) if not lastSlotAmmo or lastSlotAmmo == 0 or getSlotFromWeapon(getPedWeapon (localPlayer,lastSlot)) == 0 then for key,weaponID in ipairs(weaponsTable) do local slot = getSlotFromWeapon ( weaponID ) local weapon = getPedWeapon ( localPlayer, slot ) if weapon == 1 then weapon = 0 end --If its a brass knuckle, set it to a fist to avoid confusion --if the weapon the player has is valid if weapon == weaponID then --If the ammo isn't 0 if getPedTotalAmmo ( localPlayer, slot ) ~= 0 then --If no switchTo slot was defined, or the slot was 4 (SMG slot takes priority) if not switchTo or slot == 4 then switchTo = slot switchToWeapon = weaponID end end end end else local lastSlotWeapon = getPedWeapon ( localPlayer, lastSlot ) for key,weaponID in ipairs(weaponsTable) do --If our last used weapon is a valid weapon if weaponID == lastSlotWeapon then switchTo = lastSlot switchToWeapon = lastSlotWeapon break end end end --If a valid weapon was not found, dont set anything. if not switchTo then return end Link to comment
Tomas Posted August 23, 2014 Share Posted August 23, 2014 Te recomiendo usar un setElementData cuando entre a la greenzone, luego al salir se lo remueves. Para usar el comando DM no tiene que tener el data, ej: if not getElementData(player,"estaenunazonaverde") then Link to comment
Alexs Posted August 23, 2014 Share Posted August 23, 2014 Te recomiendo usar un setElementData cuando entre a la greenzone, luego al salir se lo remueves.Para usar el comando DM no tiene que tener el data, ej: if not getElementData(player,"estaenunazonaverde") then Abusar de los 'elementData' es una pésima idea, creo que llevo meses repitiéndolo. viewtopic.php?f=148&t=77161 Link to comment
Tomas Posted August 24, 2014 Share Posted August 24, 2014 ¿Abusar de los elementData? Ni con 4096 players entrando y saliendo de la greenzone el server crashearía... Link to comment
LPM//Bruno Posted August 24, 2014 Author Share Posted August 24, 2014 Entonces que debo hacer? Los utilizo o no? TomasitoCaram podrias editar el codigo tu? No es por ser comodo, sino que tambien estoy desbugeando otras cosas, y ademas no entiendo mucho sobre los set y get Element data me harias un gran favor hasta puedo darte mod en mi server Link to comment
lLinux Posted August 24, 2014 Share Posted August 24, 2014 Usar los setElementData y el getElementData esta bien. Link to comment
Alexs Posted August 24, 2014 Share Posted August 24, 2014 Entonces que debo hacer? Los utilizo o no? TomasitoCaram podrias editar el codigo tu? No es por ser comodo, sino que tambien estoy desbugeando otras cosas, y ademas no entiendo mucho sobre los set y get Element data me harias un gran favor hasta puedo darte mod en mi server No los utilices, el uso de recursos que significa el utilizar 'setElementData' es bastante alto, revisa este post en el que explican formas alternativas un tanto mas eficientes. * Pueden hacer una simple prueba y notaran que incluso sin utilizar la sincronización, 'setElementData' tarda 20 veces mas que la forma alternativa ahí explicada. Link to comment
Tomas Posted August 24, 2014 Share Posted August 24, 2014 Bruno, enviame el código solo del pasivo y te lo hago, no necesitarás poner nada de lso otros, aunque dudo que te solucionen algo. Explícame todo el problema que tiene y te lo hago, también pasame lo de las greenzones, eso sí Link to comment
LPM//Bruno Posted August 25, 2014 Author Share Posted August 25, 2014 Bruno, enviame el código solo del pasivo y te lo hago, no necesitarás poner nada de lso otros, aunque dudo que te solucionen algo. Explícame todo el problema que tiene y te lo hago, también pasame lo de las greenzones, eso sí Ok, podremos charlar por Facebook? Envíame un mensaje https://www.facebook.com/profile.php?id=100001707005073 para agilizar la cosa Link to comment
Tomas Posted August 25, 2014 Share Posted August 25, 2014 Entonces que debo hacer? Los utilizo o no? TomasitoCaram podrias editar el codigo tu? No es por ser comodo, sino que tambien estoy desbugeando otras cosas, y ademas no entiendo mucho sobre los set y get Element data me harias un gran favor hasta puedo darte mod en mi server No los utilices, el uso de recursos que significa el utilizar 'setElementData' es bastante alto, revisa este post en el que explican formas alternativas un tanto mas eficientes. * Pueden hacer una simple prueba y notaran que incluso sin utilizar la sincronización, 'setElementData' tarda 20 veces mas que la forma alternativa ahí explicada. ¿Y si quisiera usar eso en distintos resources? Con esa forma no podría. Link to comment
Alexs Posted August 25, 2014 Share Posted August 25, 2014 ¿Y si quisiera usar eso en distintos resources? Con esa forma no podría. Si te tomas un par de minutos para revisar el post, notaras que esa duda ya fue comentada y resuelta. Link to comment
Recommended Posts