Jump to content

Besoin d'aide dans un script


Recommended Posts

Salut a tous j'ai trouvé un script pour que des Bot soit armé et tire sur tout le monde , j'aimerai savoir si c'est fesable qu'il tire sur tout le monde sauf des personne dans un ACL group ?

Voiçi les code :

Le client.lua

function isMyPingTheLowest() 
    local players = getElementsByType("player") 
    local yes = true 
    for i, player in ipairs(players) do 
        if getPlayerPing(getLocalPlayer()) > getPlayerPing(player) then 
            yes = false 
        end 
    end 
    if yes == true then 
        return true 
    else 
        return false 
    end 
end 
function findRotation(x1,y1,x2,y2) 
    local t = -math.deg(math.atan2(x2-x1,y2-y1)) 
    if t < 0 then t = t + 360 end 
    return t 
end 
addEventHandler("onClientPedDamage", getRootElement(), 
    function(attacker) 
        if getElementData(source, "type") == "ped.sniper.npc" and getElementData(attacker, "type") == "ped.sniper.npc" then 
            cancelEvent() 
        end 
    end 
) 
setTimer( 
    function() 
        if isMyPingTheLowest() then 
            for i, peds in ipairs(getElementsByType("ped")) do 
                if getElementData(peds, "type") == "ped.sniper.npc" and getElementHealth(peds) > 0 then 
                    local x, y, z = getElementPosition(peds) 
                    local lowest = nil 
                    local player = nil 
                    for i, players in ipairs(getElementsByType("player")) do 
                        local px, py, pz = getElementPosition(players) 
                        if getDistanceBetweenPoints3D(x, y, z, px, py, pz) < 100 then 
                            if lowest == nil then 
                                lowest = getDistanceBetweenPoints3D(x, y, z, px, py, pz) 
                                player = players 
                            else 
                                if getDistanceBetweenPoints3D(x, y, z, px, py, pz) < lowest then 
                                    lowest = getDistanceBetweenPoints3D(x, y, z, px, py, pz) 
                                    player = players 
                                end 
                            end 
                        end 
                    end 
                    if isElement(player) then 
                        triggerServerEvent("sniperTakeDecision", getRootElement(), peds, player) 
                    end 
                end 
            end 
        end 
    end 
, 1500, 0) 
addEvent("sniperTakeDecisionClient", true) 
addEventHandler("sniperTakeDecisionClient", getRootElement(), 
    function(sniperPedID, aimPlayer) 
        local x, y, z = getElementPosition(sniperPedID) 
        local px, py, pz = getElementPosition(aimPlayer) 
        setPedAimTarget(sniperPedID, px, py, pz) 
        local rotZ = findRotation(x, y, px, py) 
        setPedRotation(sniperPedID, rotZ) 
        setPedControlState(sniperPedID, "aim_weapon", true) 
        setPedControlState(sniperPedID, "fire", true) 
        setTimer( 
            function() 
                if isElement(sniperPedID) then 
                    setPedControlState(sniperPedID, "fire", false) 
                    setPedControlState(sniperPedID, "aim_weapon", false) 
                end 
            end 
        , 500, 1) 
    end 
) 

Le server.lua

addEvent("sniperTakeDecision", true) 
addCommandHandler("sniper", 
    function(thePlayer, command) 
        local x, y, z = getElementPosition(thePlayer) 
        local int = getElementInterior(thePlayer) 
        local ped = createSniperPed(x, y, z) 
        setElementInterior(ped, int) 
    end 
) 
setTimer( 
    function() 
        for i, peds in ipairs(getElementsByType("ped")) do 
            if getElementData(peds, "type") == "ped.sniper.npc" and getElementHealth(peds) > 0 then 
                setPedWeaponSlot(peds, 6) 
                giveWeapon(peds, 31, 10000, true) 
            end 
        end 
    end 
, 50, 0) 
function createSniperPed(x, y, z) 
    local ped = createPed(120, x, y, z) 
    setTimer( 
        function() 
            if isElement(ped) then 
                giveWeapon(ped, 31, 10000, true) 
                setPedWeaponSlot(ped, 6) 
                setElementData(ped, "type", "ped.sniper.npc") 
                setElementFrozen(ped, true) 
            end 
        end 
    , 5000, 1) 
    return ped 
end 
addEventHandler("sniperTakeDecision", getRootElement(), 
    function(sniperPedID, aimPlayer) 
        setElementData(sniperPedID, "target", aimPlayer) 
        triggerClientEvent("sniperTakeDecisionClient", getRootElement(), sniperPedID, aimPlayer) 
    end 
) 

Merci d'avance

Link to comment
  • Moderators

La moindre des politesses c'est de répondre aux personnes qui t'aides avec tes problèmes, et de les remercier la ou les personnes qui t'ont aider à résoudre ton problème.

Allez reviens par ici: viewtopic.php?f=128&t=68667#p641806

Je regarde ce problème en attendant.

___________________________________________________________________________________________

EDIT:

Server: (Voir de la ligne 1 à la ligne 8)

addEventHandler( "onPlayerJoin", root, 
    function () 
        local accName = getAccountName( getPlayerAccount( source ) ) 
        if isObjectInACLGroup( "user."..accName, aclGetGroup ( "Admin" ) ) then 
            setElementData( source, "isAdmin", true ) 
        end 
    end 
) 
  
