-
Posts
3,981 -
Joined
-
Last visited
-
Days Won
181
Everything posted by Lord Henry
-
Ajuda para criar um veiculo BOT [Assalto ao Carro Forte]
Lord Henry replied to Citryon25's topic in Programação em Lua
Por padrão não é compatível com veículo. Vc precisa reprogramar o slothbot pra funcionar. Na verdade ele é focado em NPCs para combate. Mas já vi usarem ele para criar trânsito de pedestres e veículos pelo mapa. -
Ajuda para criar um veiculo BOT [Assalto ao Carro Forte]
Lord Henry replied to Citryon25's topic in Programação em Lua
Para criar o NPC Bot, use Slothman/Slothbot. Não se esqueça que é necessário configurar um caminho de navegação para o Bot seguir. Resource: Slothbot -
Interessante, mas se o cara usar addCommandHandler ou BindKey para as mesmas funções, irá duplicar sim pois os dois resources usam o mesmo comando para ativar seus eventos. A saída seria o cara criar alguma condição em cada resource, que no fim das contas acaba não sendo o Ctrl+C e Ctrl+V que ele quer fazer.
-
Use isso para postar código. O exemplo que postei faz exatamente o que você pediu no post: O jogador que matar o outro receberá 6 níveis de procurado. Se você está querendo outra coisa, dai fica complicado.
-
Não. Os eventos vão duplicar e não vai dar certo. Tem que sempre mudar os nomes.
-
Por favor, utilize a ferramenta <> para postar scripts. Acho exagero colocar nível de procurado máximo logo de cara, mas é você quem sabe. function playerKilled (ammo, killer, weapon, bodypart) if killer then -- Se morreu por causa de alguém, então: if getElementType (killer) == "player" then -- Se quem matou for um jogador, então: setPlayerWantedLevel (killer, 6) -- O jogador que matou fica com nível 6 de procurado. elseif getElementType (killer) == "vehicle" then -- Se quem matou for um veículo, então: killer = getVehicleController (killer) -- Killer passa a ser quem está dirigindo o veículo que matou o jogador. if killer then -- Se existe alguém dirigindo o veículo, então: setPlayerWantedLevel (killer, 6) -- O motorista fica com nível 6 de procurado. end end end -- Se o jogador morreu por suicidio, nada acontece. end addEventHandler ("onPlayerWasted", getRootElement(), playerKilled) E seu script não faz sentido algum.
-
Deixe o /debugscript 3 ligado no servidor, ele mostra os erros e informações dos scripts pra você. Inclusive informa em qual linha do script houve erro. Se preferir tutorial em vídeo, eu tenho esse vídeo aqui bem detalhado sobre introdução aos resources.
-
Sim, mas não é só copiar e colar no seu script, vc precisa entender o que está acontecendo nele e colocar os nomes das funções e eventos corretamente. O meu script funciona no meu HUD com as funções dele. O seu HUD provavelmente está com outras funções e outros nomes.
-
O Hud inteiro é no client.lua.
-
Leia isso.
-
Não cara. Isso é client-side, nada de server.lua
-
Dai é com você amigo. Estude a Wiki.
-
Não entendi o que você disse. Mas meu HUD funciona assim: (client-side) local rootElement = getResourceRootElement(getThisResource()) function Start () -- Para de mostrar o HUD original e mostra este HUD. addEventHandler ("onClientRender", getRootElement(), Hud) setPlayerHudComponentVisible ("clock", false) setPlayerHudComponentVisible ("money", false) setPlayerHudComponentVisible ("health", false) setPlayerHudComponentVisible ("armour", false) setPlayerHudComponentVisible ("weapon", false) setPlayerHudComponentVisible ("ammo", false) setPlayerHudComponentVisible ("wanted", false) setPlayerHudComponentVisible ("breath", false) end addEventHandler ("onClientResourceStart", rootElement, Start) function Stop () -- Para de mostrar este HUD e mostra o HUD original. removeEventHandler ("onClientRender", getRootElement(), Hud) setPlayerHudComponentVisible ("clock", true) setPlayerHudComponentVisible ("money", true) setPlayerHudComponentVisible ("health", true) setPlayerHudComponentVisible ("armour", true) setPlayerHudComponentVisible ("weapon", true) setPlayerHudComponentVisible ("ammo", true) setPlayerHudComponentVisible ("wanted", true) setPlayerHudComponentVisible ("breath", true) end addEventHandler ("onClientResourceStop", rootElement, Stop) function Hud () -- (Todo o script aqui) end function hideHud () -- Função que mostra/oculta o HUD ao pressionar F11 ou F10. if isVisible then addEventHandler ("onClientRender", root, Hud) else removeEventHandler ("onClientRender", root, Hud) end isVisible = not isVisible end bindKey ("F11", "down", hideHud) bindKey ("F10", "down", hideHud)
-
O que acontece geralmente é o mapa do F11 que reativa o HUD original depois de ser ocultado. Só usar essa função de ocultar o HUD original ao pressionar o F11 tbm.
-
Você postou isso errado. Deveria ter postado aqui na área portuguesa do fórum em vez da área internacional. Se quiser postar lá tem que ser em inglês.
-
Está aqui: acl.xml Da próxima vez faça backup antes de fazer alterações. Espero ter ajudado.
-
Então amigo. Fica difícil ajudar se não tem nenhum erro. Use /debugscript 3 e tente logar pelo painel. Veja se gera algum erro e nos diga qual erro apresenta.
-
Você provavelmente está usando os mesmos nomes de eventos e funções. Quando vc clica no botão de um painel, chama o mesmo evento nos dois painéis, duplicando tudo. Troque todos os nomes dos eventos do segundo painel para diferenciá-lo do primeiro painel.
-
string.gsub Apagar string após caractere
Lord Henry replied to Lord Henry's topic in Programação em Lua
Obrigado. Fiz assim e funcionou como eu queria. addCommandHandler ("limpa", function (thePlayer, cmd, theText) if theText then outputChatBox (theText:sub (1, theText:find("]")), thePlayer) end end) Por curiosidade, e se eu quiser remover todo o texto que estiver fora dos [ ] ? Remover o que estiver antes do [ e depois do ] -
Uma micro-dúvida rápida galera, preciso apagar toda a string após certo caractere. Por exemplo: "[ABC12]Texto Qualquer" >>> "[ABC12]". No caso acima, deletar toda a string após o caractere "]" mas mantendo ele. Como proceder? Estou usando string.gsub
-
Então porque não optou pelo outputChatBox? Sabendo que triggerClientEvent exige maior processamento do servidor do que o outputChatBox. Enfim, se o código não mostra erro algum, fica complicado ajudar. Além disso, o código que você mostrou parece estar bastante incompleto. Outra coisa que percebi é que você não indexou sua table. E o principal motivo de você não estar conseguindo trocar de máscara é que você seta a data TRUE mas em momento algum seta FALSE.
-
Se não precisa da parte client-side, então pq vc usa triggerClientEvent?
-
Foi vc quem fez o código? Onde está a parte client-side? Mostra algum erro? Qual a dificuldade que vc está tendo?
-
Sim. Usando as seguintes funções: getTickCount - Fazer verificação de tempo. É melhor do que usar setTimer, pois o tempo ainda pode ser contado entre as sessões independente se for demorado ou não. AclGroupAddObject - Adicionar o jogador na ACL VIP. AclGroupRemoveObject - Remover o jogador da ACL VIP. IsObjectInACLGroup - Verificar se o jogador está ou não na ACL VIP. SetAccountData - Colocar o tempo restante do VIP na conta do jogador para salvar entre as sessões. GetAccountData - Receber o tempo restante do VIP da conta do jogador para saber se o VIP já acabou ou não. AddCommandHandler - Colocar os comandos que você quer que o jogador use, por exemplo /viptime GuiCreateWindow - Criar o painel para você gerenciar os VIPs. As demais funções dos outros elementos GUI também estão nesta página. Eventos: onPlayerQuit, onPlayerLogin, onPlayerLogout. Espero ter ajudado. Boa sorte.
- 1 reply
-
- 2
-
I think setVehicleHandling should affect the Vortex because it's a vehicle too. Well... We have a great idea here.