forked from Simnation/Main
ed
This commit is contained in:
parent
b952f7107a
commit
36021d9578
4 changed files with 64 additions and 33 deletions
|
@ -1,6 +1,39 @@
|
|||
-----------------For support, scripts, and more----------------
|
||||
--------------- https://discord.gg/wasabiscripts -------------
|
||||
---------------------------------------------------------------
|
||||
|
||||
-- Definiere Strings direkt in der client.lua, falls sie nicht geladen wurden
|
||||
if not Strings then
|
||||
Strings = {
|
||||
intro_instruction = 'Drücke ~INPUT_ATTACK~ zum Auswerfen, ~INPUT_FRONTEND_RRIGHT~ zum Abbrechen.',
|
||||
rope_broke = 'Kaputt.',
|
||||
rope_broke_desc = 'Oha, zu fest gezogen! Das Seil ist gerissen.',
|
||||
cannot_perform = 'Nope.',
|
||||
cannot_perform_desc = 'Das geht gerade nicht – hier kannst du nicht magnet-fischen.',
|
||||
failed = 'Oops, das war nix.',
|
||||
failed_find = 'Nichts gefunden – der Magnet hat nichts angezogen.',
|
||||
no_water = 'Error 404: Wasser nicht gefunden.',
|
||||
no_water_desc = 'Dein Magnet braucht Wasser, um effektiv zu sein.',
|
||||
no_magnet = 'Kein Magnet.',
|
||||
no_magnet_desc = 'Ohne Magnet kannst du nichts anziehen.',
|
||||
magnet_lost = 'Magnet verloren.',
|
||||
magnet_lost_desc = 'Dein Magnet hat sich vom Seil gelöst.',
|
||||
find_success = 'Fund gesichert!',
|
||||
find_success_desc = 'Du hast eine/n %s gefunden!',
|
||||
sell_shop_blip = 'Schrotthändler',
|
||||
sell_finds = '[E] - Funde verkaufen',
|
||||
kicked = "Du kannst's versuchen, aber das klappt hier nicht.",
|
||||
sold_for = 'Fund verkauft.',
|
||||
sold_for_desc = 'Du hast %sx %s für $%s verkauft.',
|
||||
got_pull = 'Achtung, da zieht was!',
|
||||
got_pull_desc = 'Der Magnet hat etwas gefunden, zieh ihn hoch!',
|
||||
waiting_find = 'Geduld, der Magnet sucht noch.',
|
||||
waiting_find_desc = 'Ein bisschen Geduld – gleich findest du etwas.',
|
||||
cannot_carry = 'Kein Platz!',
|
||||
cannot_carry_desc = 'Du schleppst schon genug – mehr passt nicht rein!'
|
||||
}
|
||||
end
|
||||
|
||||
local magnetFishing = false
|
||||
|
||||
if Config.sellShop.enabled then
|
||||
|
@ -57,7 +90,7 @@ local function GetBestAvailableMagnet()
|
|||
|
||||
-- Check all magnet types
|
||||
for _, magnet in pairs(Config.magnets.types) do
|
||||
local hasItem = lib.callback.await('wasabi_magnet:checkItem', 100, magnet.itemName)
|
||||
local hasItem = lib.callback.await('nordi_magnetfishing:checkItem', 100, magnet.itemName)
|
||||
if hasItem then
|
||||
table.insert(availableMagnets, magnet)
|
||||
end
|
||||
|
@ -81,20 +114,20 @@ local function StartMagnetFishingProcess(selectedMagnet, waterLoc)
|
|||
magnetFishing = true
|
||||
|
||||
-- Create magnet rope prop
|
||||
local model = `prop_tool_cable01` -- Besseres Prop für ein Seil mit Magnet
|
||||
local model = `prop_cs_rope_tie_01` -- Besseres Prop für ein Seil mit Magnet
|
||||
lib.requestModel(model, 100)
|
||||
local magnetRope = CreateObject(model, GetEntityCoords(cache.ped), true, false, false)
|
||||
AttachEntityToEntity(magnetRope, cache.ped, GetPedBoneIndex(cache.ped, 28422), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, true, true, false, true, 1, true)
|
||||
SetModelAsNoLongerNeeded(model)
|
||||
|
||||
-- Load animations
|
||||
lib.requestAnimDict('amb@world_human_hammering@male@base', 100) -- Für das Auswerfen
|
||||
lib.requestAnimDict('amb@world_human_hang_out_street@male_c@base', 100) -- Für das Warten
|
||||
lib.requestAnimDict('amb@world_human_golf_player@male@idle_a', 100) -- Für das Auswerfen
|
||||
lib.requestAnimDict('amb@world_human_stand_fishing@idle_a', 100) -- Für das Warten
|
||||
|
||||
-- Initial animation - Auswerfen des Magneten
|
||||
TaskPlayAnim(cache.ped, 'amb@world_human_hammering@male@base', 'base', 8.0, -8.0, -1, 16, 0, false, false, false)
|
||||
TaskPlayAnim(cache.ped, 'amb@world_human_golf_player@male@idle_a', 'idle_a' , 8.0, -8.0, -1, 16, 0, false, false, false)
|
||||
Wait(2000)
|
||||
TaskPlayAnim(cache.ped, 'amb@world_human_hang_out_street@male_c@base', 'base', 8.0, -8.0, -1, 1, 0, false, false, false)
|
||||
TaskPlayAnim(cache.ped, 'amb@world_human_stand_fishing@idle_a', 'idle_c', 8.0, -8.0, -1, 1, 0, false, false, false)
|
||||
|
||||
-- Main magnet fishing loop
|
||||
while magnetFishing do
|
||||
|
@ -186,40 +219,39 @@ local function StartMagnetFishingProcess(selectedMagnet, waterLoc)
|
|||
RemoveAnimDict('amb@world_human_hang_out_street@male_c@base')
|
||||
end
|
||||
|
||||
|
||||
RegisterNetEvent('wasabi_magnet:startMagnetFishing', function()
|
||||
RegisterNetEvent('nordi_magnetfishing:startMagnetFishing', function()
|
||||
-- Check if player is in a valid state to magnet fish
|
||||
if IsPedInAnyVehicle(cache.ped) or IsPedSwimming(cache.ped) then
|
||||
TriggerEvent('wasabi_magnet:notify', Strings.cannot_perform, Strings.cannot_perform_desc, 'error')
|
||||
TriggerEvent('nordi_magnetfishing:notify', Strings.cannot_perform, Strings.cannot_perform_desc, 'error')
|
||||
return
|
||||
end
|
||||
|
||||
-- Check if already magnet fishing
|
||||
if magnetFishing then
|
||||
TriggerEvent('wasabi_magnet:notify', 'Already Magnet Fishing', 'You are already magnet fishing', 'error')
|
||||
TriggerEvent('nordi_magnetfishing:notify', 'Already Magnet Fishing', 'You are already magnet fishing', 'error')
|
||||
return
|
||||
end
|
||||
|
||||
-- Check for water
|
||||
local water, waterLoc = WaterCheck()
|
||||
if not water then
|
||||
TriggerEvent('wasabi_magnet:notify', Strings.no_water, Strings.no_water_desc, 'error')
|
||||
TriggerEvent('nordi_magnetfishing:notify', Strings.no_water, Strings.no_water_desc, 'error')
|
||||
return
|
||||
end
|
||||
|
||||
-- Select magnet
|
||||
local selectedMagnet = GetBestAvailableMagnet()
|
||||
if not selectedMagnet then
|
||||
TriggerEvent('wasabi_magnet:notify', Strings.no_magnet, Strings.no_magnet_desc, 'error')
|
||||
TriggerEvent('nordi_magnetfishing:notify', Strings.no_magnet, Strings.no_magnet_desc, 'error')
|
||||
return
|
||||
end
|
||||
|
||||
-- Start magnet fishing process
|
||||
TriggerEvent('wasabi_magnet:notify', 'Magnet Selected', 'Using ' .. selectedMagnet.label, 'inform')
|
||||
TriggerEvent('nordi_magnetfishing:notify', 'Magnet Selected', 'Using ' .. selectedMagnet.label, 'inform')
|
||||
StartMagnetFishingProcess(selectedMagnet, waterLoc)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('wasabi_magnet:interupt', function()
|
||||
RegisterNetEvent('nordi_magnetfishing:interupt', function()
|
||||
magnetFishing = false
|
||||
ClearPedTasks(cache.ped)
|
||||
end)
|
||||
|
|
|
@ -28,9 +28,9 @@ CreateBlip = function(coords, sprite, colour, text, scale)
|
|||
end
|
||||
|
||||
TryMagnetFind = function(data)
|
||||
TriggerServerEvent('wasabi_magnet:tryFind', data)
|
||||
TriggerServerEvent('nordi_magnetfishing:tryFind', data)
|
||||
end
|
||||
|
||||
MagnetSellItems = function()
|
||||
TriggerServerEvent('wasabi_magnet:sellFinds')
|
||||
TriggerServerEvent('nordi_magnetfishing:sellFinds')
|
||||
end
|
||||
|
|
|
@ -65,11 +65,10 @@ Config.finds = {
|
|||
{ item = 'old_gun', label = 'alte Pistole', price = {75, 150}, difficulty = {'easy'} },
|
||||
{ item = 'escooter', label = 'E-Scooter', price = {300, 600}, difficulty = {'medium', 'hard'} },
|
||||
{ item = 'safe', label = 'Tresor', price = {500, 1000}, difficulty = {'hard', 'hard', 'medium'} },
|
||||
|
||||
}
|
||||
|
||||
RegisterNetEvent('wasabi_magnet:notify')
|
||||
AddEventHandler('wasabi_magnet:notify', function(title, message, msgType)
|
||||
RegisterNetEvent('nordi_magnetfishing:notify')
|
||||
AddEventHandler('nordi_magnetfishing:notify', function(title, message, msgType)
|
||||
-- Place notification system info here, ex: exports['mythic_notify']:SendAlert('inform', message)
|
||||
if not msgType then
|
||||
lib.notify({
|
||||
|
|
|
@ -6,7 +6,7 @@ local addCommas = function(n)
|
|||
:gsub(",(%-?)$","%1"):reverse()
|
||||
end
|
||||
|
||||
lib.callback.register('wasabi_magnet:checkItem', function(source, itemname)
|
||||
lib.callback.register('nordi_magnetfishing:checkItem', function(source, itemname)
|
||||
local item = HasItem(source, itemname)
|
||||
if item >= 1 then
|
||||
return true
|
||||
|
@ -15,7 +15,7 @@ lib.callback.register('wasabi_magnet:checkItem', function(source, itemname)
|
|||
end
|
||||
end)
|
||||
|
||||
lib.callback.register('wasabi_magnet:getFindData', function(source, magnetType)
|
||||
lib.callback.register('nordi_magnetfishing:getFindData', function(source, magnetType)
|
||||
-- Find the magnet data
|
||||
local magnetData = nil
|
||||
for _, magnet in pairs(Config.magnets.types) do
|
||||
|
@ -72,16 +72,16 @@ lib.callback.register('wasabi_magnet:getFindData', function(source, magnetType)
|
|||
return availableFinds[math.random(#availableFinds)]
|
||||
end)
|
||||
|
||||
RegisterNetEvent('wasabi_magnet:ropeBroke', function()
|
||||
RegisterNetEvent('nordi_magnetfishing:ropeBroke', function()
|
||||
RemoveItem(source, Config.magnetRope.itemName, 1)
|
||||
TriggerClientEvent('wasabi_magnet:interupt', source)
|
||||
TriggerClientEvent('nordi_magnetfishing:interupt', source)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('wasabi_magnet:loseMagnet', function(magnetType)
|
||||
RegisterNetEvent('nordi_magnetfishing:loseMagnet', function(magnetType)
|
||||
RemoveItem(source, magnetType, 1)
|
||||
end)
|
||||
|
||||
RegisterNetEvent('wasabi_magnet:tryFind', function(data)
|
||||
RegisterNetEvent('nordi_magnetfishing:tryFind', function(data)
|
||||
local xRope = HasItem(source, Config.magnetRope.itemName)
|
||||
local xMagnet = false
|
||||
|
||||
|
@ -98,23 +98,23 @@ RegisterNetEvent('wasabi_magnet:tryFind', function(data)
|
|||
local player = GetPlayer(source)
|
||||
if player.canCarryItem(data.item, 1) then
|
||||
AddItem(source, data.item, 1)
|
||||
TriggerClientEvent('wasabi_magnet:notify', source, Strings.find_success, string.format(Strings.find_success_desc, data.label), 'success')
|
||||
TriggerClientEvent('nordi_magnetfishing:notify', source, Strings.find_success, string.format(Strings.find_success_desc, data.label), 'success')
|
||||
else
|
||||
TriggerClientEvent('wasabi_magnet:notify', source, Strings.cannot_carry, Strings.cannot_carry_desc, 'error')
|
||||
TriggerClientEvent('nordi_magnetfishing:notify', source, Strings.cannot_carry, Strings.cannot_carry_desc, 'error')
|
||||
end
|
||||
else
|
||||
AddItem(source, data.item, 1)
|
||||
TriggerClientEvent('wasabi_magnet:notify', source, Strings.find_success, string.format(Strings.find_success_desc, data.label), 'success')
|
||||
TriggerClientEvent('nordi_magnetfishing:notify', source, Strings.find_success, string.format(Strings.find_success_desc, data.label), 'success')
|
||||
end
|
||||
elseif xRope > 0 and not xMagnet then
|
||||
TriggerClientEvent('wasabi_magnet:interupt', source)
|
||||
TriggerClientEvent('wasabi_magnet:notify', source, Strings.no_magnet, Strings.no_magnet_desc, 'error')
|
||||
TriggerClientEvent('nordi_magnetfishing:interupt', source)
|
||||
TriggerClientEvent('nordi_magnetfishing:notify', source, Strings.no_magnet, Strings.no_magnet_desc, 'error')
|
||||
elseif xRope < 1 then
|
||||
KickPlayer(source, Strings.kicked)
|
||||
end
|
||||
end)
|
||||
|
||||
RegisterNetEvent('wasabi_magnet:sellFinds', function()
|
||||
RegisterNetEvent('nordi_magnetfishing:sellFinds', function()
|
||||
local playerPed = GetPlayerPed(source)
|
||||
local playerCoord = GetEntityCoords(playerPed)
|
||||
local distance = #(playerCoord - Config.sellShop.coords)
|
||||
|
@ -142,7 +142,7 @@ function SellItem(source, itemData)
|
|||
end
|
||||
if rewardAmount > 0 then
|
||||
AddMoney(source, 'money', rewardAmount)
|
||||
TriggerClientEvent('wasabi_magnet:notify', source, Strings.sold_for,
|
||||
TriggerClientEvent('nordi_magnetfishing:notify', source, Strings.sold_for,
|
||||
(Strings.sold_for_desc):format(HasItem(source, itemData.item), itemData.label, addCommas(rewardAmount)), 'success')
|
||||
RemoveItem(source, itemData.item, HasItem(source, itemData.item))
|
||||
end
|
||||
|
@ -150,5 +150,5 @@ function SellItem(source, itemData)
|
|||
end
|
||||
|
||||
RegisterUsableItem(Config.magnetRope.itemName, function(source)
|
||||
TriggerClientEvent('wasabi_magnet:startMagnetFishing', source)
|
||||
TriggerClientEvent('nordi_magnetfishing:startMagnetFishing', source)
|
||||
end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue