Jump to content

انقاص الفلوس عند تفجير السياره


GLAD

Recommended Posts

getElementType 
setElementData 
getElementData 
takePlayerMoney 

onClientPlayerWeaponFire

هو سيارة hitElement راح تتأكد من ان الـ

ثم راح تحط اللاعب الي طلق بالسلاح و الي هو طبعاً انت كـ المنت داتا في السيارة

يعني يكون الي بالألمنت داتا هو آخر شخص طلق على السيارة

طبعاً ممكن تحط تايمر عشان تحذف الألمنت داتا عشان مثلاً لو انت طلقت على السيارة و بعدين الي يسوق السيارة راح يصدم جدار و فجر السيارة ما ينقص منك فلوس

--------------------------------------------------------

--------------------------------------------------------

onVehicleExplode لما تنفجر السيارة تستخدم الأفنت

و تتحق من آخر شخص طلق على السيارة عن طريق الألمنت داتا و تنقص من فلوسه

======================================

طبعاً الكلام الي فوق كان على الأسلحة مثل رشاش و مسدس الخ

اما القنابل و الصواريخ و غيره ذي تحتاج شغله ثانية

تحتاج الأفنت هذا

onClientProjectileCreation

و تحتاج تتحقق من صاحب القنبلة او الصاروخ بالفنكشن هذا

getProjectileCreator 

تحتاج تسوي لووب على كل السيارات الي بالسيرفر

getElementsByType 

عشان تتحقق من ان مكان الأنفجار و مدى الانفجار قريب للسيارة يعني أثر على السيارة isElementInRange و تستخدم هذا الفنكشن

و نفس الطريقة راح تحط المنت داتا للسيارة

تحط صاحب القنبلة او الصاروخ بالألمنت داتا لـ كل السيارات الي في مدى الأنفجار

=============================

طبعاً ممكن ما يكون الكود دقيق جداً بس ما اعتقد ان في حل غيره

ممكن تستخدم فنكشات غير الي انا ذكرتهم على حسب الحاجة

Link to comment
addEventHandler("onClientProjectileCreation", root, function(projectile) 
    local creator = getProjectileCreator(projectile) 
    if (getElementType(creator) == "player") then 
     takePlayerMoney ( creator, 200)  
end) 
  

كذا صح ؟؟

احس اني حايس الاكواد ههههه

Link to comment

سويت الكود هذا لما افجر سياره يطلعلي الكلام اللي في الشات لكن ماتنقص فلوسي

client:

addEventHandler("onClientVehicleExplode", getRootElement(), function() 
outputChatBox ("  #ffff00 You lose 200$ for explode vehicle  ", 255, 0, 0,true) 
addEventHandler( "TAKE", root, take ) 
end) 
  

server:

  local playername = getPlayerName(source) 
  
  
  
addEvent("TAKE", true) 
addEventHandler("TAKE", getRootElement(), take) 
      takePlayerMoney(source, 200) 
end 
) 
  

وش الخطأ ؟؟

Link to comment
هو سيارة hitElement راح تتأكد من ان الـ

ثم راح تحط اللاعب الي طلق بالسلاح و الي هو طبعاً انت كـ المنت داتا في السيارة

يعني يكون الي بالألمنت داتا هو آخر شخص طلق على السيارة

function causingDamage(_, _, _, _, _, _, hitElement ) 
    if getElementType(hitElement) == "vehicle" then 
         setElementData(hitElement,"causingDamage",getPlayerName(getLocalPlayer())) 
    end 
end 
addEventHandler ( "onClientPlayerWeaponFire", getLocalPlayer(), causingDamage ) 
طبعاً ممكن تحط تايمر عشان تحذف الألمنت داتا عشان مثلاً لو انت طلقت على السيارة و بعدين الي يسوق السيارة راح يصدم جدار و فجر السيارة ما ينقص منك فلوس

setTimer ( function()  
-- do anything here -- 
end, "عدد مرات التكرار", "عدد الثواني"  ) 
onVehicleExplode لما تنفجر السيارة تستخدم الأفنت

و تتحق من آخر شخص طلق على السيارة عن طريق الألمنت داتا و تنقص من فلوسه

function punishOffending() 
local data = getElementData(source,"causingDamage") 
local offending = getPlayerFromName(data) 
    if data and offending and data ~= false then 
      takePlayerMoney(offending, 200) 
        outputChatBox ("#ffff00 You lose 200$ for explode vehicle",offending,255,0,0,true) 
    end 
end 
addEventHandler("onVehicleExplode", getRootElement(), punishOffending) 
طبعاً الكلام الي فوق كان على الأسلحة مثل رشاش و مسدس الخ

اما القنابل و الصواريخ و غيره ذي تحتاج شغله ثانية

تحتاج الأفنت هذا

onClientProjectileCreation

و تحتاج تتحقق من صاحب القنبلة او الصاروخ بالفنكشن هذا

getProjectileCreator 

function projectileCreator (creator) 
local type = getProjectileType(source) 
local originator = getProjectileCreator(creator) 
local player = getPlayerName(originator) 
if type == 16 or type == 18 or type == 19 or type == 20 or type == 21 or type == 39 then 
    if getElementType(originator) == "player" then 
      -- do anything here -- 
    end 
end 
end 
addEventHandler( "onClientProjectileCreation", getRootElement(), projectileCreator ) 
تحتاج تسوي لووب على كل السيارات الي بالسيرفر
getElementsByType 

for n,v in ipairs(getElementsByType("vehicle")) do 
عشان تتحقق من ان مكان الأنفجار و مدى الانفجار قريب للسيارة يعني أثر على السيارة isElementInRange و تستخدم هذا الفنكشن

و نفس الطريقة راح تحط المنت داتا للسيارة

تحط صاحب القنبلة او الصاروخ بالألمنت داتا لـ كل السيارات الي في مدى الأنفجار

function isElementInRange(ele, x, y, z, range) 
   if ele and x and y and z and range then 
      return getDistanceBetweenPoints3D(getElementPosition(ele), x,y,z)<=range -- returns true if it the range of the element to the main point is smaller than (or as big as) the maximum range. 
   end 
   return false 
end 

طبعاً ممكن ما يكون الكود دقيق جداً بس ما اعتقد ان في حل غيره

ممكن تستخدم فنكشات غير الي انا ذكرتهم على حسب الحاجة

Server Functions

Server Events

Client Functions

Client Events

Useful Functions

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...