Jump to content

The Killer

Members
  • Posts

    1,336
  • Joined

Everything posted by The Killer

  1. انت الحين وش تبي تسوي بالظبط ؟ تبي اذا قتلت وانت داخل الكول شيب يحسب لك ؟ واذا مت يطلع لك كم قتلت واذا طلعت يطلع لك كم قتلت ؟
  2. هذا الموضوع لشرح الاكواد والاستفسار عنها انتم قلبتوها طلبات عندك قسم البرمجه رح اطلب فيه مب تجي هنا على اساس نسوي لك اكودا جاهزه على اساس انك جاي تتعلم , عجيب امركم #
  3. طيب جرب استخدم هذا الكود مع صنع صورتين تكون اساميهم زي كذا مثلا wait0.png wait1.png وتحطهم في المود وتضيفهم للميتا وما يحتاج تغير اسمم الصوره في الكود الي تحت الا اذا انك تبي تغير مسار الصوره يعني تحطها داخل ملف تسوي نفسه كذا بدون ما تغير اسم الصوره هنا تسويها كذا مثلا images/wait بدون ما تضيف له اسم 0 او 1 بس لحالها لأن المود تلقائيا بيجيب الايدي حقها اول ما تشتغل وبيبدا يجيبهم واحد واحد طبعا على حسب الصور الي مسويها انت يعني تقدر تسوي اكثر من صوره بس عليك كل مره تزود الرقم انا حطيت لك صفر و واحد انت لو تبي تحط صور اكثر تحط اثنين ثلاثه .. الخ بدون ما تغير اسم الصوره الي تحت, طبعا لو تبي تجيب صوره معينه فيه رقم تحت بعد اسم الصوره الي في الكود ذا فيه بعده رقم 0 هذا لو تبي مثلا عندك 5 صور تبي الكود يبدا من وين ؟ من ال صفر الى 5 او من 1 الى 5 او من 4 الى 5 وهكذا وعندك بعد الصفر هذا كذا "png" هذا نوع الصوره حقتك طبعا انت ملاحظ اني حاط اسم الصوره لحالها بدون ما احطها كذا wait.png هذا لأن المود فيه خيار ثاني فيه نوع الصوره تحطه فيه الي هو بعد الصفر تحط نوع صورتك الي تبي تركبها فيه بدون ما تسويها في المكان الاول وفيه بعدها رقم 120 .هذا سرعة الصوره كيف تبيها بسرعه ولا خفيف ولا على حسب .اتمنى يكون وضحت لك الفكره جرب الكود : function dxDrawGifImage ( x, y, w, h, path, iStart, iType, effectSpeed ) local gifElement = createElement ( "dx-gif" ) if ( gifElement ) then setElementData ( gifElement, "gifData", { x = x, y = y, w = w, h = h, imgPath = path, startID = iStart, imgID = iStart, imgType = iType, speed = effectSpeed, tick = getTickCount ( ) }, false ) return gifElement else return false end end addEventHandler ( "onClientRender", root, function ( ) local currentTick = getTickCount ( ) for index, gif in ipairs ( getElementsByType ( "dx-gif" ) ) do local gifData = getElementData ( gif, "gifData" ) if ( gifData ) then if ( currentTick - gifData.tick >= gifData.speed ) then gifData.tick = currentTick gifData.imgID = ( gifData.imgID + 1 ) if ( fileExists ( gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) ) then gifData.imgID = gifData.imgID setElementData ( gif, "gifData", gifData, false ) else gifData.imgID = gifData.startID setElementData ( gif, "gifData", gifData, false ) end end dxDrawImage ( gifData.x, gifData.y, gifData.w, gifData.h, gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) end end end ) addEvent ("event", true) addEventHandler ("event", root, function () if isElement (gif) then destroyElement (gif) else gif = dxDrawGifImage (0, 0, 800, 600, "wait", 0, "png", 120) end end )
  4. لا افتح ملف ال gie.lua وانسخ الاكواد الي فيه وحطها في ملف المود حقك وبس راح يكونو مدموجين وشيل بعدها exports.gie:
  5. PaiN استخخدم مود الاخ فهو اسهل لك بكثير من كل هذي مثال بسيط عليه: local screenW, screenH = guiGetScreenSize() win = guiCreateWindow(10, (screenH - 406) / 2, 400, 406, "Test Window", false) guiWindowSetSizable(win, false) guiSetAlpha(win, 1.00) guiSetVisible (win, false) local startX = 10 -- X مكان بدء النافذه بالتحرك local startY = (screenH - 406) / 2 -- Y مكان بدء النافذه بالتحرك local startW = 400 -- W عرض النافذه local startH = 406 -- H طول النافذه local endX = (screenW - 400) / 2 -- X مكان انتهاء التحرك local endY = (screenH - 406) / 2 -- Y مكان انتهاء التحرك local endW = 400 -- W عرض النافذه local endH = 406 -- H طول النافذه local startX2 = (screenW - 400) / 2 -- X مكان بدء النافذه بالتحرك local startY2 = (screenH - 406) / 2 -- Y مكان بدء النافذه بالتحرك local startW2 = 400 -- W عرض النافذه local startH2 = 406 -- H طول النافذه local endX2 = 10 -- X مكان انتهاء التحرك local endY2 = (screenH - 406) / 2 -- Y مكان انتهاء التحرك local endW2 = 400 -- W عرض النافذه local endH2 = 406 -- H طول النافذه local seconds = 2 -- الثواني للأنتهاء من التحرك addCommandHandler ("view", function () if guiGetVisible (win) == false then exports.gie:guiAddInterpolateEffect (win, startX, startY, startW, startH, endX, endY, endW, endH, seconds, "OutBounce", "OutBounce", true) showCursor (true) else exports.gie:guiAddInterpolateEffect (win, startX2, startY2, startW2, startH2, endX2, endY2, endW2, endH2, seconds, "OutBounce", "OutBounce", false) showCursor (false) end end ) طبعا ادخل صفحة الويكي هذي: https://wiki.multitheftauto.com/wiki/Easing عشان تعرف تحط اشكال الحركه انا حاط فوق OutBounce انت ادخل الموقع واختار شكل وحطه بداله ادخل هنا للصفحه العربيه حقت الشرح + viewtopic.php?f=161&t=64607
  6. جرب كذا عدل اول سطر local interior = 0 ZombieLimit = get("zombies.MaxZombies")-- 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 function, 2 to only allow spawning at set spawnpoints ZombiePedSkins = {13,22,56,67,68,69,70,92,97,105,107,108,126,127,128,152,162,167,188,195,206,209,212,229,230,258,264,277,280,287 } --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 = "WALK_drunk" checkspeed = 2000 elseif ZombieSpeed == 1 then -- normal speed chaseanim = "run_old" checkspeed = 1000 elseif ZombieSpeed == 2 then -- rocket zombies (possibly stressful on server) chaseanim = "Run_Wuzi" 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()
  7. الي عنده حساب في الويكي وما يقدر يدخله * يدخل الموضوع هذا ويقرا القوانين حقته * viewtopic.php?f=13&t=90918
  8. x setVehicleDoorOpenRatio اوه صحيح .. مشكور ع التعديل
  9. جرب كذا Client side # function dxDrawGifImage ( x, y, w, h, path, iStart, iType, effectSpeed ) local gifElement = createElement ( "dx-gif" ) if ( gifElement ) then setElementData ( gifElement, "gifData", { x = x, y = y, w = w, h = h, imgPath = path, startID = iStart, imgID = iStart, imgType = iType, speed = effectSpeed, tick = getTickCount ( ) }, false ) return gifElement else return false end end function isEventHandlerAdded( sEventName, pElementAttachedTo, func ) if type( sEventName ) == 'string' and isElement( pElementAttachedTo ) and type( func ) == 'function' then local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo ) if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then for i, v in ipairs( aAttachedFunctions ) do if v == func then return true end end end end return false end addEventHandler ( "onClientRender", root, function ( ) local currentTick = getTickCount ( ) for index, gif in ipairs ( getElementsByType ( "dx-gif" ) ) do local gifData = getElementData ( gif, "gifData" ) if ( gifData ) then if ( currentTick - gifData.tick >= gifData.speed ) then gifData.tick = currentTick gifData.imgID = ( gifData.imgID + 1 ) if ( fileExists ( gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) ) then gifData.imgID = gifData.imgID setElementData ( gif, "gifData", gifData, false ) else gifData.imgID = gifData.startID setElementData ( gif, "gifData", gifData, false ) end end dxDrawImage ( gifData.x, gifData.y, gifData.w, gifData.h, gifData.imgPath .."".. gifData.imgID ..".".. gifData.imgType ) end end end ) function Dx () dxDrawGifImage(0, 0, 800, 600, "wait", 0, "gif", 120) end addEvent ("event",true) addEventHandler ("event",root, function () if isEventHandlerAdded ("onClientRender", root, Dx) then removeEventHandler ("onClientRender", root, Dx) else addEventHandler ("onClientRender", root, Dx) end end ) Server side # addCommandHandler ("command", function (player) local acc = getPlayerAccount (player) if not isGuestAccount (acc) then if isObjectInACLGroup ("user." .. getAccountName (acc), aclGetGroup ("Console")) then for _,v in ipairs (getElementsByType ("player")) do setElementFrozen (v, not isElementFrozen (v)) triggerClientEvent (v, "event", player) end else outputChatBox ("Access denied.", player, 255, 0, 0) end end end )
  10. ZombieLimit = get("zombies.MaxZombies")-- 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 function, 2 to only allow spawning at set spawnpoints ZombiePedSkins = {13,22,56,67,68,69,70,92,97,105,107,108,126,127,128,152,162,167,188,195,206,209,212,229,230,258,264,277,280,287 } --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 = "WALK_drunk" checkspeed = 2000 elseif ZombieSpeed == 1 then -- normal speed chaseanim = "run_old" checkspeed = 1000 elseif ZombieSpeed == 2 then -- rocket zombies (possibly stressful on server) chaseanim = "Run_Wuzi" 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()
  11. اطرح ملف السيرفر حق الزومبي
  12. for _,v in ipairs (getElementsByType ("سامجين")) do banPlayer(v, false, false, true) end The End #
  13. انت في هذي الاحداثيات ؟ -2412.44, -599.22, 132.6
  14. طيب جرب كذا "Zombies"> "Zombie_spawn" friendlyname="Zombie Spawnpoint" icon="edf/zombiespawn.png"> "position" type="coord3d" default="0,0,0" /> "rotation" type="coord3d" default="0,0,0" /> "0" rotation="!rotation!"/> "1254" posZ="1" rotation="!rotation!"/> "editor_main"> "object (vgsbighngrdoor) (1)" breakable="true" interior="0" collisions="true" alpha="255" model="8378" doublesided="false" scale="1" dimension="0" posX="1861.4004" posY="1505.9004" posZ="9.2" rotX="90" rotY="0" rotZ="90"> "object (vgsbighngrdoor) (2)" breakable="true" interior="0" collisions="true" alpha="255" model="8378" doublesided="false" scale="1" dimension="0" posX="1880.7998" posY="1505.9004" posZ="9.2" rotX="90" rotY="0" rotZ="90"> "object (vgsbighngrdoor) (3)" breakable="true" interior="0" collisions="true" alpha="255" model="8378" doublesided="false" scale="1" dimension="0" posX="1892.2002" posY="1506" posZ="9.3" rotX="90" rotY="0" rotZ="90"> "object (vgsbighngrdoor) (4)" breakable="true" interior="0" collisions="true" alpha="255" model="8378" doublesided="false" scale="1" dimension="0" posX="1861.5" posY="1537.2002" posZ="9.1" rotX="90" rotY="0" rotZ="90"> "object (vgsbighngrdoor) (5)" breakable="true" interior="0" collisions="true" alpha="255" model="8378" doublesided="false" scale="1" dimension="0" posX="1880.7998" posY="1535.4004" posZ="9.1" rotX="90" rotY="0" rotZ="90"> "object (station5new) (1)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1852.5996" posY="1539.2002" posZ="13.5" rotX="0" rotY="0" rotZ="0"> "object (station5new) (2)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1852.7002" posY="1506.5996" posZ="13.5" rotX="0" rotY="0" rotZ="0"> "object (station5new) (3)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1852.7" posY="1475.6" posZ="14.3" rotX="90" rotY="90" rotZ="90"> "object (vgsbighngrdoor) (7)" breakable="true" interior="0" collisions="true" alpha="255" model="8378" doublesided="false" scale="1" dimension="0" posX="1891.1" posY="1534.4" posZ="9.2" rotX="90" rotY="0" rotZ="90"> "object (station5new) (5)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1852.5996" posY="1539.2002" posZ="22.5" rotX="0" rotY="0" rotZ="0"> "object (station5new) (10)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1900.5996" posY="1507.7002" posZ="13.5" rotX="0" rotY="0" rotZ="0"> "object (station5new) (11)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1900.5996" posY="1476.0996" posZ="-0.3" rotX="90" rotY="90" rotZ="90"> "object (station5new) (12)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1900.5996" posY="1507.7002" posZ="22.4" rotX="0" rotY="0" rotZ="0"> "object (station5new) (13)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1900.7" posY="1541.3" posZ="13.5" rotX="0" rotY="0" rotZ="0"> "object (station5new) (14)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1900.7002" posY="1541.2002" posZ="22.4" rotX="0" rotY="0" rotZ="0"> "object (station5new) (15)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1857.2998" posY="1568.2002" posZ="-0.3" rotX="90" rotY="0" rotZ="90"> "object (station5new) (16)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1852.5996" posY="1567.0996" posZ="-0.3" rotX="90" rotY="90" rotZ="90"> "object (station5new) (18)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1879.7002" posY="1568.4004" posZ="-0.3" rotX="90" rotY="0" rotZ="90"> "object (station5new) (19)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1888.5996" posY="1568.4004" posZ="-0.3" rotX="90" rotY="0" rotZ="90"> "object (station5new) (20)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1897.5" posY="1568.4004" posZ="-0.3" rotX="90" rotY="0" rotZ="90"> "object (desn2_tscanopy) (1)" breakable="true" interior="0" collisions="true" alpha="255" model="16362" doublesided="false" scale="1" dimension="0" posX="1877.0996" posY="1477.9004" posZ="13" rotX="0" rotY="0" rotZ="90"> "object (desn2_tscanopy) (2)" breakable="true" interior="0" collisions="true" alpha="255" model="16362" doublesided="false" scale="1" dimension="0" posX="1877.0996" posY="1477.9004" posZ="11.6" rotX="0" rotY="179.995" rotZ="270"> "object (helipad01) (1)" breakable="true" interior="0" collisions="true" alpha="255" model="3934" doublesided="false" scale="1" dimension="0" posX="1861.2002" posY="1501.2002" posZ="9.9" rotX="0" rotY="0" rotZ="0"> "object (helipad01) (2)" breakable="true" interior="0" collisions="true" alpha="255" model="3934" doublesided="false" scale="1" dimension="0" posX="1861.5" posY="1544.2998" posZ="9.8" rotX="0" rotY="0" rotZ="0"> "object (station5new) (22)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1874.0996" posY="1472" posZ="13.5" rotX="0" rotY="0" rotZ="90"> "object (helipad01) (3)" breakable="true" interior="0" collisions="true" alpha="255" model="3934" doublesided="false" scale="1" dimension="0" posX="1892.7998" posY="1546.2002" posZ="9.9" rotX="0" rotY="0" rotZ="0"> "object (vgsEdragon) (1)" breakable="true" interior="0" collisions="true" alpha="255" model="3528" doublesided="false" scale="3" dimension="0" posX="1868.2" posY="1574.1" posZ="32.4" rotX="0" rotY="358" rotZ="90"> "object (station5new) (4)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1865.3" posY="1568.1" posZ="-0.3" rotX="90" rotY="0" rotZ="90"> "object (station5new) (6)" breakable="true" interior="0" collisions="true" alpha="255" model="11353" doublesided="false" scale="1" dimension="0" posX="1873.4" posY="1568.1" posZ="-0.3" rotX="90" rotY="0" rotZ="90"> "-2412.44" posY="-599.22" posZ="132.6" rotZ="0" /> + تأكد انك بالمكان ذا -2412.44, -599.22, 132.6
  15. وش المشكله بالظبط ؟
  16. كيف مود الاصلي ؟ افتح ملف الماب حق البدايه حقتك او المقر حقك وضيف له السطر وغير قيمة StreamMethod ل 2 وسو ريستارت للبدايه او المقر وسو ريستارت للزومبي وخلاص يبدو يرسبنون بالمنطقه المحدده فوق
  17. طيب افتح ملف الماب وانزل اخر سطر وحط فيه كذا "-2412.44" posY="-599.22" posZ="132.6" rotZ="0" />
  18. انت عندك بدايه ؟ مصممه ؟ او مقر او اي شي ؟
×
×
  • Create New...