-
Posts
3,991 -
Joined
-
Last visited
-
Days Won
183
Everything posted by Lord Henry
-
Verifica o level do jogador com getElementData.
-
addCommandHandler - Ativa uma função por comando. setPedArmor - Seta um colete no jogador. Coloque isso dentro da função que será ativada pelo comando acima.
-
Obs: Ative as legendas em português.
-
Você precisará substituir um objeto original do jogo pelo objeto editado. use engineLoadTXD, engineImportTXD, engineLoadDFF e engineReplaceModel.
-
N. Vou dar um exemplo: function pegarGrana (thePlayer, cmd) if isGuestAccount (getPlayerAccount (thePlayer)) then return end -- Se o jogador está deslogado, então cancela essa função e nada acontece. local account = getPlayerAccount (thePlayer) -- 'account' recebe a conta que o jogador que executou o comando está logado. local agora = getRealTime().timestamp -- 'agora' recebe um número bem grande, que é a quantidade de segundos que se passaram desde 01/01/1970 local antes = getAccountData (account, "ultimaGrana") -- 'antes' recebe o que estava salvo na conta do jogador, se não existir essa data, recebe false. (sempre será uma string caso exista, mesmo se você salvar um número) if (antes) then -- Se existe uma data na conta, então: if ((agora - tonumber(antes)) > 86400) then -- Se a diferença de 'agora' e de 'antes' for maior que 86400 segundos (1 dia), então: setAccountData (account, "ultimaGrana", agora) -- Salva o 'agora' na conta do jogador. outputChatBox ("Você pegou o dinheiro. Poderá pegar novamente daqui a 24 horas.", thePlayer) givePlayerMoney (thePlayer, 10000) -- Dá o dinheiro pro jogador. else -- Se a diferença de 'agora' e de 'antes' não for maior que 86400 segundos, significa que não faz 24 horas que o dinheiro foi pego. Então: outputChatBox ("Você precisa esperar mais tempo para poder pegar o dinheiro.", thePlayer) end else -- Se não existe essa data na conta do jogador (ele nunca pegou a grana antes), então: setAccountData (account, "ultimaGrana", agora) -- Salva o 'agora' na conta do jogador. outputChatBox ("Você pegou o dinheiro. Poderá pegar novamente daqui a 24 horas.", thePlayer) givePlayerMoney (thePlayer, 10000) -- Dá o dinheiro pro jogador. end end addCommandHandler ("pegar", pegarGrana) -- Comando pra ativar essa função: /pegar
-
Não se usa source como parâmetro de função. function SalvarDadosLogout () local ObterGalao = getElementData (source, "galao") local conta = getPlayerAccount (source) setAccountData (conta, "galao", ObterGalao) end addEventHandler ("onPlayerQuit", root, SalvarDadosLogout) function DarDadosLogin (prevAcc, currAcc) local TemGalao = getAccountData (currAcc, "galao") setElementData (source, "galao", TemGalao) end addEventHandler ("onPlayerLogin", root, DarDadosLogin)
-
Não use setTimers para isso. Se o jogador reconectar no servidor, ele será outro elemento, logo o timer dele será perdido. Não é recomendável usar setTimer para grandes períodos de tempo, eles consomem muito processamento do servidor para se manterem ativos. Use o timestamp do getRealTime. Assim você será capaz de salvar o instante que o jogador pegou a grana pela última vez na conta dele, e quando ele tentar novamente, verificar se o momento salvo já faz mais do que 24 horas passadas.
-
Os parâmetros de função do evento onPlayerJoin não são esses. Preste atenção na wiki.
-
Assim nunca vai dar certo. Você está usando funções client-side e server-side no mesmo script.
-
Edita o modelo em um programa de modelagem 3D.
-
E aí? Já testou?
-
setElementInterior - Coloca um elemento (no caso jogador) em um interior. Funciona tanto server-side quanto client-side. onMarkerHit - Evento que ativa uma função quando alguém colide num marker. Somente server-side. onClientMarkerHit - Mesmo que o evento de cima, mas funciona somente client-side.
-
Ative o resource AirNew_MensagemDX
-
getPlayerMoney recebe um argumento do tipo player, e não uma string.
-
function darVIPOuro (theStaff, cmd, nick) if (nick) then -- Se foi informado o nick após o comando, então: local thePlayer = getPlayerFromName (nick) -- Recebe o jogador que possui esse nick. if (thePlayer) then -- Se existe um jogador com esse nick, então: local accName = getAccountName (getPlayerAccount (thePlayer)) -- Recebe o login da conta desse jogador. if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (theStaff)), aclGetGroup ("Admin")) then -- Se o jogador que executou o comando estiver na ACL Group 'Admin', então: if (aclGroupAddObject (aclGetGroup ("Ouro"), "user."..accName)) then -- Se o login do jogador foi adicionado corretamente na ACL Group 'Ouro', então: outputChatBox ("O cidadão '"..nick.."' foi adicionado no grupo VIP Ouro com sucesso!", theStaff) -- Manda isso pro jogador que executou o comando. else -- Se não foi possível adicionar o login do jogador ao grupo, então: outputChatBox ("Erro ao adicionar o cidadão '"..nick.."' ao grupo VIP Ouro. Verifique se o grupo 'Ouro' existe e se este resource tem permissão Admin.", theStaff, 255, 150, 0) -- Manda isso pro jogador que executou o comando. end else -- Se o jogador que executou o comando não estiver na ACL Group 'Admin', então: outputChatBox ("Acesso negado a este comando.", theStaff, 255, 150, 0) -- Manda isso pro jogador que executou o comando. end else -- Se não existe nenhum jogador com o nick exatamente igual ao informado no comando, então: outputChatBox ("Nenhum jogador com esse nick foi encontrado.", theStaff) -- Manda isso pro jogador que executou o comando. end else -- Se não foi declarado nada após o comando, então: outputChatBox ("Erro de sintaxe, use: /addVIPOuro <Nick>", theStaff) -- Manda isso pro jogador que executou o comando. end end addCommandHandler ("addVIPOuro", darVIPOuro) -- Troquei o comando pra facilitar.
-
Não. Você não pode declarar o marker na própria animação.
-
Esse seu código não faz sentido. Vai entrar em loop infinito. Uma vez que o evento "onTrailerAttach" será chamado sempre que attachTrailerToVehicle funcionar. Eu faria com onTrailerDetach, que reconectaria a carga ao caminhão sempre que ela desconectar. Impedindo que ela saia do caminhão. Mas não sei se resolveria o bug, pois o problema não é da carga desconectar no jogador, é apenas um bug de sincronização. O jogo está considerando a carga anexada, mas no cliente dos outros jogadores não está.
-
Errou na linha 19. Pra começar vc colocou 2 parâmetros, sendo que a função só usa 1. Além disso, os dois parâmetros estão errados. local dinheiro_do_jogador = getPlayerMoney (player_a_ser_revistado)
- 1 reply
-
- 1
-
-
[AJUDA]Desativar som dos tiros de fundo
Lord Henry replied to joao2235's topic in Programação em Lua
Mais fácil ele simplesmente criar um client.Lua, declarar no meta.xml do gamemode play e fazer o que tem que ser feito somente nesse client.Lua. -
Tem sim. setAccountData para salvar na conta e depois getAccountData para carregar os dados da conta ao logar novamente.