Jump to content

Script Saver


Recommended Posts

Gente tenho um problema com um script de saver, quando a pessoa morre sem esta com nada na mão ela fica sem armas ao nascer, e quando a pessoa morre com uma arma na mão ela ganha o dobro de munição ao nascer novamente. eu creio que o erro esta nesse trecho do script.

function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, 1244.5, 333, 19.60000038147, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
    setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true) 
  end 
end 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted) 

creio eu que o erro de dar o dobro de munição esteja nessa linha:

setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true)

se vocês souberem por favor ajude :D obrigado !

Script todo:

function playerLogin (thePreviousAccount, theCurrentAccount, autoLogin) 
  if  not (isGuestAccount (getPlayerAccount (source))) then 
    local accountData = getAccountData (theCurrentAccount, "funmodev2-money") 
    if (accountData) then 
      local playerMoney = getAccountData (theCurrentAccount, "funmodev2-money") 
      local playerSkin = getAccountData (theCurrentAccount, "funmodev2-skin") 
      local playerHealth = getAccountData (theCurrentAccount, "funmodev2-health") 
      local playerArmor = getAccountData (theCurrentAccount, "funmodev2-armor") 
      local R = getAccountData (theCurrentAccount, "funmodev2-R") 
      local G = getAccountData (theCurrentAccount, "funmodev2-G") 
      local B = getAccountData (theCurrentAccount, "funmodev2-B") 
      local playerX = getAccountData (theCurrentAccount, "funmodev2-x") 
      local playerY = getAccountData (theCurrentAccount, "funmodev2-y") 
      local playerZ = getAccountData (theCurrentAccount, "funmodev2-z") 
      local playerInt = getAccountData (theCurrentAccount, "funmodev2-int") 
      local playerDim = getAccountData (theCurrentAccount, "funmodev2-dim") 
      local playerWanted = getAccountData (theCurrentAccount, "funmodev2-wantedlevel") 
      local playerWeaponID0 = getAccountData (theCurrentAccount, "funmodev2-weaponID0") 
      local playerWeaponID1 = getAccountData (theCurrentAccount, "funmodev2-weaponID1") 
      local playerWeaponID2 = getAccountData (theCurrentAccount, "funmodev2-weaponID2") 
      local playerWeaponID3 = getAccountData (theCurrentAccount, "funmodev2-weaponID3") 
      local playerWeaponID4 = getAccountData (theCurrentAccount, "funmodev2-weaponID4") 
      local playerWeaponID5 = getAccountData (theCurrentAccount, "funmodev2-weaponID5") 
      local playerWeaponID6 = getAccountData (theCurrentAccount, "funmodev2-weaponID6") 
      local playerWeaponID7 = getAccountData (theCurrentAccount, "funmodev2-weaponID7") 
      local playerWeaponID8 = getAccountData (theCurrentAccount, "funmodev2-weaponID8") 
      local playerWeaponID9 = getAccountData (theCurrentAccount, "funmodev2-weaponID9") 
      local playerWeaponID10 = getAccountData (theCurrentAccount, "funmodev2-weaponID10") 
      local playerWeaponID11 = getAccountData (theCurrentAccount, "funmodev2-weaponID11") 
      local playerWeaponID12 = getAccountData (theCurrentAccount, "funmodev2-weaponID12") 
      local playerWeaponAmmo0 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo0") 
      local playerWeaponAmmo1 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo1") 
      local playerWeaponAmmo2 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo2") 
      local playerWeaponAmmo3 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo3") 
      local playerWeaponAmmo4 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo4") 
      local playerWeaponAmmo5 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo5") 
      local playerWeaponAmmo6 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo6") 
      local playerWeaponAmmo7 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo7") 
      local playerWeaponAmmo8 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo8") 
      local playerWeaponAmmo9 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo9") 
      local playerWeaponAmmo10 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo10") 
      local playerWeaponAmmo11 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo11") 
      local playerWeaponAmmo12 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo12") 
      spawnPlayer (source, playerX, playerY, playerZ +1, 0, playerSkin, playerInt, playerDim) 
      setPlayerMoney (source, playerMoney) 
      setTimer (setElementHealth, 500, 1, source, playerHealth) 
      setTimer (setPedArmor, 500, 1, source, playerArmor) 
      setTimer (setPlayerWantedLevel, 500, 1, source, playerWanted) 
      giveWeapon(source, playerWeaponID0, playerWeaponAmmo0, true) 
      giveWeapon(source, playerWeaponID1, playerWeaponAmmo1, true) 
      giveWeapon(source, playerWeaponID2, playerWeaponAmmo2, true) 
      giveWeapon(source, playerWeaponID3, playerWeaponAmmo3, true) 
      giveWeapon(source, playerWeaponID4, playerWeaponAmmo4, true) 
      giveWeapon(source, playerWeaponID5, playerWeaponAmmo5, true) 
      giveWeapon(source, playerWeaponID6, playerWeaponAmmo6, true) 
      giveWeapon(source, playerWeaponID7, playerWeaponAmmo7, true) 
      giveWeapon(source, playerWeaponID8, playerWeaponAmmo8, true) 
      giveWeapon(source, playerWeaponID9, playerWeaponAmmo9, true) 
      giveWeapon(source, playerWeaponID10, playerWeaponAmmo10, true) 
      giveWeapon(source, playerWeaponID11, playerWeaponAmmo11, true) 
      giveWeapon(source, playerWeaponID12, playerWeaponAmmo12, true) 
      setCameraTarget (source, source) 
      fadeCamera(source, true, 2.0) 
      setPlayerNametagColor (source, R, G, B)  
    else 
    spawnPlayer (source, 1417.0999755859, 254.39999389648, 23.10000038147, 0, math.random (0,299), 0, 0, spawnTeam) -- spawns player with random skin 
      setPlayerMoney (source, 2600) 
      setCameraTarget (source, source) 
      fadeCamera(source, true, 2.0)  
      setPlayerNametagColor (source, 255, 255, 255)  
    end    
  end 
