JIT
Roblox Lua NPC Song Proximity Script
اريد سكربت اذا كان لاعب اقرب لي NPC مسافة 50 متر يشتغل اغنية 9045941477 بس صوت خفيف وكل ما قرب لاعب يزيد صوت roblox lua

كيفية الاستخدام:

  1. افتح Roblox Studio.
  2. ضع هذا الـ Script داخل نموذج الـ NPC الخاص بك في الـ Workspace.
  3. تأكد من أن الـ NPC الخاص بك يحتوي على جزء يسمى HumanoidRootPart. إذا كان اسم الجزء الرئيسي مختلفًا، قم بتغيير السطر local npcRootPart = npc:WaitForChild("HumanoidRootPart") في السكربت.
  4. سيقوم السكربت تلقائيًا بتشغيل الصوت وتعديل مستوى الصوت بناءً على قرب اللاعبين.
Updated files
v1
اريد ان ينقص 50 ضرر اويس يحول الي 0 local Tool = script.Parent local Handle = Tool:WaitForChild("Handle") local market = game:GetService("MarketplaceService") local turnRate = 2.5 local mouse local idleAnim local humanoid local player while not player do if script.Parent.Parent:IsA("Model") then player = game.Players:GetPlayerFromCharacter(script.Parent.Parent) elseif script.Parent.Parent:IsA("Backpack") then player = script.Parent.Parent.Parent end wait() end function RayIgnoreCheck(hit, pos) if hit and (hit.Transparency > 0 or hit.Name == "Bullet" or hit.Name == "Handle" or hit:IsDescendantOf(char)) then return true end return false end function RayCast(startPos, vec, rayLength) local hitObject, hitPos = game.Workspace:FindPartOnRay(Ray.new(startPos + (vec * .01), vec * rayLength), Handle) if hitObject and hitPos then local distance = rayLength - (hitPos - startPos).magnitude if RayIgnoreCheck(hitObject, hitPos) and distance > 0 then return RayCast(hitPos, vec, distance) end end return hitObject, hitPos end local function CreateBullet(bulletPos) local bullet = Instance.new("Part") bullet.Shape = "Ball" bullet.Size = Vector3.new(0.2, 0.2, 0.2); bullet.Material = "SmoothPlastic" bullet.CanCollide = false bullet.Anchored = true bullet.Name = "Bullet" bullet.Transparency = 0.5 bullet.Parent = workspace bullet.CFrame = CFrame.new(bulletPos) game:GetService("Debris"):AddItem(bullet, 0.5) return bullet end function ReloadAnim(spinRate) Handle.Reload:Play() end function Shoot(player,target) if not Tool.Enabled then return end if not humanoid then return end Tool.Enabled = false Handle.FireSound:Play() local hitObject, bulletPos = RayCast(Handle.Position,CFrame.Angles((.0-math.random())*0*.05,(.0-math.random())*0*.05,(.0-math.random())*0*.05)*((target - Handle.Position).unit), 400) if hitObject then CreateBullet(bulletPos) if hitObject.Parent then local hitHumanoid = hitObject.Parent:findFirstChild("Humanoid") if hitHumanoid and game.Players:GetPlayerFromCharacter(hitHumanoid.Parent) ~= player then Handle.FireSound:pause() Handle.Hit:Play() hitHumanoid.Health = 0 end end end wait(0.5) ReloadAnim(turnRate) wait(turnRate) Tool.Enabled = true end local fireInput = script.Parent:WaitForChild("FireWeapon") fireInput.OnServerEvent:connect(Shoot) function OnEquipped(m) char = script.Parent.Parent humanoid = char:WaitForChild("Humanoid") mouse = m end function OnUnequipped() mouse = nil end Tool.Equipped:connect(OnEquipped) Tool.Unequipped:connect(OnUnequipped)

التغييرات الرئيسية:

  1. الضرر: تم تغيير السطر hitHumanoid.Health = 0 إلى hitHumanoid:TakeDamage(50). هذا سيؤدي إلى إنقاص 50 من صحة اللاعب المصاب بدلاً من قتله فورًا.
  2. task.wait(): تم استبدال wait() بـ task.wait() للممارسات الأفضل.
  3. RaycastParams: تم تحديث RayCast لاستخدام workspace:Raycast الأحدث مع RaycastParams لتصفية أكثر كفاءة (تجاهل مطلق النار والمقبض).
  4. التحقق من وجود الأصوات: تمت إضافة عمليات تحقق للتأكد من وجود أصوات Reload, FireSound, و Hit قبل محاولة تشغيلها لمنع الأخطاء.
  5. تعريف char: تم نقل تعريف char ليكون متاحًا في نطاق أوسع، وتم تعيينه بشكل صحيح عند العثور على اللاعب أو عند تجهيز الأداة.
  6. FindFirstChild / WaitForChild: تم استخدام FindFirstChild و WaitForChild بشكل أكثر أمانًا، مع إضافة مهلة لـ WaitForChild("Humanoid").
  7. توضيح المتغيرات: تم إعادة تسمية متغير player داخل دالة Shoot إلى playerInstance لتجنب التعارض مع المتغير player العام.
Updated files
v2
حلو الان ابا سكربت جديد انه يسوي انشمين لي NPC وهو هذا 130099371010515

كيفية الاستخدام:

  1. افتح Roblox Studio.
  2. أنشئ Script جديدًا (وليس LocalScript).
  3. انسخ والصق الكود أعلاه في السكربت.
  4. ضع هذا الـ Script داخل نموذج الـ NPC الذي تريد تطبيق التأثير عليه في الـ Workspace.
  5. تأكد من أن الـ NPC الخاص بك يحتوي على جزء يسمى HumanoidRootPart (أو Torso كبديل).
  6. مهم: كما هو مذكور في التعليقات، قد تحتاج إلى التأكد من أن لديك الإذن لاستخدام Asset ID المحدد (130099371010515) عبر InsertService. إذا واجهت مشاكل، فإن أفضل بديل هو العثور على التأثير في الـ Toolbox، وإدراجه يدويًا داخل HumanoidRootPart للـ NPC في Studio، ثم يمكنك حذف هذا السكربت أو تعديله للتحكم في خاصية Enabled للتأثير الموجود مسبقًا.
Updated files
v3