Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,992
  • Joined

  • Last visited

  • Days Won

    183

Everything posted by Lord Henry

  1. Da próxima vez poste na seção de Programação em Lua. Se não é possível abrir o script do resource, é porque o desenvolvedor compilou para ninguém mexer no código. Nesse caso, não há o que fazer. E não exagere no uso do Caps Lock.
  2. Verifique se no MTA a tecla Z está devidamente bindada ao comando voiceptt. ESC >> Opções >> Teclas Também verifique nas configurações do seu microfone se ele está captando sua voz fora do jogo.
  3. Não. Ela só serve pra saber a distância entre uma coordenada e outra. Sendo essas coordenadas, podendo ser posição de jogadores. Foi isso q vc pediu, algo pra saber a distância.
  4. Realmente sem código fica bem difícil adivinhar o problema. Acho mais fácil vc simplesmente baixar uma loja de carros que funcione. Shopcar-system
  5. Da próxima vez crie outro tópico referente ao seu segundo problema, pois ele não tem nada a ver com este tópico. Referente ao seu problema com DX que na verdade está na parte CEGUI, o que acontece é que esse painel aí foi feito de maneira porca usando botões CEGUI em vez de áreas clicáveis DX. Para contornar essa cagada, deixe os botões invisíveis com guiSetAlpha. Se usar guiSetVisible, eles não serão mais acessíveis enquanto estiverem ocultados. Supondo que o painel esteja usando esses botões CEGUI pra funcionar. Se não estiver, é mais fácil simplesmente deletá-los do script.
  6. A questão do logout ali eu nem prestei atenção, já que no sistema dele o logout não era permitido e kickava o jogador que deslogasse, afim de forçar um onPlayerQuit.
  7. Seguindo os testes de JSON: Em nenhum deles o loop FOR funcionou.
  8. Por isso que é importante fazer o que eu digo.
  9. A primeira table é a mytable faça ela com índices numéricos.
  10. @DNL291 tente de novo mas agora indexe a primeira table com números.
  11. É algum resource interferindo na função giveWeapon. Acontece quando vc dá esse nome pra alguma função. Por isso vc não pode dar qualquer nome pras funções, precisa ser um nome que não é usado pelo MTA. Exemplo de função com nome ilegal: function giveWeapon () -- Faz alguma coisa. end Quando vc encontrar o resource que está causando conflito, nos mostre qual foi.
  12. Isso é client-side, amigo. Não existe velocímetro criado server-side. (me referindo aos elementos gráficos)
  13. Veículos não sei se é possível. A princípio não tem como. No GTA:SA também não.
  14. Desligue todos os resources exceto esse e o painel admin e tente novamente.
  15. Acho que não vai funcionar. Já que o createLight não ilumina objetos. Ilumina somente peds, players, pneus e placas de veículos.
  16. O fromJSON vai retornar uma table indexada em strings. É uma table normal, mas os índices são strings em vez de números. Exemplo: tableQualquer = {1, 30, 0, "oi"} data = toJSON (tableQualquer) -- data = "[{"1": 1, "4": "oi", "2": 30, "3": 0}]" -- Sim, ele aleatoriza a ordem dos elementos. A não ser que vc force a ordem como eu fiz no código. novaData = fromJSON (data) --[[ novaData = { ["1"] = 1, ["4"] = "oi", ["2"] = 30, ["3"] = 0 } ]] O toJSON também aleatoriza os elementos, caso vc declare a table inteira em vez dos elementos separadamente.
  17. Dessa forma, weaponData[ i ] não existe. Pois não existe nenhum elemento com índice numérico. Se converter o valor numérico de i para string, dai existe.
  18. @DNL291 sim. Tem que converter pra string pois o JSON sempre indexa a table com índices de string. ["1"], ["2"], ["algumaCoisa"]
  19. Cara, isso não é possível. Deve ter algum resource entrando em conflito. Aqui funciona perfeitamente.
  20. Ele está verificando se essa data existe. Não é pra dar erro nessa linha. Mesmo que a data não exista. Ele cria essa data ao sair do servidor.
  21. Você copiou errado. 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 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 playerTeam = getAccountData (theCurrentAccount, "funmodev2-Team") 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) if getAccountData (theCurrentAccount, "funmodev2-weapons") then local weaponData = fromJSON (getAccountData (account, "funmodev2-weapons")) -- Converte a string JSON em uma table. for i=1, 46 do -- Para cada ID de arma, faça: (seria do 0 ao 46, mas não precisa obter a mão do jogador) if weaponData[tostring(i)] then -- Se existe o ID "i" de arma na table, então: giveWeapon (source, i, weaponData[tostring(i)]) -- Os índices da table JSON sempre são em string. end end end setCameraTarget (source) fadeCamera (source, true, 2.0) else spawnPlayer (source, 1481.0855712891, -1771.2996826172, 18.795753479004, 0, 78, 0, 0) setPlayerMoney (source, 200) setCameraTarget (source) fadeCamera (source, true, 2.0) end end end addEventHandler ("onPlayerLogin", root, playerLogin) function onLogout () kickPlayer (source, nil, "Logging out is disallowed.") end addEventHandler ("onPlayerLogout", root, onLogout) function onQuit (quitType, reason, responsibleElement) if not (isGuestAccount (getPlayerAccount (source))) then account = getPlayerAccount (source) if (account) then local x, y, z = getElementPosition (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)) local ammo = {} for i=0,12 do --Weapon Slots for k=1,46 do --Weapon IDs (seria do 0 ao 46, mas não precisa obter a mão do jogador, arma 0.) if getPedWeapon (source, i) == k then ammo[k] = getPedTotalAmmo (source, i) end end end setAccountData (account, "funmodev2-weapons", toJSON ( { ammo[1], ammo[2], ammo[3], ammo[4], ammo[5], ammo[6], ammo[7], ammo[8], ammo[9], ammo[10], ammo[11], ammo[12], ammo[13], ammo[14], ammo[15], ammo[16], ammo[17], ammo[18], ammo[19], ammo[20], ammo[21], ammo[22], ammo[23], ammo[24], ammo[25], ammo[26], ammo[27], ammo[28], ammo[29], ammo[30], ammo[31], ammo[32], ammo[33], ammo[34], ammo[35], ammo[36], ammo[37], ammo[38], ammo[39], ammo[40], ammo[41], ammo[42], ammo[43], ammo[44], ammo[45], ammo[46] } )) end end end addEventHandler ("onPlayerQuit", root, 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, 2036.1735839844, -1413.0563964844, 16.9921875, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) setTimer (setCameraTarget, 1250, 1, source) setTimer (fadeCamera, 2000, 1, source, true) setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true) end end addEventHandler ("onPlayerWasted", root, onWasted) function setTeam () local account = getPlayerAccount (source) -- gets players account local team = getAccountData (account, "team") -- gets players team if (team) and getTeamFromName (team) then setPlayerTeam (source, getTeamFromName (team)) -- sets players team end end addEventHandler ("onPlayerLogin", root, setTeam) -- sets players team on login function save() local team = getPlayerTeam (source) -- Gets the players team local account = getPlayerAccount (source) if (team) and not isGuestAccount (account) then -- Checks to see if the player is a guest or not setAccountData (account, "team", getTeamName (team)) --saves team end end addEventHandler ("onPlayerQuit", root, save) -- saves team on quit
  22. Troque o previousAcc por account
  23. Parte do save das armas: (já troquei o nome da data pra ficar parecido com o seu sistema) Acesse o banco de dados antes de qualquer coisa e delete todos os registros das armas e munições do seu save-system. local ammo = {} for i=0,12 do --Weapon Slots for k=1,46 do --Weapon IDs (seria do 0 ao 46, mas não precisa obter a mão do jogador, arma 0.) if getPedWeapon (source, i) == k then ammo[k] = getPedTotalAmmo (source, i) end end end setAccountData (previousAcc, "funmodev2-weapons", toJSON ( { ammo[1], ammo[2], ammo[3], ammo[4], ammo[5], ammo[6], ammo[7], ammo[8], ammo[9], ammo[10], ammo[11], ammo[12], ammo[13], ammo[14], ammo[15], ammo[16], ammo[17], ammo[18], ammo[19], ammo[20], ammo[21], ammo[22], ammo[23], ammo[24], ammo[25], ammo[26], ammo[27], ammo[28], ammo[29], ammo[30], ammo[31], ammo[32], ammo[33], ammo[34], ammo[35], ammo[36], ammo[37], ammo[38], ammo[39], ammo[40], ammo[41], ammo[42], ammo[43], ammo[44], ammo[45], ammo[46] } )) Parte do load das armas: if getAccountData (currentAcc, "funmodev2-weapons") then local weaponData = fromJSON (getAccountData (currentAcc, "funmodev2-weapons")) -- Converte a string JSON em uma table. for i=1, 46 do -- Para cada ID de arma, faça: (seria do 0 ao 46, mas não precisa obter a mão do jogador) if weaponData[tostring(i)] then -- Se existe o ID "i" de arma na table, então: giveWeapon (source, i, weaponData[tostring(i)]) -- Os índices da table JSON sempre são em string. end end end
  24. O painel é. E como o sistema faz parte dele, então é também.
×
×
  • Create New...