addEvent("sniperTakeDecision", true) 
addCommandHandler("sniper", 
    function(thePlayer, command) 
        local x, y, z = getElementPosition(thePlayer) 
        local int = getElementInterior(thePlayer) 
        local ped = createSniperPed(x, y, z) 
        setElementInterior(ped, int) 
    end 
) 
setTimer( 
    function() 
        for i, peds in ipairs(getElementsByType("ped")) do 
            if getElementData(peds, "type") == "ped.sniper.npc" and getElementHealth(peds) > 0 then 
                setPedWeaponSlot(peds, 6) 
                giveWeapon(peds, 31, 10000, true) 
            end 
        end 
    end 
, 50, 0) 
function createSniperPed(x, y, z) 
    local ped = createPed(120, x, y, z) 
    setTimer( 
        function() 
            if isElement(ped) then 
                giveWeapon(ped, 31, 10000, true) 
                setPedWeaponSlot(ped, 6) 
                setElementData(ped, "type", "ped.sniper.npc") 
                setElementFrozen(ped, true) 
            end 
        end 
    , 5000, 1) 
    return ped 
end 
addEventHandler("sniperTakeDecision", getRootElement(), 
    function(sniperPedID, aimPlayer) 
        setElementData(sniperPedID, "target", aimPlayer) 
        triggerClientEvent("sniperTakeDecisionClient", getRootElement(), sniperPedID, aimPlayer) 
    end 
) 

Client: (Voir la ligne 41)

function isMyPingTheLowest() 
    local players = getElementsByType("player") 
    local yes = true 
    for i, player in ipairs(players) do 
        if getPlayerPing(getLocalPlayer()) > getPlayerPing(player) then 
            yes = false 
        end 
    end 
    if yes == true then 
        return true 
    else 
        return false 
    end 
end 
  
function findRotation(x1,y1,x2,y2) 
    local t = -math.deg(math.atan2(x2-x1,y2-y1)) 
    if t < 0 then t = t + 360 end 
    return t 
end 
  
addEventHandler("onClientPedDamage", getRootElement(), 
     function(attacker) 
        if getElementData(source, "type") == "ped.sniper.npc" and getElementData(attacker, "type") == "ped.sniper.npc" then 
            cancelEvent() 
        end 
    end 
) 
  
setTimer( 
    function() 
        if isMyPingTheLowest() then 
            for i, peds in ipairs(getElementsByType("ped")) do 
                if getElementData(peds, "type") == "ped.sniper.npc" and getElementHealth(peds) > 0 then 
                    local x, y, z = getElementPosition(peds) 
                    local lowest = 9999 
                    local player = nil 
                    for i, players in ipairs(getElementsByType("player")) do 
                        local px, py, pz = getElementPosition(players) 
                        local dist = getDistanceBetweenPoints3D(x, y, z, px, py, pz) 
                        if dist < lowest and not getElementData( source, "isAdmin" ) then 
                            lowest = dist 
                            player = players 
                        end 
                    end 
                    if isElement(player) then 
                        triggerServerEvent("sniperTakeDecision", getRootElement(), peds, player) 
                    end 
                end 
            end 
        end 
    end 
, 1500, 0) 
  
addEvent("sniperTakeDecisionClient", true) 
addEventHandler("sniperTakeDecisionClient", getRootElement(), 
    function(sniperPedID, aimPlayer) 
        local x, y, z = getElementPosition(sniperPedID) 
        local px, py, pz = getElementPosition(aimPlayer) 
        setPedAimTarget(sniperPedID, px, py, pz) 
        local rotZ = findRotation(x, y, px, py) 
        setPedRotation(sniperPedID, rotZ) 
        setPedControlState(sniperPedID, "aim_weapon", true) 
        setPedControlState(sniperPedID, "fire", true) 
        setTimer( 
            function() 
                if isElement(sniperPedID) then 
                    setPedControlState(sniperPedID, "fire", false) 
                    setPedControlState(sniperPedID, "aim_weapon", false) 
                end 
            end 
        , 500, 1) 
    end 
) 

Link to comment
  • Moderators
Il me dit que ça viens de la , le debug script

Ça ne m'aide absolument pas ! J'ai besoin de l'erreur complète !

Et je t'annonces que je ne vais plus t'aider jusqu'à nouvel ordre !! Pourquoi ?! Qu'est-ce que t'as fais ?!

Tu viens poser tes "demandes d'aide" sans même nous montrer ce que tu as tenté (évidemment, tu n'as même pas essayé). T'arrives comme ça et tu demandes, "comment on fait pour faire ceci ou cela ?" alors que si t'avais suivis les tutos, tu saurais le faire.

Ensuite, tu ne lis pas les réponses qu'on te donne, tu lis à la volée et tu copies colle bêtement le code sans chercher à comprendre. Je t'ai demandé expressément de me répondre sur ton sujet/topic précédent car je suis toujours sans réponse de ta part ! Je t'ai même relancé:

La moindre des politesses c'est de répondre aux personnes qui t'aides avec tes problèmes, et de les remercier la ou les personnes qui t'ont aider à résoudre ton problème.

Allez reviens par ici: viewtopic.php?f=128&t=68667#p641806

Mais nooooooon ! Monsieur n'en a rien a battre, il est passé à autre chose et donc il va juste ignorer les questions de Citizen ! Si t'as laissé tombé pas de soucis, mais laisse un message pour prévenir !

Je suis désolé de te l'apprendre, mais ce forum n'est pas remplit d'esclaves où il suffit de demander un truc et on te le fait gratos ! C'est un forum d'entraide !

Répare tes erreurs et je t'aiderai à nouveau. Si tu as lu attentivement (cette fois ci) tu as 2 trucs à faire, voir même 3 si t'es quelqu'un de normal.

Citizen

Link to comment

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...