end 
addEventHandler ("onPlayerLogin", getRootElement(), playerLogin) 
  
function onLogout () 
    kickPlayer (source, nil, "Logging out is disallowed.") 
end 
addEventHandler ("onPlayerLogout", getRootElement(), onLogout) 
  
function onQuit (quitType, reason, responsibleElement) 
  if not (isGuestAccount (getPlayerAccount (source))) then 
    account = getPlayerAccount (source) 
    if (account) then 
      local x,y,z = getElementPosition (source) 
      local r,g,b = getPlayerNametagColor (source) 
      setAccountData (account, "funmodev2-money", tostring (getPlayerMoney (source))) 
      setAccountData (account, "funmodev2-skin", tostring (getPedSkin (source))) 
      setAccountData (account, "funmodev2-health", tostring (getElementHealth (source))) 
      setAccountData (account, "funmodev2-armor", tostring (getPedArmor (source))) 
      setAccountData (account, "funmodev2-R", r) 
      setAccountData (account, "funmodev2-G", g) 
      setAccountData (account, "funmodev2-B", b) 
      setAccountData (account, "funmodev2-x", x) 
      setAccountData (account, "funmodev2-y", y) 
      setAccountData (account, "funmodev2-z", z) 
      setAccountData (account, "funmodev2-int", getElementInterior (source)) 
      setAccountData (account, "funmodev2-dim", getElementDimension (source)) 
      setAccountData (account, "funmodev2-wantedlevel", getPlayerWantedLevel (source)) 
      setAccountData (account, "funmodev2-weaponID0", getPedWeapon (source, 0)) 
      setAccountData (account, "funmodev2-weaponID1", getPedWeapon (source, 1)) 
      setAccountData (account, "funmodev2-weaponID2", getPedWeapon (source, 2)) 
      setAccountData (account, "funmodev2-weaponID3", getPedWeapon (source, 3)) 
      setAccountData (account, "funmodev2-weaponID4", getPedWeapon (source, 4)) 
      setAccountData (account, "funmodev2-weaponID5", getPedWeapon (source, 5)) 
      setAccountData (account, "funmodev2-weaponID6", getPedWeapon (source, 6)) 
      setAccountData (account, "funmodev2-weaponID7", getPedWeapon (source, 7)) 
      setAccountData (account, "funmodev2-weaponID8", getPedWeapon (source, 8)) 
      setAccountData (account, "funmodev2-weaponID9", getPedWeapon (source, 9)) 
      setAccountData (account, "funmodev2-weaponID10", getPedWeapon (source, 10)) 
      setAccountData (account, "funmodev2-weaponID11", getPedWeapon (source, 11)) 
      setAccountData (account, "funmodev2-weaponID12", getPedWeapon (source, 12)) 
      setAccountData (account, "funmodev2-weaponAmmo0", getPedTotalAmmo (source, 0)) 
      setAccountData (account, "funmodev2-weaponAmmo1", getPedTotalAmmo (source, 1)) 
      setAccountData (account, "funmodev2-weaponAmmo2", getPedTotalAmmo (source, 2)) 
      setAccountData (account, "funmodev2-weaponAmmo3", getPedTotalAmmo (source, 3)) 
      setAccountData (account, "funmodev2-weaponAmmo4", getPedTotalAmmo (source, 4)) 
      setAccountData (account, "funmodev2-weaponAmmo5", getPedTotalAmmo (source, 5)) 
      setAccountData (account, "funmodev2-weaponAmmo6", getPedTotalAmmo (source, 6)) 
      setAccountData (account, "funmodev2-weaponAmmo7", getPedTotalAmmo (source, 7)) 
      setAccountData (account, "funmodev2-weaponAmmo8", getPedTotalAmmo (source, 8)) 
      setAccountData (account, "funmodev2-weaponAmmo9", getPedTotalAmmo (source, 9)) 
      setAccountData (account, "funmodev2-weaponAmmo10", getPedTotalAmmo (source, 10)) 
      setAccountData (account, "funmodev2-weaponAmmo11", getPedTotalAmmo (source, 11)) 
      setAccountData (account, "funmodev2-weaponAmmo12", getPedTotalAmmo (source, 12)) 
    end 
  end 
