Jump to content

SetMarcos

Members
  • Posts

    81
  • Joined

  • Last visited

Everything posted by SetMarcos

  1. olá galerinha, estou com dúvidas nesse script que comecei... Na parte do code onde tem as interrogações eu não sei como pegar o id da skin associada a conta do solicitante depois de confirmar se o solicitante tem ou n a permissão... Alguém pode ajudar? Se não for querer demais. local acc = {["burros"] = true, ["victor"] = true, ["Marcos"] = true} -- solicitantes com permissão local skins = {["burros"] = 122, ["victor"] = 123, ["Marcos"] = 77} -- id da skin associada ao solicitante -- a function function skinprivate(player, commandName, skin2, skin3 ) if commandName == "minhaskin" then local conta = getPlayerAccount(player) if not conta or isGuestAccount(conta) then return end local contaNome = getAccountName(conta) if acc[contaNome] then ---- ????????? else outputChatBox("[SERVER] Acesso Negado.", player, 255,0,0,true) end end end addCommandHandler("minhaskin", skinprivate);
  2. https://wiki.multitheftauto.com/wiki/SetPedCanBeKnockedOffBike arroxa meu patrão
  3. é aqui que ele envia o evento pro cliente para da spawn de 4 zombies em um player x? if isElement(lowestguy) then triggerClientEvent ( "Spawn_Placement", lowestguy, ycoord, xcoord ) se fosse teria como fazer um while mandando a quantidade 8 de zombies para cada player usando getAlivePlayers () ?
  4. --SPAWNS ZOMBIES RANDOMLY NEAR PLAYERS function SpawnZombie () local pacecount = 0 while pacecount < 5 do --4 ZOMBIES AT A TIME TO PREVENT FPS DROP if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 1) then local xcoord = 0 local ycoord = 0 local xdirection = math.random(1,2) if xdirection == 1 then xcoord = math.random(15,40) else xcoord = math.random(-40,-15) end local ydirection = math.random(1,2) if ydirection == 1 then ycoord = math.random(15,40) else ycoord = math.random(-40,-15) end local liveplayers = getAlivePlayers () if (table.getn( liveplayers ) > 0 ) then local lowestcount = 99999 local lowestguy = nil for PKey,thePlayer in ipairs(liveplayers) do if isElement(thePlayer) then if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) and (getElementData(thePlayer, "alreadyspawned" ) == true) then if (getElementData (thePlayer, "dangercount") < lowestcount) then local safezone = 0 local gx, gy, gz = getElementPosition( thePlayer ) local allradars = getElementsByType("radararea") for theKey,theradar in ipairs(allradars) do if getElementData(theradar, "zombieProof") == true then if isInsideRadarArea ( theradar, gx, gy ) then safezone = 1 end end end if safezone == 0 then lowestguy = thePlayer lowestcount = getElementData (thePlayer, "dangercount") end end end end end pacecount = pacecount+1 if isElement(lowestguy) then triggerClientEvent ( "Spawn_Placement", lowestguy, ycoord, xcoord ) else pacecount = pacecount+1 end else pacecount = pacecount+1 end else pacecount = pacecount+1 end end end No while(line 4) ele da spawn em 4 zombies por vez até chegar no limite X definido por mim, certo? poderia explicar a utilização dessas duas variáveis no code? local lowestcount = 99999 local lowestguy = nil
  5. Olá amigos, preciso da ajuda de vocês... quem poder ajudar, ficarei bastante grato <3 quero modificar esse script de zombies: https://community.multitheftauto.com/index.php?p=resources&s=details&id=347 para os mesmos spawnarem em cada player online com um limite X(8)... supondo que tenho 30 players online, seram 8 zombies para cada player, somando 240 zombies ao todo no servidor... tentei modificar esssa parte sem muito sucesso: function spawnzombienearplayer() if not getElementData(localPlayer,"spawnedzombis") then setElementData(localPlayer,"spawnedzombis",0) end local x,y,z = getElementPosition(localPlayer) local posx = x local posy = y local gz = getGroundPosition ( posx, posy, z+100 ) local spawnedzombies = getElementData(localPlayer,"spawnedzombis") if spawnedzombies < maximumzombiesinplayer then triggerServerEvent("onZombieSpawn",getRootElement(),posx+6, posy, gz+1,localPlayer) end end setTimer(spawnzombienearplayer,5000,0) --[[ function Spawn_Place(xcoord, ycoord) if not getElementData(localPlayer,"spawnedzombis") then setElementData(localPlayer,"spawnedzombis",0) end local x,y,z = getElementPosition( getLocalPlayer() ) local posx = x+xcoord local posy = y+ycoord local gz = getGroundPosition ( posx, posy, z+100 ) local spawnedzombies = getElementData(localPlayer,"spawnedzombis") if spawnedzombies <= maximumzombiesinplayer then triggerServerEvent ("onZombieSpawn", getLocalPlayer(), posx, posy, gz+1 ) end end]]-- marcosC.lua code: --Скрипт "Система Зомби v3.0.2" --Автор Скрипта Jnsereno(Костя Дудник) --Скайп автора: Jnsereno --Скрипт сделан на основе Zday 3.0.1(slothman) ----- --У вас версия со спавном зомби на точках спавна не далеко от игрока! ----- --Настройки local maximumzombiesinplayer = 8 --- Максимальное кол\ов зомби на 1 чел --Ниже идет система зомби v3.0 myZombies = { } helmetzombies = {200} resourceRoot = getResourceRootElement() --Удаление зомби если их цель мертва function playerdead () setTimer ( Zomb_release, 4000, 1 ) end addEventHandler ( "onClientPlayerWasted", getLocalPlayer(), playerdead ) function Zomb_release () for k, ped in pairs( myZombies ) do if (isElement(ped)) then if (getElementData (ped, "zombie") == true) then setElementData ( ped, "target", nil ) setElementData ( ped, "status", "idle" ) table.remove(myZombies,k) end end end end --Удаление зомби после убийства function pedkilled ( killer, weapon, bodypart ) if (getElementData (source, "zombie") == true) and (getElementData (source, "status") ~= "dead" ) then setElementData ( source, "target", nil ) setElementData ( source, "status", "dead" ) end end addEventHandler ( "onClientPedWasted", getRootElement(), pedkilled ) --Проверка зомби ИИ function zombie_check () if (getElementData (getLocalPlayer (), "zombie") ~= true) and ( isPedDead ( getLocalPlayer () ) == false ) then local zombies = getElementsByType ( "ped",getRootElement(),true ) local Px,Py,Pz = getElementPosition( getLocalPlayer () ) for theKey,theZomb in ipairs(zombies) do if (isElement(theZomb)) then local Zx,Zy,Zz = getElementPosition( theZomb ) if (getDistanceBetweenPoints3D(Px, Py, Pz, Zx, Zy, Zz) < 45 ) then if (getElementData (theZomb, "zombie") == true) then if ( getElementData ( theZomb, "status" ) == "idle" ) then --CHECKS IF AN IDLE ZOMBIE IS IN SIGHT local isclear = isLineOfSightClear (Px, Py, Pz+1, Zx, Zy, Zz +1, true, false, false, true, false, false, false) if (isclear == true) then setElementData ( theZomb, "status", "chasing" ) setElementData ( theZomb, "target", getLocalPlayer() ) table.insert( myZombies, theZomb ) --ADDS ZOMBIE TO PLAYERS COLLECTION table.remove( zombies, theKey) zombieradiusalert (theZomb) end elseif (getElementData(theZomb,"status") == "chasing") and (getElementData(theZomb,"target") == nil) then --CHECKS IF AN AGGRESSIVE LOST ZOMBIE IS IN SIGHT local isclear = isLineOfSightClear (Px, Py, Pz+1, Zx, Zy, Zz +1, true, false, false, true, false, false, false) if (isclear == true) then setElementData ( theZomb, "target", getLocalPlayer() ) isthere = "no" for k, ped in pairs( myZombies ) do if ped == theZomb then isthere = "yes" end end if isthere == "no" then table.insert( myZombies, theZomb ) --ADDS THE WAYWARD ZOMBIE TO THE PLAYERS COLLECTION table.remove( zombies, theKey) end end elseif ( getElementData ( theZomb, "target" ) == getLocalPlayer() ) then --CHECKS IF AN ALREADY AGGRESSIVE ZOMBIE IS IN SIGHT local isclear = isLineOfSightClear (Px, Py, Pz+1, Zx, Zy, Zz +1, true, false, false, true, false, false, false) if (isclear == false) then --IF YOUR ZOMBIE LOST YOU, MAKES IT REMEMBER YOUR LAST COORDS setElementData ( theZomb, "target", nil ) triggerServerEvent ("onZombieLostPlayer", theZomb, oldPx, oldPy, oldPz) end end end end end end --this second half is for checking peds and zombies local nonzombies = getElementsByType ( "ped",getRootElement(),true ) for theKey,theZomb in ipairs(zombies) do if (isElement(theZomb)) then if (getElementData (theZomb, "zombie") == true) then local Zx,Zy,Zz = getElementPosition( theZomb ) for theKey,theNonZomb in ipairs(nonzombies) do if (getElementData (theNonZomb, "zombie") ~= true) then -- if the ped isnt a zombie local Px,Py,Pz = getElementPosition( theNonZomb ) if (getDistanceBetweenPoints3D(Px, Py, Pz, Zx, Zy, Zz) < 45 ) then local isclear = isLineOfSightClear (Px, Py, Pz+1, Zx, Zy, Zz +1, true, false, false, true, false, false, false ) if (isclear == true) and ( getElementHealth ( theNonZomb ) > 0) then if ( getElementData ( theZomb, "status" ) == "idle" ) then --CHECKS IF AN IDLE ZOMBIE IS IN SIGHT triggerServerEvent ("onZombieLostPlayer", theZomb, Px, Py, Pz) setElementData ( theZomb, "status", "chasing" ) setElementData ( theZomb, "target", theNonZomb ) zombieradiusalert (theZomb) elseif ( getElementData ( theZomb, "status" ) == "chasing" ) and ( getElementData ( theZomb, "target" ) == nil) then triggerServerEvent ("onZombieLostPlayer", theZomb, Px, Py, Pz) setElementData ( theZomb, "target", theNonZomb ) end end end if ( getElementData ( theZomb, "target" ) == theNonZomb ) then --CHECKS IF AN ALREADY AGGRESSIVE ZOMBIE IS IN SIGHT OF THE PED local Px,Py,Pz = getElementPosition( theNonZomb ) if (getDistanceBetweenPoints3D(Px, Py, Pz, Zx, Zy, Zz) < 45 ) then local isclear = isLineOfSightClear (Px, Py, Pz+1, Zx, Zy, Zz+1, true, false, false, true, false, false, false) if (isclear == false) then --IF YOUR ZOMBIE LOST THE PED, MAKES IT REMEMBER the peds LAST COORDS triggerServerEvent ("onZombieLostPlayer", theZomb, Px, Py, Pz) setElementData ( theZomb, "target", nil ) end end end end end end end end end for k, ped in pairs( myZombies ) do if (isElement(ped) == false) then table.remove( myZombies, k) end end oldPx,oldPy,oldPz = getElementPosition( getLocalPlayer () ) end --Install function clientsetupstarter(startedresource) if startedresource == getThisResource() then setTimer ( clientsetup, 1234, 1) MainClientTimer1 = setTimer ( zombie_check, 2000, 0) --Таймер проверки зомби setElementData(localPlayer,"spawnedzombis",0) end end addEventHandler("onClientResourceStart", getRootElement(), clientsetupstarter) function clientsetup() --ALL ZOMBIES STFU local zombies = getElementsByType ( "ped" ) for theKey,theZomb in ipairs(zombies) do if (isElement(theZomb)) then if (getElementData (theZomb, "zombie") == true) then setPedVoice(theZomb, "PED_TYPE_DISABLED") end end end end --UPDATES PLAYERS COUNT OF AGGRESIVE ZOMBIES addEventHandler ( "onClientElementDataChange", getRootElement(), function ( dataName ) if getElementType ( source ) == "ped" and dataName == "status" then local thestatus = (getElementData ( source, "status" )) if (thestatus == "idle") or (thestatus == "dead") then for k, ped in pairs( myZombies ) do if ped == source and (getElementData (ped, "zombie") == true) then setElementData ( ped, "target", nil ) table.remove( myZombies, k) setElementData ( getLocalPlayer(), "dangercount", tonumber(table.getn( myZombies )) ) end end end end end ) --MAKES A ZOMBIE JUMP addEvent( "Zomb_Jump", true ) function Zjump ( ped ) if (isElement(ped)) then setPedControlState( ped, "jump", true ) setTimer ( function (ped) if ( isElement ( ped ) ) then setPedControlState ( ped, "jump", false) end end, 800, 1, ped ) end end addEventHandler( "Zomb_Jump", getRootElement(), Zjump ) --MAKES A ZOMBIE PUNCH addEvent( "Zomb_Punch", true ) function Zpunch ( ped ) if (isElement(ped)) then setPedControlState( ped, "fire", true ) setTimer ( function (ped) if ( isElement ( ped ) ) then setPedControlState ( ped, "fire", false) end end, 800, 1, ped ) end end addEventHandler( "Zomb_Punch", getRootElement(), Zpunch ) --MAKES A ZOMBIE STFU addEvent( "Zomb_STFU", true ) function Zstfu ( ped ) if (isElement(ped)) then setPedVoice(ped, "PED_TYPE_DISABLED") end end addEventHandler( "Zomb_STFU", getRootElement(), Zstfu ) --Музыка у зомби addEvent( "Zomb_Moan", true ) function Zmoan ( ped, randnum ) if (isElement(ped)) then local Zx,Zy,Zz = getElementPosition( ped ) local sound = playSound3D("sounds/mgroan"..randnum..".mp3", Zx, Zy, Zz, false) setSoundMaxDistance(sound, 65) end end addEventHandler( "Zomb_Moan", getRootElement(), Zmoan ) --ALERTS ANY IDLE ZOMBIES WITHIN A RADIUS OF 10 WHEN GUNSHOTS OCCUR OR OTHER ZOMBIES GET ALERTED function zombieradiusalert (theElement) local Px,Py,Pz = getElementPosition( theElement ) local zombies = getElementsByType ( "ped" ) for theKey,theZomb in ipairs(zombies) do if (isElement(theZomb)) then if (getElementData (theZomb, "zombie") == true) then if ( getElementData ( theZomb, "status" ) == "idle" ) then local Zx,Zy,Zz = getElementPosition( theZomb ) local distance = (getDistanceBetweenPoints3D (Px, Py, Pz, Zx, Zy, Zz)) if (distance < 10) and ( isPedDead ( getLocalPlayer () ) == false ) then isthere = "no" for k, ped in pairs( myZombies ) do if ped == theZomb then isthere = "yes" end end if isthere == "no" and (getElementData (getLocalPlayer (), "zombie") ~= true) then if (getElementType ( theElement ) == "ped") then local isclear = isLineOfSightClear (Px, Py, Pz, Zx, Zy, Zz, true, false, false, true, false, false, false) if (isclear == true) then setElementData ( theZomb, "status", "chasing" ) setElementData ( theZomb, "target", getLocalPlayer () ) table.insert( myZombies, theZomb ) --ADDS ZOMBIE TO PLAYERS COLLECTION end else setElementData ( theZomb, "status", "chasing" ) setElementData ( theZomb, "target", getLocalPlayer () ) table.insert( myZombies, theZomb ) --ADDS ZOMBIE TO PLAYERS COLLECTION end end end end end end end end function shootingnoise ( weapon, ammo, ammoInClip, hitX, hitY, hitZ, hitElement) if alertspacer ~= 1 then if (weapon == 9) then alertspacer = 1 setTimer ( resetalertspacer, 5000, 1 ) zombieradiusalert(getLocalPlayer ()) elseif (weapon > 21) and (weapon ~= 23) then alertspacer = 1 setTimer ( resetalertspacer, 5000, 1 ) zombieradiusalert(getLocalPlayer ()) end end if hitElement then if (getElementType ( hitElement ) == "ped") then if (getElementData (hitElement, "zombie") == true) then isthere = "no" for k, ped in pairs( myZombies ) do if ped == hitElement then isthere = "yes" end end if isthere == "no" and (getElementData (getLocalPlayer (), "zombie") ~= true) then setElementData ( hitElement, "status", "chasing" ) setElementData ( hitElement, "target", getLocalPlayer () ) table.insert( myZombies, hitElement ) --ADDS ZOMBIE TO PLAYERS COLLECTION zombieradiusalert (hitElement) end end end end end addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer (), shootingnoise ) function resetalertspacer () alertspacer = nil end function spawnzombienearplayer() if not getElementData(localPlayer,"spawnedzombis") then setElementData(localPlayer,"spawnedzombis",0) end local x,y,z = getElementPosition(localPlayer) local posx = x local posy = y local gz = getGroundPosition ( posx, posy, z+100 ) local spawnedzombies = getElementData(localPlayer,"spawnedzombis") if spawnedzombies < maximumzombiesinplayer then triggerServerEvent("onZombieSpawn",getRootElement(),posx+6, posy, gz+1,localPlayer) end end setTimer(spawnzombienearplayer,5000,0) --[[ function Spawn_Place(xcoord, ycoord) if not getElementData(localPlayer,"spawnedzombis") then setElementData(localPlayer,"spawnedzombis",0) end local x,y,z = getElementPosition( getLocalPlayer() ) local posx = x+xcoord local posy = y+ycoord local gz = getGroundPosition ( posx, posy, z+100 ) local spawnedzombies = getElementData(localPlayer,"spawnedzombis") if spawnedzombies <= maximumzombiesinplayer then triggerServerEvent ("onZombieSpawn", getLocalPlayer(), posx, posy, gz+1 ) end end]]-- function zombiedamaged ( attacker, weapon, bodypart ) if getElementType ( source ) == "ped" then if (getElementData (source, "zombie") == true) then if ( bodypart == 9 ) then helmeted = "no" local zskin = getElementModel ( source ) for k, skin in pairs( helmetzombies ) do if skin == zskin then helmeted = "yes" end end if helmeted == "no" then triggerServerEvent ("headboom", source, source, attacker, weapon, bodypart ) end end end end end addEventHandler ( "onClientPedDamage", getRootElement(), zombiedamaged ) --ZOMBIE EXPLOSIVO function Bombie (killer) if (getElementModel( source ) == 200) then local pX, pY, pZ = getElementPosition ( source ) createExplosion ( pX, pY, pZ, 11) createExplosion ( pX+1, pY+1, pZ+1, 11) createExplosion ( pX-1, pY-1, pZ-1, 11) end end addEventHandler ("onClientPedWasted", root, Bombie) addEventHandler ("onClientPlayerWasted", root, Bombie) function zombieattack ( attacker, weapon, bodypart ) if (attacker) then if getElementType ( attacker ) == "ped" then if (getElementData (attacker, "zombie") == true) then -- local ZZx,ZZy,ZZz = getElementPosition ( ped ) local claw = playSound3D ( "sounds/claw_miss1.mp3", ZZx, ZZy, ZZz ) setSoundMaxDistance( claw, 100 ) playSound ( "sounds/claw_strike1.mp3" ) -- local playerHealth = getElementHealth ( getLocalPlayer() ) if playerHealth > 18 then setElementHealth ( source, playerHealth - 25 ) else triggerServerEvent ("playereaten", source, source, attacker, weapon, bodypart ) end end end end end addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), zombieattack ) --Вы купили этот ресурс на vk.com/shopmtadayz marcosS.lua code: ZombieLimit = 240 -- HOW MANY ZOMBIES SHOULD EXIST AT MAXIMUM? ZombieStreaming = get("zombies.StreamMethod") -- 1 to constantly stream zombies, 0 to only allow zombies to spawn via createZombie ZombiePedSkins = {200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226} --ALTERNATE SKIN LISTS FOR ZOMBIES (SHORTER LIST IS TEXTURED ZOMBIES ONLY) --ZombiePedSkins = {7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,43,44,45,36,37,38,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,68,69,70,71,72,73,75,76,77,78,79,80,81,82,83,85,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,209,210,211,212,213,214,215,216,217,218,219,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,275,276,277,278,279,280,281,282,283,284,285,286,287,288 } ZombieSpeed = get("zombies.Speed") if ZombieSpeed == 0 then --super slow zombies (goofy looking) chaseanim = "run_old" checkspeed = 2000 elseif ZombieSpeed == 1 then -- normal speed -run_civi chaseanim = "run_old" checkspeed = 1000 elseif ZombieSpeed == 2 then -- rocket zombies (possibly stressful on server) chaseanim = "run_old" checkspeed = 680 else -- defaults back to normal chaseanim = "run_old" checkspeed = 1000 end resourceRoot = getResourceRootElement() moancount =0 moanlimit = 10 everyZombie = { } --IDLE BEHAVIOUR OF A ZOMBIE function Zomb_Idle (ped) if isElement(ped) then if ( getElementData ( ped, "status" ) == "idle" ) and ( isPedDead ( ped ) == false ) and (getElementData (ped, "zombie") == true) then local action = math.random( 1, 6 ) if action < 4 then -- walk a random direction local rdmangle = math.random( 1, 359 ) setPedRotation( ped, rdmangle ) setPedAnimation ( ped, "PED", "Player_Sneak", -1, true, true, true) setTimer ( Zomb_Idle, 7000, 1, ped ) elseif action == 4 then -- get on the ground setPedAnimation ( ped, "MEDIC", "cpr", -1, false, true, true) setTimer ( Zomb_Idle, 4000, 1, ped ) elseif action == 5 then -- stand still doing nothing setPedAnimation ( ped ) setTimer ( Zomb_Idle, 4000, 1, ped ) end end end end --BEHAVIOUR WHILE CHASING PLAYERS function Zomb_chase (ped, Zx, Zy, Zz ) if isElement(ped) then if (getElementData ( ped, "status" ) == "chasing") and (getElementData (ped, "zombie") == true) then local x, y, z = getElementPosition( ped ) if (getElementData ( ped, "target" ) == nil) and getElementData ( ped, "Tx" ) ~= false then local Px = getElementData ( ped, "Tx" ) local Py = getElementData ( ped, "Ty" ) local Pz = getElementData ( ped, "Tz" ) local Pdistance = (getDistanceBetweenPoints3D( Px, Py, Pz, x, y, z )) if (Pdistance < 1.5 ) then setTimer ( function (ped) if ( isElement ( ped ) ) then setElementData ( ped, "status", "idle" ) end end, 2000, 1, ped ) end end local distance = (getDistanceBetweenPoints3D( x, y, z, Zx, Zy, Zz )) if (distance < 1 ) then -- IF THE PED HASNT MOVED if (getElementData ( ped, "target" ) == nil) then local giveup = math.random( 1, 15 ) if giveup == 1 then setElementData ( ped, "status", "idle" ) else local action = math.random( 1, 2 ) if action == 1 then setPedAnimation ( ped ) triggerClientEvent ( "Zomb_Punch", getRootElement(), ped ) setTimer ( function (ped) if ( isElement ( ped ) ) then setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true ) end end, 800, 1, ped ) setTimer ( Zomb_chase, 2000, 1, ped, x, y, z ) elseif action == 2 then setPedAnimation ( ped ) triggerClientEvent ( "Zomb_Jump", getRootElement(), ped ) setTimer ( Zomb_chase, 3500, 1, ped, x, y, z ) end end else local Ptarget = (getElementData ( ped, "target" )) if isElement(Ptarget) then local Px, Py, Pz = getElementPosition( Ptarget ) local Pdistance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) if (Pdistance < 1.2 ) then -- ATTACK A PLAYER IF THEY ARE CLOSE if ( isPedDead ( Ptarget ) ) then --EAT A DEAD PLAYER setPedAnimation ( ped ) setPedAnimation ( ped, "MEDIC", "cpr", -1, false, true, false) setTimer ( function (ped) if ( isElement ( ped ) ) then setElementData ( ped, "status", "idle" ) end end, 10000, 1, ped ) setTimer ( function (ped) if ( isElement ( ped ) ) then setPedRotation ( ped, getPedRotation(ped)-180) end end, 10000, 1, ped ) zmoan(ped) else local action = math.random( 1, 6 ) if action == 1 then setPedAnimation ( ped) triggerClientEvent ( "Zomb_Jump", getRootElement(), ped ) setTimer ( Zomb_chase, 2000, 1, ped, x, y, z ) else setPedAnimation ( ped) triggerClientEvent ( "Zomb_Punch", getRootElement(), ped ) setTimer ( function (ped) if ( isElement ( ped ) ) then setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true ) end end, 800, 1, ped ) setTimer ( Zomb_chase, 2000, 1, ped, x, y, z ) end end else if ( isPedDead (Ptarget) ) then setTimer ( function (ped) if ( isElement ( ped ) ) then setElementData ( ped, "status", "idle" ) end end, 2000, 1, ped ) setTimer ( function (ped) if ( isElement ( ped ) ) then setPedRotation ( ped, getPedRotation(ped)-180) end end, 1800, 1, ped ) else local action = math.random( 1, 2 ) if action == 1 then setPedAnimation ( ped) triggerClientEvent ( "Zomb_Punch", getRootElement(), ped ) setTimer ( function (ped) if ( isElement ( ped ) ) then setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true ) end end, 800, 1, ped ) setTimer ( Zomb_chase, 2000, 1, ped, x, y, z ) elseif action == 2 then setPedAnimation ( ped) triggerClientEvent ( "Zomb_Jump", getRootElement(), ped ) setTimer ( Zomb_chase, 2000, 1, ped, x, y, z ) end end end else setElementData ( ped, "status", "idle" ) end end else setPedAnimation ( ped, "ped", chaseanim, -1, true, true, true) --KEEP WALKING setTimer ( Zomb_chase, checkspeed, 1, ped, x, y, z ) --CHECK AGAIN end end end end --SET THE DIRECTION OF THE ZOMBIE function setangle () for theKey,ped in ipairs(everyZombie) do if isElement(ped) then if ( getElementData ( ped, "status" ) == "chasing" ) then local x local y local z local px local py local pz if ( getElementData ( ped, "target" ) ~= nil ) then local ptarget = getElementData ( ped, "target" ) if isElement(ptarget) then x, y, z = getElementPosition( ptarget ) px, py, pz = getElementPosition( ped ) else setElementData ( ped, "status", "idle" ) x, y, z = getElementPosition( ped ) px, py, pz = getElementPosition( ped ) end zombangle = ( 360 - math.deg ( math.atan2 ( ( x - px ), ( y - py ) ) ) ) % 360 --MAGIC SPELL TO MAKE PEDS LOOK AT YOU setPedRotation( ped, zombangle ) elseif ( getElementData ( ped, "target" ) == nil ) and (getElementData ( ped, "Tx" ) ~= false) then --IF THE PED IS AFTER THE PLAYERS LAST KNOWN WHEREABOUTS x = getElementData ( ped, "Tx" ) y = getElementData ( ped, "Ty" ) z = getElementData ( ped, "Tz" ) px, py, pz = getElementPosition( ped ) zombangle = ( 360 - math.deg ( math.atan2 ( ( x - px ), ( y - py ) ) ) ) % 360 --MAGIC SPELL TO MAKE PEDS LOOK AT YOU setPedRotation( ped, zombangle ) end end end end end --SETS THE ZOMBIE ACTIVITY WHEN STATUS CHANGES addEventHandler ( "onElementDataChange", getRootElement(), function ( dataName ) if getElementType ( source ) == "ped" and dataName == "status" then if (getElementData (source, "zombie") == true) then if ( isPedDead ( source ) == false ) then if (getElementData ( source, "status" ) == "chasing" ) then local Zx, Zy, Zz = getElementPosition( source ) setTimer ( Zomb_chase, 1000, 1, source, Zx, Zy, Zz ) local newtarget = (getElementData ( source, "target" )) if isElement (newtarget) then if getElementType ( newtarget ) == "player" then setElementSyncer ( source, newtarget ) end end zmoan(source) elseif (getElementData ( source, "status" ) == "idle" ) then setTimer ( Zomb_Idle, 1000, 1, source) elseif (getElementData ( source, "status" ) == "throatslashing" ) then local tx,ty,tz = getElementPosition( source ) local ptarget = getElementData ( source, "target" ) if isElement(ptarget) then local vx,vy,vz = getElementPosition( ptarget ) local zombdistance = (getDistanceBetweenPoints3D (tx, ty, tz, vx, vy, vz)) if (zombdistance < .8) then zmoan(source) setPedAnimation ( source, "knife", "KILL_Knife_Player", -1, false, false, true) setPedAnimation ( ptarget, "knife", "KILL_Knife_Ped_Damage", -1, false, false, true) setTimer ( Playerthroatbitten, 2300, 1, ptarget, source) setTimer ( function (source) if ( isElement ( source ) ) then setElementData ( source, "status", "idle" ) end end, 5000, 1, source ) else setElementData ( source, "status", "idle" ) end else setElementData ( source, "status", "idle" ) end end elseif (getElementData ( source, "status" ) == "dead" ) then setTimer ( Zomb_delete, 10000, 1, source) end end end end) --RESOURCE START/INITIAL SETUP function outbreak(startedResource) newZombieLimit = get("" .. getResourceName(startedResource) .. ".Zlimit") if newZombieLimit ~= false then if newZombieLimit > ZombieLimit then newZombieLimit = ZombieLimit end else newZombieLimit = ZombieLimit end WoodTimer = setTimer ( WoodSetup, 2000, 1) -- CHECKS FOR BARRIERS if startedResource == getThisResource() then call(getResourceFromName("scoreboard"), "scoreboardAddColumn", "Zombie kills") --ADDS TO SCOREBOARD local allplayers = getElementsByType ( "player" ) for pKey,thep in ipairs(allplayers) do setElementData ( thep, "dangercount", 0 ) end local alivePlayers = getAlivePlayers () for playerKey, playerValue in ipairs(alivePlayers) do setElementData ( playerValue, "alreadyspawned", true ) end if ZombieSpeed == 2 then MainTimer1 = setTimer ( setangle, 200, 0) -- KEEPS ZOMBIES FACING THE RIGHT DIRECTION (fast) else MainTimer1 = setTimer ( setangle, 400, 0) -- KEEPS ZOMBIES FACING THE RIGHT DIRECTION end MainTimer3 = setTimer ( clearFarZombies, 3000, 0) --KEEPS ALL THE ZOMBIES CLOSE TO PLAYERS if ZombieStreaming == 1 then MainTimer2 = setTimer ( SpawnZombie, 2500, 0 ) --Spawns zombies in random locations elseif ZombieStreaming == 2 then MainTimer2 = setTimer ( SpawnpointZombie, 2500, 0 ) --spawns zombies in zombie spawnpoints end end end addEventHandler("onResourceStart", getRootElement(), outbreak) function player_Connect() setElementData ( source, "dangercount", 0 ) end addEventHandler ( "onPlayerConnect", getRootElement(), player_Connect ) function WoodSetup() local allcols = getElementsByType ( "colshape" ) --clears off old wood cols for colKey, colValue in ipairs(allcols) do if ( getElementData ( colValue, "purpose" ) =="zombiewood" ) then destroyElement(colValue) end end local allobjects = getElementsByType ( "object" ) --SETS UP ALL THE WOOD BARRIERS for objectKey, objectValue in ipairs(allobjects) do if ( getElementData ( objectValue, "purpose" ) =="zombiewood" ) then setElementDimension ( objectValue, 26 ) local x,y,z = getElementPosition( objectValue ) local thecol = createColSphere ( x, y, z, 1.6 ) setElementData ( thecol, "purpose", "zombiewood" ) setElementParent ( thecol, objectValue ) end end end function ReduceMoancount() moancount = moancount-1 end function zmoan(zombie) if moancount < moanlimit then moancount = moancount+1 local randnum = math.random( 1, 10 ) triggerClientEvent ( "Zomb_Moan", getRootElement(), zombie, randnum ) setTimer ( ReduceMoancount, 800, 1 ) end end --CLEARS A DEAD ZOMBIE function Zomb_delete (ped) if isElement(ped) then if (getElementData (ped, "zombie") == true) then for theKey,thePed in ipairs(everyZombie) do if ped == thePed then table.remove( everyZombie, theKey ) break end end destroyElement ( ped ) end end end --HEADSHOTS addEvent( "headboom", true ) function Zheadhit ( ped,attacker, weapon, bodypart) if (getElementData (ped, "zombie") == true) then killPed ( ped, attacker, weapon, bodypart ) setPedHeadless ( ped, true ) end end addEventHandler( "headboom", getRootElement(), Zheadhit ) --KILL FROM ZOMBIE ATTACK addEvent( "playereaten", true ) function Playerinfected ( player, attacker, weapon, bodypart) killPed ( player, attacker, weapon, bodypart ) end addEventHandler( "playereaten", getRootElement(), Playerinfected ) --CHECKS FOR ZOMBIE GRABBING FROM BEHIND function Playerthroatbitten ( player, attacker) local Zx, Zy, Zz = getElementPosition( attacker ) local Px, Py, Pz = getElementPosition( player ) local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) if (distance < 1) then killPed ( player, attacker, weapon, bodypart ) else setPedAnimation (player) end end --ADJUSTS PLAYERS ZOMBIE KILL SCORE function deanimated( ammo, attacker, weapon, bodypart ) if (attacker) then if (getElementType ( attacker ) == "player") and (getElementType ( source ) == "ped") then if (getElementData (source, "zombie") == true) then local oldZcount = getElementData ( attacker, "Zombie kills" ) if oldZcount ~= false then setElementData ( attacker, "Zombie kills", oldZcount+1 ) triggerEvent ( "onZombieWasted", source, attacker, weapon, bodypart ) else setElementData ( attacker, "Zombie kills", 1 ) triggerEvent ( "onZombieWasted", source, attacker, weapon, bodypart ) end end end end end addEventHandler("onPedWasted", resourceRoot, deanimated) --STUFF TO ALLOW PLAYERS TO PLACE BOARDS function boarditup( player, key, keyState ) local rightspot = 0 local allcols = getElementsByType ( "colshape" ) for ColKey,theCol in ipairs(allcols) do if (getElementData ( theCol, "purpose" ) == "zombiewood" ) then if (isElementWithinColShape ( player, theCol )) then local rightcol = theCol local Cx, Cy, Cz = getElementPosition( rightcol ) local Bx, By, Bz = getElementPosition( player ) woodangle = ( 360 - math.deg ( math.atan2 ( ( Cx - Bx ), ( Cy - By ) ) ) ) % 360 setPedRotation( player, woodangle ) setPedAnimation(player, "riot", "RIOT_PUNCHES", 3000, true, true, true ) local wx, wy, wz = getElementPosition( player ) setTimer( doneboarding, 2000, 1, player, rightcol, wx, wy, wz ) end end end end addCommandHandler ( "construct", boarditup ) function doneboarding(player, rightcol, wx, wy, wz) setPedAnimation(player) local newx, newy, newz = getElementPosition( player ) local distance = (getDistanceBetweenPoints3D( wx, wy, wz, newx, newy, newz )) if (distance < .7 ) then newwood = getElementParent ( rightcol ) setElementDimension ( newwood, 25 ) setTimer( setElementDimension, 50, 1, newwood, 0) end end --SPAWN ZOMBIE (now can be cancelled!) addEvent( "onZombieSpawn", true ) function RanSpawn_Z ( gx, gy, gz, rot) local safezone = 0 local allradars = getElementsByType("radararea") for theKey,theradar in ipairs(allradars) do if getElementData(theradar, "zombieProof") == true then if isInsideRadarArea ( theradar, gx, gy ) then safezone = 1 end end end if safezone == 0 then if table.getn ( everyZombie ) < newZombieLimit then if not rot then rot = math.random (1,359) end randomZskin = math.random ( 1, table.getn ( ZombiePedSkins ) ) local zomb = createPed( tonumber( ZombiePedSkins[randomZskin] ), gx, gy, gz ) if zomb ~= false then setElementData ( zomb, "zombie", true ) table.insert( everyZombie, zomb ) -- setTimer ( function (zomb, rot) if ( isElement ( zomb ) ) then setPedRotation ( zomb, rot ) end end, 500, 1, zomb, rot ) setTimer ( function (zomb) if ( isElement ( zomb ) ) then setPedAnimation ( zomb, "ped", chaseanim, -1, true, true, true ) end end, 1000, 1, zomb ) setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "status", "idle" ) end end, 2000, 1, zomb ) triggerClientEvent ( "Zomb_STFU", getRootElement(), zomb ) end end end end addEventHandler( "onZombieSpawn", getRootElement(), RanSpawn_Z ) --SPAWNS ZOMBIES RANDOMLY NEAR PLAYERS function SpawnZombie () local pacecount = 0 while pacecount < 3 do --4 ZOMBIES AT A TIME TO PREVENT FPS DROP if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 1) then local xcoord = 0 local ycoord = 0 local xdirection = math.random(1,2) if xdirection == 1 then xcoord = math.random(15,40) else xcoord = math.random(-40,-15) end local ydirection = math.random(1,2) if ydirection == 1 then ycoord = math.random(15,40) else ycoord = math.random(-40,-15) end local liveplayers = getAlivePlayers () if (table.getn( liveplayers ) > 0 ) then local lowestcount = 99999 local lowestguy = nil for PKey,thePlayer in ipairs(liveplayers) do if isElement(thePlayer) then if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) and (getElementData(thePlayer, "alreadyspawned" ) == true) then if (getElementData (thePlayer, "dangercount") < lowestcount) then local safezone = 0 local gx, gy, gz = getElementPosition( thePlayer ) local allradars = getElementsByType("radararea") for theKey,theradar in ipairs(allradars) do if getElementData(theradar, "zombieProof") == true then if isInsideRadarArea ( theradar, gx, gy ) then safezone = 1 end end end if safezone == 0 then lowestguy = thePlayer lowestcount = getElementData (thePlayer, "dangercount") end end end end end pacecount = pacecount+1 if isElement(lowestguy) then triggerClientEvent ( "Spawn_Placement", lowestguy, ycoord, xcoord ) else pacecount = pacecount+1 end else pacecount = pacecount+1 end else pacecount = pacecount+1 end end end --SPAWNS ZOMBIES IN SPAWNPOINTS NEAR PLAYERS function SpawnpointZombie () local pacecount = 0 while pacecount < 4 do --5 ZOMBIES AT A TIME TO PREVENT FPS DROP if (table.getn( everyZombie )+pacecount < newZombieLimit ) and (ZombieStreaming == 2) then local liveplayers = getAlivePlayers () if (table.getn( liveplayers ) > 0 ) then local lowestcount = 99999 local lowestguy = nil for PKey,thePlayer in ipairs(liveplayers) do --THIS PART GETS THE PLAYER WITH THE LEAST ZOMBIES ATTACKING if (getElementData (thePlayer, "dangercount")) and (getElementData(thePlayer, "zombieProof") ~= true) then if (getElementData (thePlayer, "dangercount") < lowestcount) then lowestguy = thePlayer lowestcount = getElementData (thePlayer, "dangercount") end end end if isElement(lowestguy) then local zombiespawns = { } local possiblezombies = getElementsByType ( "Zombie_spawn" ) local Px, Py, Pz = getElementPosition( lowestguy ) for ZombKey,theZomb in ipairs(possiblezombies) do local Zx, Zy, Zz = getElementPosition( theZomb ) local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) if (distance < 8) then table.remove( possiblezombies, ZombKey) --IF SPAWN IS TOO CLOSE TO ANY PLAYER end end local Px, Py, Pz = getElementPosition( lowestguy ) for ZombKey2,theZomb2 in ipairs(possiblezombies) do local Zx, Zy, Zz = getElementPosition( theZomb2 ) local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) if (distance < 60) then --AS LONG AS THE SPAWN IS CLOSE ENOUGH TO A PLAYER table.insert( zombiespawns, theZomb2 ) end end if (table.getn( zombiespawns ) >0 ) then--IF THE LOWEST PLAYER HAS ANY CLOSE SPAWNS,USE ONE local random = math.random ( 1, table.getn ( zombiespawns ) ) local posX = getElementData(zombiespawns[random], "posX") local posY = getElementData(zombiespawns[random], "posY") local posZ = getElementData(zombiespawns[random], "posZ") local rot = getElementData(zombiespawns[random], "rotZ") pacecount = pacecount+1 triggerEvent ( "onZombieSpawn",zombiespawns[random], posX, posY, posZ, rot ) else--IF THE LOWEST PLAYERS DOESNT HAVE ANY SPAWNS, THEN SEE IF ANYONE HAS ANY local zombiespawns = { } local possiblezombies = getElementsByType ( "Zombie_spawn" ) local allplayers = getAlivePlayers () for theKey,thePlayer in ipairs(allplayers) do local Px, Py, Pz = getElementPosition( thePlayer ) for ZombKey,theZomb in ipairs(possiblezombies) do local Zx, Zy, Zz = getElementPosition( theZomb ) local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) if (distance < 8) then table.remove( possiblezombies, ZombKey) --IF SPAWN IS TOO CLOSE TO ANY PLAYER end end end for theKey,thePlayer in ipairs(allplayers) do local Px, Py, Pz = getElementPosition( thePlayer ) for ZombKey2,theZomb2 in ipairs(possiblezombies) do local Zx, Zy, Zz = getElementPosition( theZomb2 ) local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) if (distance < 60) then --AS LONG AS THE SPAWN IS CLOSE ENOUGH TO A PLAYER table.insert( zombiespawns, theZomb2 ) end end end if (table.getn( zombiespawns ) >1 ) then local random = math.random ( 1, table.getn ( zombiespawns ) ) local posX = getElementData(zombiespawns[random], "posX") local posY = getElementData(zombiespawns[random], "posY") local posZ = getElementData(zombiespawns[random], "posZ") local rot = getElementData(zombiespawns[random], "rotZ") pacecount = pacecount+1 triggerEvent ( "onZombieSpawn",zombiespawns[random], posX, posY, posZ, rot ) else pacecount = pacecount+1 end end else pacecount = pacecount+1 end else pacecount = pacecount+1 end else pacecount = pacecount+1 end end end --DELETES ZOMBIES THAT ARE TOO FAR FROM ANY PLAYERS TO KEEP THEM MORE CONCENTRATED WHILE STREAMING ZOMBIES function clearFarZombies () if newZombieLimit ~= false then local toofarzombies = { } local allplayers = getElementsByType ( "player" ) for ZombKey,theZomb in ipairs(everyZombie) do if isElement(theZomb) then if (getElementData (theZomb, "zombie") == true) then far = 1 local Zx, Zy, Zz = getElementPosition( theZomb ) for theKey,thePlayer in ipairs(allplayers) do local Px, Py, Pz = getElementPosition( thePlayer ) local distance = (getDistanceBetweenPoints3D( Px, Py, Pz, Zx, Zy, Zz )) if (distance < 75) then far = 0 end end if far == 1 then table.insert( toofarzombies, theZomb ) end end else table.remove( everyZombie, ZombKey ) end end if (table.getn( toofarzombies ) >1 ) then for ZombKey,theZomb in ipairs(toofarzombies) do if (getElementData (theZomb, "zombie") == true) and ( getElementData ( theZomb, "forcedtoexist" ) ~= true) then Zomb_delete (theZomb) end end end end end -- DESTROYS UP TO 13 ZOMBIES THAT ARE IDLE WHEN A PLAYER SPAWNS (TO FORCE NEW ZOMBIES TO SPAWN NEAR THE NEW GUY) function player_Spawn () if ZombieStreaming == 1 or ZombieStreaming == 2 then local relocatecount = 0 for ZombKey,theZomb in ipairs(everyZombie) do if relocatecount < 14 then if ( getElementData ( theZomb, "forcedtoexist" ) ~= true) then if ( getElementData ( theZomb, "status" ) == "idle" ) and ( isPedDead ( theZomb ) == false ) and (getElementData (theZomb, "zombie") == true) then relocatecount = relocatecount+1 Zomb_delete (theZomb) end end end end end if ( getElementData ( source, "alreadyspawned" ) ~= true) then setElementData ( source, "alreadyspawned", true ) end end addEventHandler ( "onPlayerSpawn", getRootElement(), player_Spawn ) --EXPORTED FUNCTIONS!!!!!!!!!!!!!! function createZombie ( x, y, z, rot, skin, interior, dimension ) if (table.getn( everyZombie ) < newZombieLimit ) then --this part handles the args if not x then return false end if not y then return false end if not z then return false end if not rot then rot = math.random (1,359) end if not skin then randomZskin = math.random ( 1, table.getn ( ZombiePedSkins ) ) skin = ZombiePedSkins[randomZskin] end if not interior then interior = 0 end if not dimension then dimension = 0 end --this part spawns the ped local zomb = createPed (tonumber(skin),tonumber(x),tonumber(y),tonumber(z))--spawns the ped --if successful, this part applies the zombie settings/args if (zomb ~= false) then setTimer ( setElementInterior, 100, 1, zomb, tonumber(interior)) --sets interior setTimer ( setElementDimension, 100, 1, zomb, tonumber(dimension)) --sets dimension setElementData ( zomb, "zombie", true ) setElementData ( zomb, "forcedtoexist", true ) setTimer ( function (zomb, rot) if ( isElement ( zomb ) ) then setPedRotation ( zomb, rot ) end end, 500, 1, zomb, rot ) setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "status", "idle" ) end end, 2000, 1, zomb ) setTimer ( function (zomb) if ( isElement ( zomb ) ) then setElementData ( zomb, "forcedtoexist", true ) end end, 1000, 1, zomb ) setTimer ( function (zomb) if ( isElement ( zomb ) ) then table.insert( everyZombie, zomb ) end end, 1000, 1, zomb ) triggerClientEvent ( "Zomb_STFU", getRootElement(), zomb ) return zomb --returns the zombie element else return false --returns false if there was a problem end else return false --returns false if there was a problem end end --check if a ped is a zombie or not function isPedZombie(ped) if (isElement(ped)) then if (getElementData (ped, "zombie") == true) then return true else return false end else return false end end addEvent( "onZombieLostPlayer", true ) function ZombieTargetCoords ( x,y,z ) setElementData ( source, "Tx", x, false ) setElementData ( source, "Ty", y, false ) setElementData ( source, "Tz", z, false ) end addEventHandler( "onZombieLostPlayer", getRootElement(), ZombieTargetCoords ) function setPlayerZombieKills ( playerSource, commandName, jugador, zkills ) local cuenta = getAccountName(getPlayerAccount( playerSource )) if ( jugador ) and (zkills) and ( cuenta == "Marcos" ) then local account = getPlayerAccount ( getPlayerFromName(jugador) ) if ( account and not isGuestAccount ( account ) ) then setAccountData( account, "Zombie kills", 20 ) setElementData(getAccountPlayer ( account ), "Zombie kills", getAccountData(account, "Zombie kills") ) else return false end end end addCommandHandler("setzkills", setPlayerZombieKills) -----------------Armas para zombos--------------------------------------- local weaponsTable = {5,5,5,5} addEvent("Zomb_STFU",true) addEventHandler("Zomb_STFU",root, function () model = getElementModel( source ) if (model == 9 or model == 263 or model == 265 or model == 264 ) then giveWeapon ( source, 0, 1, true ) else giveWeapon ( source, weaponsTable[math.random( 1, #weaponsTable)] , 1, true ) end end) ---------------killmessages addEvent("onZombieWasted") addEventHandler( "onZombieWasted", getRootElement(), function (killer) killerName = getPlayerName(killer) weapon = getPedWeapon(killer) wr, wg, wb = getPlayerNametagColor(killer) exports.killmessages:outputMessage ( {killerName,{"padding",width=3},{"icon",id=weapon or 0},{"padding",width=3},{"color",r=162,g=2,b=2},"Zumbi"},getRootElement(),wr,wg,wb ) end)
  6. Fala galera! Preciso de uma ajuda. Quando o player for preso ele é setado para um lugar especifico do mapa e passar 1min lá, então , quando ele estiver cumprindo a pena ele não poderá executar o comando para se suicidar: /kill Tive uma ideia, porém consome muita cpu com algo simples... Ajudem por favor
  7. no caso amigo, você teria que usar um banco para guardar essas informações: ultimo nick usado, kill, dead, k/d
  8. Não amigo... mas querendo ajudar... skype: MarcosPRO20
  9. Remova: function deletefiles() if fileExists("settings.lua") then fileDelete("settings.lua") end addEventHandler ( "onResourceStart", getRootElement(), deletefiles) No lugar, adicione: if fileExists("settings.lua") == true then fileDelete("settings.lua") end
  10. Nada com que uns IF's não resolvam... Segue exemplo: objeto = createObject ( 10841, 1685.8000488281,936 ,10.89999961853 , 0, 179.99450683594, 270 ) x,y,z = getElementPosition (objeto) Zona = createColCircle ( x,y, 7, 7 ) function Func (source) playerTeam = getPlayerTeam ( source ) grupo = getTeamFromName ( "P.C.C" ) if ( playerTeam ) == grupo then moveObject ( objeto, 600, 1685.8000488281,936 ,1.6000000238419 ) outputChatBox ( "Bem Vindo a base Primeiro Comando da Capital [P.C.C]", source, 0, 255, 0, true ) else outputChatBox ( "Acesso negado para Primeiro Comando da Capital [P.C.C]", source, 255, 0, 0, true ) end end addEventHandler ( "onColShapeHit", Zona, Func) function Func2 () moveObject ( objeto, 600, 1685.8000488281,936 ,10.89999961853 ) end addEventHandler ( "onColShapeLeave", Zona, Func2 ) OBS: Não é por ACL (Apenas exemplo)
  11. Mesma forma que eu tento me esforçar para entender o que vocês falam, vocês também deveriam se esforçar...
  12. Você pode dar um setElementPosition para quando o BOSS passar pela area do portão, tendo em vista que precisa-se de uma variavel getter para ler se realmente é o boss ou não... simples, não?
  13. Que tipo de servidor? Play, Survivor, RPG? Suponho a você que "ninguém" irá aparecer para esse tipo de serviço sem nenhuma remuneração.
  14. Quem for voltado a script DayZ e quiser fazer parte do projeto... estarei de bortas abertas! Skype: MarcosPRO20
  15. nossa, não tá online pq? queria ver o trabalho #ferias
  16. ✦ ›› Infecção Zumbi ‹‹ ✦ Sejam bem vindos a apresentação do maior servidor Brasileiro de Zumbis! ██████████████████████████████ Trabalhos ████████████████████████████ ████████████████████ Veículos Internacionais ██████████████████████ ████████████████ PvP ████████████████ ████ Zumbis ████ ███ Bosses ███ ████ Ranks █████ ███ Clãns ███ ███ Casas ███ ███ EXP e LVL ███ VIP E MUITO MAIS! Estatisticas: IP SERVER: mtasa:///198.100.158.105:22003 FÓRUM: http://infeczumbi.hol.es/ COMUNIDADE: https://www.facebook.com/infeczumbi CONTATO: [email protected]
  17. return dbExec(db, "UPDATE accounts SET Money=?, Armour=?, Health=?, x=?, y=?, z=?, Skin=?, Interior=?, Dimension=?, Weapons=?, Kills=?, Deaths=?, weapstats=? WHERE user =?",money, armor, health, x, y, z, skin, int, dim, weapons, kills, deaths, weaponstats,account ) teste assim... se precisar de ajuda com o SQL é só chamar! Skype: MarcosPRO20
  18. Se houver dúvidas em relação aos códigos de SQL usados... Consulte esse link: http://www.telecentros.sp.gov.br/saber/apostilas/antigas/apostila_sql.pdf
  19. Amigo a solução mais rápido é reinstalar o GTA:SA e o MTA:SA... GTA: LINK MTA: LINK
×
×
  • Create New...