-
Posts
3,992 -
Joined
-
Last visited
-
Days Won
183
Everything posted by Lord Henry
-
Nesse caso ele estava entrando no else pois getPedOccupiedVehicle não retorna true se existir um veículo, ele retorna o próprio veículo. Logo aquela primeira condição sempre seria false.
-
Tente assim: function DeltaSCRFix () if getPedOccupiedVehicle(localPlayer) then outputChatBox ("╔═════════════════════════════════════════════════╗", 200, 50, 0) outputChatBox ("ERRO: #FFFFFFVocê usou seu Kit de Reparo com Sucesso", 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", 200, 50, 0) else outputChatBox ("╔═════════════════════════════════════════════════╗", 200, 50, 0) outputChatBox ("ERRO: #FFFFFFVocê precisa estar em um veículo para usar o Seguro", 200, 50, 0, true) outputChatBox ("╚═════════════════════════════════════════════════╝", 200, 50, 0) end end addCommandHandler ("seguro", DeltaSCRFix)
-
Nunca se usa localPlayer como parâmetro de função. Ele é uma variável nativa do client.
-
[DUVIDA]Como posso criar um /lootear?
Lord Henry replied to rOckzinhoMTA's topic in Programação em Lua
Existe um resource nativo no MTA que faz o player "dropar" os itens ao morrer chamado "deathpickups". E dai os itens ficam com os pickups no chão e o player que passar por ali pode pegar. Mas se vc quer mesmo criar um próprio, que não seja com pickups. Vc vai precisar de: onPlayerWasted addCommandHandler getPlayerMoney setPlayerMoney getPedWeapon giveWeapon Se você for usar um painel pra ver os itens do jogador: guiCreateWindow guiCreateGridList guiGridListAddColumn guiGridListAddRow guiCreateButton guiGridListGetSelectedItem guiGridListGetItemText onClientGUIClick Se você for mostrar os itens do jogador no chat: outputChatBox- 1 reply
-
- 1
-
-
Caso queira saber mais sobre operadores relacionais, leia na documentação LUA em português: http://www.lua.org/manual/5.1/pt/manual.html#2.5.2
-
THE BEST ROLEPLAY BRAZIL - [100% RPG]
Lord Henry replied to Emerson santos1718's topic in Servidores para jogar
Prosseguindo com o off-post... Não considero minha mensagem como backseat moderation pois eu apenas mencionei como ter uma conduta que considero melhor nesses casos. Em nenhum momento eu falei que EU ia punir alguém ou que tal conduta é contra as regras. Considero mais uma sugestão de conduta do que uma repreensão. Infelizmente isso varia de acordo com a interpretação de quem leu. Se dar sugestões de conduta é algo que só pode ser feito pela moderação, dai peço desculpas. Além disso, por não haver violação de regras, considero inválido denunciar a mensagem para alguém da moderação e também não acho grave o suficiente para tal ação. No entanto eu optei pela sugestão pois o uso excessivo do "Quote" é muito comum no fórum e incomoda bastante quando a mensagem repetida é muito grande, ocasionando Spam. -
version 1.6 How to use a function that only exists in the future?
Lord Henry posted a topic in Scripting
I was trying to use the function getTrainTrack, but this function is only available from version 1.6 onwards, but actually we are on version 1.5.6 and this function still doesn't exist. I read the build information and this function was created in 2015. Why is it not available? If the function was removed, I think the wiki page should advise this. -
Eu fiz algo parecido anexando um createColSphere no trem. Dai quando o vagão colidir nesse colShape, anexa nele.
-
THE BEST ROLEPLAY BRAZIL - [100% RPG]
Lord Henry replied to Emerson santos1718's topic in Servidores para jogar
@gustavorn não precisa citar o texto do autor do post se só tem a sua resposta. -
Sim. Vai interferir.
-
Dai a parte de desanexar é com você.
-
function aclpm (thePlayer) if thePlayer and getElementType (thePlayer) == "player" then if isObjectInACLGroup ("user."..getAccountName (getPlayerAccount (thePlayer)), aclGetGroup ("Console")) then setElementData (thePlayer, "Venda:Police.Job", true) setAccountData (getPlayerAccount (thePlayer), "Venda:Police.Job", true) end end end @GodKraken Não use OOP se você não tem conhecimento avançado o suficiente.
-
theTruck = createVehicle (578, -2258, 535, 36) -- Cria o caminhão. -- O carro é criado por qualquer um, pelo painel F1 ou Admin. addCommandHandler ("guinchar", function (thePlayer, cmd) local veh = getPedOccupiedVehicle (thePlayer) -- veh = veículo onde o jogador que executou o comando está dentro. if veh then -- Se o jogador está em um veículo, então: (se não estiver, veh = false) local vx, vy, vz = getElementPosition (veh) -- coordenadas do veículo. local cx, cy, cz = getElementPosition (theTruck) -- coordenadas do caminhão. local dist = getDistanceBetweenPoints3D (vx, vy, vz, cx, cy, cz) -- dist = distância entre o veículo que o jogador está dentro e o caminhão. if dist <= 10 then -- Se a distância entre eles for 20 ou menor, então: local attachs = getAttachedElements (theTruck) -- attachs é uma table com todos os elementos anexados ao caminhão. Será uma tabela vazia se não tiver nada anexado nele. if attachs[1] then -- Se existe algo anexado no caminhão (tipo um carro), então: outputChatBox ("O caminhão já está em uso.", thePlayer, 255, 100, 0) else -- Se não existe nada anexado no caminhão, então: attachElements (veh, theTruck, 0, -2, 0.8) -- Anexa o veículo no caminhão, com offsets. outputChatBox ("Anexado com sucesso.", thePlayer, 0, 255, 0) end else -- Se a distância entre o carro e o caminhão for maior que 10, então: outputChatBox ("Seu veículo não está perto o suficiente do caminhão.", thePlayer, 255, 100, 0) end end end)
-
Blz, dai é mais fácil pra obter a posição dele. Não vai precisar nem de colShape.
-
E ele é único ou são vários? Quero dizer, ele está numa variável que pode ser acessada depois?
-
up.
-
AH TA. Vc não quer guinchar. Vc quer anexar o veículo em outro. Dai é possível sim. Eu já fiz algo parecido usando um createColSphere anexado no carro. Dai ao usar o comando, ele verifica se tem um caminhão com ID específico dentro do colShape. Se tiver, anexa o carro em cima desse caminhão. Mas não sei se este é o jeito mais otimizado de fazer isso. Uma pergunta: O caminhão é criado pelo script de guincho? Ou ele é criado pelos jogadores?
-
A função attachElementToElement é obsoleta e não se usa mais. Usa-se AttachElements em vez disso. E só pra avisar que não é possível guinchar veículos que estão ocupados.
-
Bloquear no cliente já serve. Dai não precisa usar table.
-
Criando uma table vazia e depois setando o timer com o jogador como índice. local timers = {} -- Dentro da função timers[thePlayer] = setTimer ()...
-
[AJUDA] setTimer bugando outputChatBox
Lord Henry replied to +[T]rakin's topic in Programação em Lua
@+[T]rakin Sobre o seu problema, isso acontece pois dentro do setTimer, o source deixa de existir. Para contornar esse problema, você deve declarar o source após o tempo do timer e usar um parâmetro de função no setTimer como novo "source". No caso, creio que o exemplo do nosso colega acima irá resolver. Caso você não tenha entendido, vou explicar a parte do setTimer. setTimer(function(p) -- (2) p = parâmetro de função do setTimer. outputChatBox("╔═════════════════════════════════════════════════╗", p, 0, 0, 0) -- (3) p = source. outputChatBox("[#cf2d2dFazenda Ilegal#000000] #afafafVocê Processou mais 1 Tijolo! #ffffffTotal: #cf2d2d"..TijoloDeMaconha.."#afafaf Tijolo de Maconha", p, 0, 0, 0, true) outputChatBox("╚═════════════════════════════════════════════════╝", p, 0, 0, 0) -- (4) Removidos os HEX codes pois você não precisa usá-los se o texto todo tem somente 1 cor. end, 5000, 1, source) -- (1) parâmetro de função do setTimer = source. -
[AJUDA] setTimer bugando outputChatBox
Lord Henry replied to +[T]rakin's topic in Programação em Lua
@MainSCR Não precisa citar a mensagem do autor do post se só tem a sua resposta no tópico. Use o "quote" com bom senso. -
Seu triggerServerEvent está errado. Nem na wiki ele faz assim. Da onde vc tirou que o primeiro argumento é um elemento root? triggerServerEvent ( string event, element theElement, [arguments...] ) Além disso, você não passou nenhum parâmetro de player pelo triggerServerEvent. Isso significa que no server o parâmetro de função thePlayer não existe na função verifyACL. Troque seu trigger no client por isso: triggerServerEvent("DeltaSCR:ACL", localPlayer, guiGetText(editDenuncia), guiGetText(editID)) E lá na função server-side, troque a função inteira por essa: function verifyACL (edit1, edit2) -- Parâmetros passados no trigger. local players = getElementsByType ("player") for _, thePlayer in ipairs (players) do local account = getAccountName (getPlayerAccount(thePlayer)) if isObjectInACLGroup ("user."..account, aclGetGroup ("ComandosPolicia")) then -- Para cada jogador que está na ACL Group "ComandosPolicia", faça: outputChatBox ("Denúncia de furto em: "..edit1..". ID: "..edit2, thePlayer) end end end addEvent ("DeltaSCR:ACL", true) addEventHandler ("DeltaSCR:ACL", getRootElement(), verifyACL)
-
Da próxima vez, poste na seção Programação em Lua. E não exagere no negrito. Veja as regras neste tópico: Sobre o seu problema. A sua linha 4 está com lógica errada. Substitua ela por isso: if lvls and lvls >= 20 then
-
triggerServerEvent triggerClientEvent