Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,992
  • Joined

  • Last visited

  • Days Won

    183

Everything posted by Lord Henry

  1. Use sver no Client Console (F8) e me diga o que aparece. (no server da host)
  2. Vc deve entrar em contato com eles então. Pra eles atualizarem a versão do MTA Server instalado lá.
  3. Como eu disse, é problema de configuração do seu servidor, não importa se ele tem mods ou não. Formatar servidor? Que eu saiba, reinstalar o MTA não muda as configurações do seu servidor local.
  4. Problema de configuração do seu servidor, não é problema do resource.
  5. Creio que vc deveria postar isso na seção de Programação em Lua.
  6. Ok, lá naquela linha 24, substitua isso: setElementData( player, 'mrk_in', i - 1 ); Por isso: if isElement (player) then setElementData( player, 'mrk_in', i - 1 ); end;
  7. Cadê a função getPlayerByHouseID?
  8. Ta ae: dxDrawRectangle (screenW * 0.4319, screenH * 0.0898, screenW * 0.1464, screenH * 0.0195, tocolor(0, 0, 0, 39), false) dxDrawRectangle (screenW * 0.4319, screenH * 0.0898, screenW * 0.1464 * (conta1/100), screenH * 0.0195, tocolor(251, 165, 0, 254), false) -- retângulo que varia de acordo com o valor de conta1 dxDrawText (conta1, screenW * 0.4319, screenH * 0.0898, screenW * 0.5783, screenH * 0.1093, tocolor(0, 255, 0, 255), 1, 1, "default", "center", "center") Botei esse drawText só pra testar o valor de conta1.
  9. Não é possível. Você não pode ter 2 armas diferentes no mesmo slot. Cada slot só suporta 1 arma. Mais detalhes no Weapons Edit: talvez seja possível através de gambiarras, o que não é recomendável
  10. O erro na verdade está na sua linha 23, onde player = false
  11. @#DeltaSCR Vc quis dizer server-side
  12. @Gabriel63495 Use este botão em vez de colar código direto no texto.
  13. Isso não faz sentido! Aquele terceiro print faz exatamente a mesma coisa que no seu script, ele pega a vida da carga e mostra no debug. Não tem como dar erro na sua comparação por valor booleano. Edit: NOOSSAAA! Descobri! No seu script vc fez assim: if not getElementHealth( Carga_Disel ) <= 350 then -- Se (não número) é menor ou igual a 350, então: -- QUE É O MESMO QUE: Se (false) é menor ou igual a 350, então: ERRO -- Mas vc quis dizer: if not (getElementHealth (Carga_Disel) <= 350) then -- Se (vida da carga NÃO É menor ou igual a 350), então: -- Que seguindo uma lógica mais otimizada de acordo com as boas práticas de programação, pode ser escrita como: if (getElementHealth (Carga_Disel) > 350) then -- Se (vida da carga é maior que 350), então: Faça assim: if getElementHealth (Carga_Disel) > 350 then
  14. Prefiro o Discord Oficial do MTA e ir na sala Português. https://discord.com/invite/mtasa
  15. Hum... Parece ser um elemento mesmo. Não era pra gerar erro. Troque a linha do print por esses: print ("É elemento: "..tostring(isElement (Carga_Disel))) print ("Tipo de elemento: "..tostring(getElementType (Carga_Disel))) print ("Vida do elemento: "..tostring(getElementHealth (Carga_Disel)))
  16. O T é um chat global, não local. A não ser que vc tenha um script que altere isso. Nesse caso, delete o script de chat modificado. Se estiver usando o chat global nativo do MTA, faça como já foi mencionado pelo nosso colega @Jonas^
  17. Antes da linha if not getElementHealth( Carga_Disel ) <= 350 then Coloque isso e nos diga o que aparece. print ("Carga_Disel: "..tostring(Carga_Disel))
  18. Faça os DX com um tamanho fixo. Depois pegue a resolução do jogador com guiGetScreenSize e subtraia pelo tamanho fixo do DX.
  19. ---------------------------- SALVAR function onPlayerQuitOrResStop (prevAcc, _) if eventName == "onResourceStop" then for i, player in ipairs(getElementsByType("player")) do savePlayerData (player) end elseif eventName == "onPlayerQuit" then savePlayerData (source) elseif eventName == "onPlayerLogout" then -- Neste caso, só é possível salvar na conta que o jogador estava logado por meio do parâmetro de função. Se usar getPlayerAccount agora, vai retornar conta Guest. savePlayerData (source, prevAcc) end end addEventHandler ("onResourceStop", resourceRoot, onPlayerQuitOrResStop) addEventHandler ("onPlayerQuit", getRootElement(), onPlayerQuitOrResStop) addEventHandler ("onPlayerLogout", getRootElement(), onPlayerQuitOrResStop) function loadMyData (_, currAcc) if eventName == "onResourceStart" then -- Foi esperto usar isso para aproveitar a mesma função para eventos diferentes. for i, player in ipairs(getElementsByType("player")) do loadPlayerData (player) end elseif eventName == "onPlayerLogin" then loadPlayerData (source, currAcc) end end addEventHandler ("onResourceStart", resourceRoot, loadMyData) -- Não se usa nome de função igual nome de evento, por isso troquei. addEventHandler ("onPlayerLogin", getRootElement(), loadMyData) -- Recomenda-se colocar os eventos logo após as funções que eles vão ativar, para facilitar a leitura. function savePlayerData (p, acc) local playeraccount = false -- Cria a variável local. if acc then playeraccount = acc -- playerAccount = conta que o jogador ESTAVA logado. Esta variável ainda é local, aqui apenas foi atribuido valor a ela. else playeraccount = getPlayerAccount (p) end if (playeraccount) and not isGuestAccount (playeraccount) then --local trabalhotr = playerTraficante[p] or "n/a" local ax = playerAx[p] local coca = playerCoca[p] local bagulho = playerBagulho[p] local IngAx1 = playerIngAx1[p] local IngAx2 = playerIngAx2 [p] local IngCoca1 = playerIngCoca1 [p] local IngCoca2 = playerIngCoca2 [p] local IngCoca3 = playerIngCoca3 [p] local sementes = playerSementes [p] setAccountData (playeraccount, "droga.ax", ax) setAccountData (playeraccount, "droga.coca", coca) setAccountData (playeraccount, "droga.maconha", bagulho) setAccountData (playeraccount, "droga.ingax1", IngAx1) setAccountData (playeraccount, "droga.ingax2", IngAx2) setAccountData (playeraccount, "droga.ingcoca1", IngCoca1) setAccountData (playeraccount, "droga.ingcoca2", IngCoca2) setAccountData (playeraccount, "droga.ingcoca3", IngCoca3) setAccountData (playeraccount, "droga.sementes", sementes) end end function loadPlayerData (p, acc) local playeraccount = false if acc then playeraccount = acc else playeraccount = getPlayerAccount (p) end if (playeraccount) and not isGuestAccount (playeraccount) then local ax = getAccountData (playeraccount, "droga.ax") -- Não precisa do 'or false' pois a função getAccountData já retornará false caso a data não exista. local coca = getAccountData (playeraccount, "droga.coca") local bagulho = getAccountData (playeraccount, "droga.maconha") local IngAx1 = getAccountData (playeraccount, "droga.ingax1") local IngAx2 = getAccountData (playeraccount, "droga.ingax2") local IngCoca1 = getAccountData (playeraccount, "droga.ingcoca1") local IngCoca2 = getAccountData (playeraccount, "droga.ingcoca2") local IngCoca3 = getAccountData (playeraccount, "droga.ingcoca3") local sementes = getAccountData (playeraccount, "droga.sementes") if (ax) then setElementData (p, "droga.ax", ax) end -- Passa todas as accountDatas para elementData (isso pesa bastante no servidor, tenha certeza do que está fazendo.) if (coca) then setElementData (p, "droga.coca", coca) end -- Está correto em manter datas parecidas com um índice separado pelo ponto. if (bagulho) then setElementData (p, "droga.maconha", bagulho) end if (IngAx1) then setElementData (p, "droga.ingax1", IngAx1) end if (IngAx2) then setElementData (p, "droga.ingax2", IngAx2) end if (IngCoca1) then setElementData (p, "droga.ingcoca1", IngCoca1) end if (IngCoca2) then setElementData (p, "droga.ingcoca2", IngCoca2) end if (IngCoca3) then setElementData (p, "droga.ingcoca3", IngCoca3) end if (sementes) then setElementData (p, "droga.sementes", sementes) end end end Não testado. Se tiver erros, mostre o /debugscript 3
  20. Depende muito da forma com que vc está tratando os dados. Vc apaga essa lista ao sair do baú? Ou é uma lista permanente? Eu usaria tables. Cada table iria salvar os itens de cada baú. Fica bem difícil opinar quando não se faz ideia alguma de como o sistema funciona.
×
×
  • Create New...