end 
addEventHandler ("onPlayerQuit", getRootElement(), onQuit) 
  
function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, 1244.5, 333, 19.60000038147, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
    setTimer (giveWeapon, 1000, 1, source, theWeapon, weaponAmmo, true) 
  end 
end 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted) 

Edited by Guest
Link to comment

Bom... já nunca fui bom com Lua e, agora que já não programo faz tempo, estou pior ainda. Já tentou definir a munição (setWeaponAmmo()) para 0 (zero) antes de user o giveWeapon()? Acho que pode funcionar.

function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, 1244.5, 333, 19.60000038147, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
    setTimer (setWeaponAmmo, 1000, 1, source, theWeapon, 0, 0) 
    setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true) 
  end 
end 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted) 

Se isto não funcionar, o problema é na variável weaponAmmo armazenando o valor "dobrado". Aí você pode tentar uma POG maldita e dividir a variável por 2, haha.

De qualquer forma, o Anderl poderia lhe ajudar melhor.

Link to comment
Bom... já nunca fui bom com Lua e, agora que já não programo faz tempo, estou pior ainda. Já tentou definir a munição (setWeaponAmmo()) para 0 (zero) antes de user o giveWeapon()? Acho que pode funcionar.
function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, 1244.5, 333, 19.60000038147, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
    setTimer (setWeaponAmmo, 1000, 1, source, theWeapon, 0, 0) 
    setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true) 
  end 
end 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted) 

Se isto não funcionar, o problema é na variável weaponAmmo armazenando o valor "dobrado". Aí você pode tentar uma POG maldita e dividir a variável por 2, haha.

De qualquer forma, o Anderl poderia lhe ajudar melhor.

Não programo em Lua faz tempo também.. Não lembro quase nada .__.

Link to comment
  • Moderators

Não vejo nenhum código que esteja, adicionando o dobro da munição que o jogador tinha antes de morrer. apenas o mesmo valor.

Eu também estou acho que 1 mês sem mexer com Lua estou meio 'enferrujado'.

Link to comment

eu entendi a questão, era assim o correto, haha sou muito novato no script tenho que estudar muito ainda.

function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    savePlayerWeapons(source) 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, 1244.5, 333, 19.60000038147, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
  end 
end 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted) 

não.

function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, 1244.5, 333, 19.60000038147, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
    setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true) 
  end 
end 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted) 

e o load também para devolver as armas e as munições.

function loadPlayerWeapons(player) 
    local account = getPlayerAccount(player) 
    if isGuestAccount(account) then return end 
    local weaponsString = getAccountData(account, "weapons") 
    takeAllWeapons(player) 
    for index, wData in pairs(split(weaponsString, ";")) do 
        local weapon, ammo = unpack(split(wData, ",")) 
        weapon, ammo = tonumber(weapon), tonumber(ammo) 
        if weapon and weapon ~= 0 and ammo and ammo ~= 0 then 
            giveWeapon(player, weapon, ammo) 
        end 
    end 
end 

Link to comment

fico feliz em ver que temos um moderador bom no fórum. :)

a maioria dos moderadores são metidos, como alguns do fórum da cit, um dia, eu tinha lido as regras do fórum do cit, dai eu postei uma pergunta sobre o servidor deles, depois veio um moderador e apago meu tópico, falou que estava incorreto e não falou aonde eu errei. :\

Obrigado, StanleySathler :]

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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