local damaged = false --sürekli hasar kontrolü değişkeni // sürekli hasar kontrol değişkeni değil üst üste movement atmasın diye.
local AllowedWeapons = { -- i think only melee weapons
GetHashKey("WEAPON_KNIFE"), --sadece bıçakta çalışması için bıçak hash'i // birden fazla silah girilsin diye obje oluşturuldu
}
Citizen.CreateThread(function()
while true do --rezil döngü // birçok yerde döngü kullanman gerekir boş yapma
local playerPed = PlayerPedId() --sürekli rezil döngüde çektirilen rezil pedid, optimizasyon rehberimi okumalısın. // pedId değişirse otomatik olarak burasıda değişir local olarak tanımlayamazsın.
for k,v in pairs(AllowedWeapons) do --tek bir silah için de olsa kvinpairs ile iterasyon kontrolü yapıp optimizasyonu daha da zitiyoruz // tek bir silah için değil bir çok silah için yazılmış obje adını okusan anlardın
if HasPedBeenDamagedByWeapon(playerPed, v, 0) and not damaged then --ped silah tarafından yaralandıysa ped zaten yaralı değildi ise // kontrol sorgusu
damaged = true --adam hasarlı // tek seferlik çalışsın diye var true döndürülüyor
local animSet = "move_m@injured" --move injured yürüyüş sitli yüklendi
while not HasAnimSetLoaded(animSet) do --yürüyüş stili yüklenmemişken
RequestAnimSet(animSet) --yürüyüş stilini iste
Citizen.Wait(0) --crash yeme
end
SetPedMovementClipset(playerPed, animSet, true) --ped hareket clipsetini ayarla
end
end
Citizen.Wait(1) --crash yeme ama 1ms ile bunu yap ki thread senkronu yaprağı yesin // ms değerini arttırırsan kesinliği düşecek bu yüzden böyle olmalı
end