Furious^ONE! Posted December 22, 2013 Share Posted December 22, 2013 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 Citizen Posted December 22, 2013 Moderators Share Posted December 22, 2013 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 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
Furious^ONE! Posted December 22, 2013 Author Share Posted December 22, 2013 Merci de ton aide. Je testerai ça dans la soirée. Link to comment
Furious^ONE! Posted December 23, 2013 Author Share Posted December 23, 2013 Je viens de rencontré un problème c'est que quand je veux faire spawn le ped ( /sniper ) , ça ne fonctionne pas if getPlayerPing(getLocalPlayer()) > getPlayerPing(player) then Il me dit que ça viens de la , le debug script Link to comment
Moderators Citizen Posted December 23, 2013 Moderators Share Posted December 23, 2013 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
Furious^ONE! Posted December 23, 2013 Author Share Posted December 23, 2013 Excuse moi , mais je ne suis pas h24 sur le forum , et je n'avait pas le temps de pricisé car jdevait y allez et l'error viens d'ici ( j'ai chopé dans la console ) [2013-12-23 18:22:06] ERROR: PNJ/server.lua:5: attempt to call global 'getLocalPlayer' (a nil value) Link to comment
Moderators Citizen Posted December 23, 2013 Moderators Share Posted December 23, 2013 Et là t'as eu le temps de lire ?! Ne me dis pas le contraire ! Je t'ai demandé 3 fois de répondre à ma question que je t'ai posé, ici: Clique sur sur lien ! ==> https://forum.multitheftauto.com/viewtopic.php?f=128&t=68697&p=642275#p642275 Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now