marcelofilipe Posted November 25, 2012 Share Posted November 25, 2012 Boas gente! Queria saber que funções utilizo para criar o seguinte script: Se o player morrer é banido x tempo.. Apenas quero as funções.. Obrigado. Link to comment
marcelofilipe Posted November 25, 2012 Author Share Posted November 25, 2012 Eu procurei por funções.. mas não sei se estou a fazer certo ou que funções me faltam.. Vou deixar aqui o código: function kick (thePed, KickedPlayer, reason) if (isPedDead (thePlayer)) then kickPlayer ( kicked, thePed, reason) end end addCommandHandler ( "kick", kick ) OBS: estou a usar função kick para testar antes do ban Obrigado. Link to comment
Stanley Sathler Posted November 26, 2012 Share Posted November 26, 2012 - Escreva a função que irá kickar o player. - Chame essa função usando o evento onPlayerWasted (addEventHandler()). Link to comment
marcelofilipe Posted November 26, 2012 Author Share Posted November 26, 2012 - Escreva a função que irá kickar o player.- Chame essa função usando o evento onPlayerWasted (addEventHandler()). Mas estou a usar corretamente se o player morrer a função "isPedDead" ? Queria saber o que está mal no código. Muito Obrigado! Link to comment
Anderl Posted November 26, 2012 Share Posted November 26, 2012 O código apenas não tem nada haver com o que você quer fazer e não faz o menor sentido porque você se limitou a copiar partes de outros códigos. Link to comment
DNL291 Posted November 26, 2012 Share Posted November 26, 2012 banPlayer Com o event: onPlayerWasted Na função banPlayer, use: banPlayer( source, banIP = true, banUsername = false, banSerial = false, nil, nil, segundos = 0 ) Link to comment
marcelofilipe Posted November 26, 2012 Author Share Posted November 26, 2012 Mas a função do player morto é esta "isPedDead" ? Se o Player morrer é banido.. escrevi o seguinte código: if(isPedDead (thePlayer)) then aqui ficaria a função do ban end A minha dúvida é: Se estou a usar a função correta se o Player morrer.. (isDeadPlayer) ? Obrigado pelas respostas.. Link to comment
marcelofilipe Posted November 26, 2012 Author Share Posted November 26, 2012 Boas outravez.. depois de entender mais algumas coisas.. cheguei a este código.. function Nomefuncao(thePlayer) morrer = isPedDead (thePlayer) if(morrer) then bannedPlayer (true, false, false, nil, nil, 600) end end addEventHandler ("onPlayerWasted", getRootElement(), Nomefuncao) Testei o código mas mesmo assim não funciona.. Gostaria realmente saber o que está errado nesse script.. Obrigado! Link to comment
Anderl Posted November 26, 2012 Share Posted November 26, 2012 É melhor você começar a estudar Lua primeiro. Link to comment
marcelofilipe Posted November 26, 2012 Author Share Posted November 26, 2012 É melhor você me ajudar.. Eu tou pedindo a função do Player morto.. Quero a função do Player se morrer.. As que conheço são: - isDeadPed - GetDeadPlayers É de algumas destas funções para criar o meu script ou é outra? Caso for outra agradecia que coloca-se o nome da função.. Obrigado! Link to comment
Anderl Posted November 26, 2012 Share Posted November 26, 2012 Já lhe falaram os eventos e funções necessárias acima. Se você não consegue entender como fazer, é porque não sabe nada sobre Lua. Link to comment
yMassai Posted November 27, 2012 Share Posted November 27, 2012 Não vamos fazer nada de graça, você tem algum interesse em aprender Lua? Sei que é bem difícil quando não se tem nenhuma noção básica mas veja que o DNL291 já lhe ajudou muito. ele se refere a função banPlayer e não bannedPlayer. banPlayer( source, banIP = true, banUsername = false, banSerial = false, nil, nil, segundos = 0 ) quando você for escrever algo sobre lua use a tag. [lua] [ /lua] porfavor evite fazer duplas postagens. Link to comment
marcelofilipe Posted November 27, 2012 Author Share Posted November 27, 2012 Mas o que queria realmente saber era a função do player morto.. Para buscar o player que morrer.. para depois escrever a função do ban.. PS: Eu em outros scripts feitos.. não vejo nenhum script com tag [lua].. vejo apenas funções e parâmetros (then, if , else). Eu tenho lógica de programação porque já programei em várias linguagens.. Poderia me dizer porque que devo aprender LUA? se nos scripts são apenas usados as funções do MTA? Obrigado Link to comment
Anderl Posted November 27, 2012 Share Posted November 27, 2012 Isso é só para rir, não? Um ficheiro não é mágico para escrever uma linha "isPedDead" e ele vai adivinhar o que você quer. MTA usa Lua e as funções todas estão inbutidas em Lua. Se você não sabe Lua, não pode fazer nada. Link to comment
marcelofilipe Posted November 27, 2012 Author Share Posted November 27, 2012 Script Resolvido.. Quero agradecer a todos que me ajudaram, principalmente ao DNL291! Podem fechar o tópico.. Link to comment
yMassai Posted November 28, 2012 Share Posted November 28, 2012 O tópico n deve ser fechado ele pode ser utilizado novamente por outros usuários do fórum. Intenda que há funções agindo em conjunto para facilitar o manuseio com a linguagem. Só me pareceu que você não tinha nenhum interesse em aprender e sim resolver um pequeno projeto. A proposito seja bem vindo e se precisar solicite nossa ajuda, eu ajudarei dentro do possível. Link to comment
marcelofilipe Posted November 28, 2012 Author Share Posted November 28, 2012 Ups.. Estou com um problema.. o tempo do ban do jogador.. valor 20 = valor do tempo do ban. Queria colocar por exemplo 20 segundos de BAN.. Testei o código assim.. funcionou tudo menos o tempo de ban.. O que está de errado? Requer alguma função? o código está assim: addEventHandler( "onPlayerWasted", root, function() banPlayer (source, true, nil, nil, "Foste Morto!" , [color=#FF0000]20[/color]) end ) Obrigado Link to comment
yMassai Posted November 28, 2012 Share Posted November 28, 2012 Não deveria ser assim? addEventHandler( "onPlayerWasted", root, function () banPlayer( source, true, false, false, nil, "Você Morreu!", 20) end ) Link to comment
marcelofilipe Posted November 29, 2012 Author Share Posted November 29, 2012 O tempo de ban continua a não funcionar.. O que pode estar errado? Link to comment
DNL291 Posted November 29, 2012 Share Posted November 29, 2012 Como Ninguem quis dizer, falta um argument na função. Mas outro problema, você quer que o tempo do Ban seja 20 segs. Então você deve usar o n° 20000, já que cada minuto corresponde a Mil (1000), então 1 min. é 60000. addEventHandler( "onPlayerWasted", root, function () banPlayer( source, true, false, false, nil, "Foste Morto!", 20000) end ) Link to comment
marcelofilipe Posted November 29, 2012 Author Share Posted November 29, 2012 Boas.. Coloquei para 1 minuto.. Então entro lá no jogo, morro e sou banido.. Depois tento lá entrar diz que estou banido (1min) pronto até aí está tudo bem.. Depois passado 1min. tento entrar, consigo entrar e faço o LOGIN.. Depois diz que estou banido.. tento outravez entrar e diz que estou banido 1min.. Ou seja, o ban está a repetir.. penso que falta alguma função.. Mais uma vez, obrigado pela resposta DNL291 Link to comment
yMassai Posted November 29, 2012 Share Posted November 29, 2012 Não seria melhor você apenas kikar o jogador? Link to comment
Cadu12 Posted November 29, 2012 Share Posted November 29, 2012 function onPlayerWasted() local ban = banPlayer ( source, false, false, true, nil, "Foste Morto!", 0 ) setTimer(function(ban) if (ban) then removeBan(ban) end end, 20000, 1, ban) end addEventHandler ( "onPlayerWasted", root, onPlayerWasted ) function onResourceStart() for i, v in ipairs(getBans()) do local reason = getBanReason(v) if (reason == "Foste Morto!") then removeBan(v) end end end addEventHandler ( "onResourceStart", resourceRoot, onResourceStart ) Link to comment
Anderl Posted November 29, 2012 Share Posted November 29, 2012 @Cadu12, that won't do the job, I guess. I think that what is happening is that the gamemode is killing the ped when he enters and it calls onPlayerWasted then. Link to comment
Cadu12 Posted November 29, 2012 Share Posted November 29, 2012 @Anderl: Você está falando que? Aqui em Português, mas tudo bem. I didn't tested what I did rewrite script. Link to comment
Recommended Posts