Jump to content

n3wage

Members
  • Posts

    290
  • Joined

Everything posted by n3wage

  1. addEventHandler("onClientPlayerDamage", localPlayer, function(attacker, weapon, bodypart, loss) team = getPlayerTeam(attacker) if ( attacker and getElementType(attacker) == "player" and weapon == 41 and team and getTeamName(team) == "Vagos" ) then cancelEvent() if (not isTimer(pause)) then local health = getElementHealth(localPlayer) if (health < 99) then triggerServerEvent("Vagos:healing", localPlayer, attacker) pause = setTimer(function() end, 1000, 1) end end end end)
  2. Linha 12: -- Você usou: guiSetVisible(Vagosjob, false) -- O correto seria: guiSetVisible(vagosjob, false ) -- ( tudo com letra minuscula, igual vc definiu na linha 11 ) Linha 62: --Faltou um then na condição. if (attacker and getElementType(attacker) == "player" and weapon == 41 and team and getTeamName(team) == "Vagos") -- Correto: if (attacker and getElementType(attacker) == "player" and weapon == 41 and team and getTeamName(team) == "Vagos") then Linha 72: -- Faltou um end: end ) Linha 25 a 33: --Na linha 25 vc define vagosjob como o nome de uma função, depois na linha 28 e 29 tenta checar a visibilidade de 'vagosjob', mude o nome da função... vagosjob = guiMyCwindow(320,350,"ALLIANCE VAGOS") -- Linha 11 function vagosjob(hitElement) Linha 49: guiSetVisible(Vagosjob, false) -- Novamente vc tinha definido vagosjob tudo minusculo antes. guiSetVisible(vagosjob, false) Erro relacionado a função guiGetScreenSize não deu aqui, veja se seu script ta definido como client no meta.xml.
  3. Pode, você usa o parametro comando se quiser.
  4. Em momento nenhum player aparece definido no seu codigo, source tbm n (source eh mais para eventos, por exemplo no evento onVehicleEnter, source sera o veiculo que o player entrou, isso aparece em todas as paginas de todos os eventos). quando você adiciona um comando, a função definida no addCommandHandler recebe dois parâmetros function minhafuncao ( jogador, comando ) -- jogador (vc pode dar qualquer nome a variavel, player, thePlayer...): o jogador que digitou o comando, ele que vc devera usar nos outputchatbox por exemplo. -- comando: o comando digitado pelo player, por exemplo, você pode adicionar 2 addCommandHandler para a msm função depois saber qual comando o jogador digitou por esse parametro. outputChatBox ( "isso vai dar um erro ;-;", thePlayer ) -- errado, como usei jogador para definir quem digitou o comando isso n vai funcionar setElementPosition ( jogador, 0, 0, 10 ) -- correto end addCommandHandler ( "testar", minhafuncao ) Então, Como você usou thePlayer na função, deve usar thePlayer nos outputChatBox, ou então mudar a variavel da função, trocando thePlayer por player, dá na mesma coisa, Algumas pessoas definem source como o player que digitou o comando, isso confunde um pouco mas tambem pode ser usado.
  5. end só é usado para fechar uma function() ou um if ( elseif e else estão dentro do if, então n precisam de outro end ), Veja o exemplo: var = 0 function valorVar () if var == "oi" then -- tudo abaixo daqui estará dentro do if acima, entao elseif's e else n precisam de outro end print ( "oi" ) elseif var == "tchau" then print ( "tchau" ) else print ( "nem oi nem tchau, "..var ) -- tudo acima daqui n estará mais dentro do if end -- end para fechar o if e tudo que tiver dentro if 1 + 1 == 2 then -- aqui criamos outro if, que precisa ser fechado tbm, pois n esta dentro do outro if print ( "1+1 == 2" ) if 2 + 4 == 24 then -- aqui criamos outro if, como ele não é elseif nem else, precisa ser fechado print ( "conta totalmente errada" ) end -- fechando end -- fechando end -- end para fechar a função o problema no seu codigo é que vc em vez de digitar elseif digita else if, então vc cria outro if dentro do else, igual essa parte do meu exemplo: if 1 + 1 == 2 then print ( "1+1 == 2" ) if 2 + 4 == 24 then -- aqui criamos outro if, como ele não é elseif nem else, precisa ser fechado print ( "conta totalmente errada" ) end -- fechando end -- fechando sou ruim com explicações mas deve ter dado para entender.
  6. Não, O timer ja executa a função pra dar o dinheiro.
  7. Pode simplificar isso usando tabelas: Grupos = { -- { ACL, valor_minimo, valor_maximo }, { "Rank1", 50, 300 }, { "Rank2", 300, 600 }, { "Rank3", 600, 1000 }, { "Rank4", 1000, 1500 }, { "Rank5", 1500, 2000 } } setTimer( function() local foiPago = {} for _, player in ipairs ( getElementsByType ( "player" ) ) do for _, v in ipairs ( Grupos ) do if isObjectInACLGroup ("user."..getAccountName ( getPlayerAccount ( player ) ), aclGetGroup ( v[1] ) ) and not foiPago[player] then local quantidade = math.random ( v[2], v[3] ) givePlayerMoney ( player, quantidade ) outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) outputChatBox ( "** Seu rank atual é:#00FF00 "..v[1]:sub ( -1, -1 ).." **", player, 255, 255, 255, true ) outputChatBox ( "** Voce recebeu : #00FF00$"..quantidade.."#FFFFFF **", player, 255, 255, 255, true ) foiPago[player] = true end end if not foiPago[player] then -- se não foi pago ainda (n esta em nenhuma acl) local quantidade = math.random ( 1, 50 ) givePlayerMoney ( player, quantidade ) outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) outputChatBox ( "** Seu rank atual é:#00FF00 0 **", player, 255, 255, 255, true ) outputChatBox ( "** Voce recebeu : #00FF00$"..quantidade.."#FFFFFF **", player, 255, 255, 255, true ) end end foiPago = {} end ,60000*60,0) Não testei o codigo mais deve tar funcionando
  8. Isso é porque as funções dx devem ficar em um evento render para serem mostradas constantemente, o codigo do malignos deve funcionar.
  9. Mostre o comando/sistema de ligar o motor.
  10. usar bindKey de novo, assim: addEventHandler ( "onPlayerJoin", root, function() bindKey ( source, "m", "down", anim ) end )
  11. ficou um pouco confuso meu codigo , tente assim: status = {} function anim ( player ) if not status[player] then setPedAnimation( player, "casino", "manwinb" ) else setPedAnimation ( player, "", "" ) end status[player] = not status[player] end for _, v in pairs ( getElementsByType "player" ) do bindKey ( v, "m", "down", anim ) end ( voce vai ter que 'bindar' a key dnv quando o player entrar no servidor (onPlayerJoin) )
  12. Voce quer que quem crie o carro pelo f1 e n seja do bope seja ejetado ?: addEventHandler ( "onVehicleEnter", root, function ( player ) if getElementModel ( source ) == 598 then if not isObjectInACLGroup ("user."..getAccountName ( getPlayerAccount ( player ) ), aclGetGroup ( "BOPE" ) ) then removePedFromVehicle( player ); outputChatBox("#000000[#FF0000ERRO#000000] #FF0000Somente a BOPE pode entrar neste veículo.",player, 0, 0, 0, true); end end end )
  13. --Funções: bindKey setPedAnimation --base: status = {} for _, v in pairs ( getElementsByType "player" ) do bindKey ( v, "m", "down", function(player) setPedAnimation( player, status[player] and "ped" or "", status[player] and "WOMAN_walknorm" or "") status[player] = not status[player] end ) end
  14. Não entendi muito bem qual é o problema, mais tente isso: addEventHandler ( "onVehicleStartEnter", root, function ( player ) if getElementModel ( source ) == 598 then if not isObjectInACLGroup ("user."..getAccountName ( getPlayerAccount ( thePlayer ) ), aclGetGroup ( "BOPE" ) ) then cancelEvent() outputChatBox("#000000[#FF0000ERRO#000000] #FF0000Somente a BOPE pode entrar neste veículo.",player, 0, 0, 0, true) end end end )
  15. O problema é que nessa linha: function kitarmas ( source ) Você define o jogador que digitou o comando como source e na parte de mudar a skin você usou thePlayer (variavel que não foi definida), apenas mude isso: setElementData(thePlayer,"invincible",false) setElementModel(thePlayer, 283) --Para: setElementData(source,"invincible",false) setElementModel(source, 283)
  16. Acho que tem uma configuração no freeroam para controlar isso, maxidletime se n me engano.
  17. Como a função isObjectInACLGroup é usada apenas no lado do servidor vc tera que usar element datas (modo inseguro) ou um triggerClientEvent, assim: -- Script type="server" local function isVip(thePlayer) local accName = getAccountName(getPlayerAccount (thePlayer)) return isObjectInACLGroup("user."..accName, aclGetGroup( "Vip" )) end function abrirJanela (player) if isVip ( player ) then triggerClientEvent ( player, "showVIPGUI", player ) else outputChatBox ( "Apenas vips podem usar o painel !", player, 255, 0, 0 ) end end addCommandHandler ( "vehmanager", abrirJanela, false, false ) -- Script type="client" function vehGUI() vehicleGUI = guiCreateWindow(477, 384, 301, 194, " || VEICULO ||", false) guiWindowSetSizable(vehicleGUI, false) vehMemo = guiCreateMemo(9, 18, 157, 133, "Obrigado por ser VIP, voce pode\n\n- Ligar/Desligar Luzes\n- Ligar/Desligar Motor\n- Trancar/Destrancar Veiculo", false, vehicleGUI) guiMemoSetReadOnly(vehMemo, true) vehLights = guiCreateButton(178, 30, 107, 26, "Luzes", false, vehicleGUI) vehEngine = guiCreateButton(178, 70, 107, 26, "Motor", false, vehicleGUI) vehLock = guiCreateButton(178, 115, 107, 26, "Tranca", false, vehicleGUI) vehClose = guiCreateButton(12, 158, 71, 26, "Sair", false, vehicleGUI) showCursor ( true ) end addEvent ( "showVIPGUI", true ) addEventHandler ( "showVIPGUI", root, vehGUI ) Veja isso se quiser saber porque n usar element data: Script security
  18. troque: fixVehicle (theVehicle) por: setTimer( fixVehicle, 10000, 1, theVehicle )
  19. tente: peco = 30000 -- peco da garagem (30 mil) -- Codigo para criar a gui... function criargui () botao = guiCreateButton(0.43, 0.47, 0.06, 0.05, "comprar", true) end addEventHandler ( "onClientGUIClick", root, function () if botao and isElement ( botao ) and source == botao then if ( getPlayerMoney ( ) >= peco ) then triggerServerEvent ( "garage:onBuy", localPlayer, peco ); destroyElement ( botao ); else outputChatBox ( "Você não tem dinheiro para comprar isso ($"..peco..")", 255, 0, 0 ); end end end ) marker = createMarker(2505.5,-1690,13.60000038147, "corona", 2, 108,159,95,108) --- marker entrar function teleport(player) -- Peguei essa função do seu post.. if getElementType(player)=="player" then if getElementData ( localPlayer, "comprouGaragem" ) then if isPedInVehicle ( player ) then local vehicle = getPedOccupiedVehicle ( player ) setElementPosition(vehicle,2496.6999511719,-1667.9000244141,7566.5) -- onde ele ira entrar setElementFrozen(vehicle, true) setTimer(setElementFrozen, 1000, 1, vehicle, false) end setElementPosition (player, 2496.6999511719,-1667.9000244141,7566.5) -- onde ele ira entrar else -- caso contrario criar a janela pedindo para comprar.. outputChatBox ( "Você Precisa Comprar essa garagem para entrar nela !", 255, 0, 0 ) criargui() end end end addEventHandler("onClientMarkerHit", marker, teleport) ----------------------------------------------- markera = createMarker(2493.3000488281,-1667.5999755859,7566.5, "corona", 2, 108,159,95,255) function teleport2(player) if getElementType(player)=="player" then if getElementData ( localPlayer, "comprouGaragem" ) then if isPedInVehicle ( player ) then local vehicle = getPedOccupiedVehicle ( player ) setElementPosition(vehicle,2504.8000488281,-1685.6999511719,13.5) setElementFrozen(vehicle, true) setTimer(setElementFrozen, 1000, 1, vehicle, false) end setElementPosition (player, 2504.8000488281,-1685.6999511719,13.5) else -- caso contrario criar a janela pedindo para comprar.. outputChatBox ( "Você Precisa Comprar essa garagem para entrar nela !", 255, 0, 0 ) criargui() end end end addEventHandler("onClientMarkerHit", markera, teleport2)
  20. O objetivo não era funcionar (ficar sem erros), Te dei uma base para vc entender como fazer o script, adapte o codigo para suas necessidades, Veja as funções que eu usei e suas respectivas paginas na wiki. @edit Apenas adicione um if nessa parte: function teleport(player) if getElementType(player)=="player" then local vehicle=getPedOccupiedVehicle(player) if source == marker then setElementPosition(vehicle,2496.6999511719,-1667.9000244141,7566.5) -- onde ele ira entrar setElementFrozen(vehicle, true) setTimer(setElementFrozen, 1000, 1, vehicle, false) setElementPosition (player, 2496.6999511719,-1667.9000244141,7566.5) -- onde ele ira entrar else -- caso contrario criar a janela pedindo para comprar.. outputChatBox ( "Você Precisa Comprar essa garagem para entrar nela !", 255, 0, 0 ) criargui() end end end addEventHandler("onClientMarkerHit", getRootElement(), teleport) Dessa forma: if getElementData ( localPlayer, "comprouGaragem" ) then No lugar de: if source == marker then
  21. Base: -- Tente entender o codigo, sou ruim com explicações ;-; --------- Client side: preço = 30000 -- Preço da garagem (30 mil) -- Codigo para criar a gui... function criargui () botao = guiCreateButton( 0, 0, 100, 100, "Comprar!", true ); end addEventHandler ( "onClientGUIClick", root, function (x) if botao and isElement ( botao ) and source == botao then if ( getPlayerMoney ( ) >= preço ) then triggerServerEvent ( "garage:onBuy", localPlayer, preço ); destroyElement ( botao ); else outputChatBox ( "Você não tem dinheiro para comprar isso ($"..preço..")", 255, 0, 0 ); end end end ) function teleport(player) -- Peguei essa função do seu post.. if getElementType(player)=="player" then if source == marker then if getElementData ( localPlayer, "comprouGaragem" ) then -- se o jogador tiver a garagem comprada local vehicle = getPedOccupiedVehicle(player) setElementPosition(vehicle,x,y,z) -- onde ele ira entrar setElementFrozen(vehicle, true) setTimer(setElementFrozen, 1000, 1, vehicle, false) setElementPosition (player, x,y,z) else -- caso contrario criar a janela pedindo para comprar.. outputChatBox ( "Você Precisa Comprar essa garagem para entrar nela !", 255, 0, 0 ) criargui() end end end end addEventHandler("onClientMarkerHit", getRootElement(), teleport) --------- Server side: function onBuyGarage ( preço ) if not isGuestAccount ( getPlayerAccount ( client ) ) then -- checar se o jogador esta logado takePlayerMoney ( client, preço ); setAccountData ( getPlayerAccount ( client ), "comprouGaragem", true ); setElementData ( client, "comprouGaragem", true ); else outputChatBox ( "Voce precisa estar logado para comprar uma garagem !", client, 255, 0, 0 ); end end addEvent ( "garage:onBuy", true ) addEventHandler ( "garage:onBuy", root, onBuyGarage ) addEventHandler ( "onPlayerLogin", root, function ( x ) if getAccountData ( source, "comprouGaragem" ) == true then setElementData ( client, "comprouGaragem", true ); end end )
  22. Veja essa parte rapaz, Nela que o comando é 'adicionado': addCommandHandler ( Command, -- Adding The Command Handler function ( player, cmd ) if hasObjectPermissionTo ( player, "function.banPlayer" ) then triggerClientEvent(player,"jailShow",player) else outputChatBox(" Apenas Pm's Podem Usar Esse Comando ",player,255,0,0) end end ) Agora temos de saber se os policiais são um grupo na ACL ou uma gang (voce deve saber disso, né? '-'): --troque esta parte: if hasObjectPermissionTo ( player, "function.banPlayer" ) then --por: --se for um grupo na acl: if isObjectInACLGroup ("user."..getAccountName ( getPlayerAccount ( player ) ), aclGetGroup ( "POLICIAS (TROQUE AQUI PELO NOME DA ACL)" ) ) then --se for uma gang... if getPlayerTeam ( player ) and getTeamName ( getPlayerTeam ( player ) ) == "Policias (troque pelo nome da gang..)" then Enfim recomendo vc ler a "Introdução ao Scripting" para tentar resolver suas futuras duvidas sem o auxilio de ninguem https://wiki.multitheftauto.com/index.ph ... _Scripting
  23. só faltou verificar se a skin é valida. function SetSkin ( thePlayer, cmd, id ) if ( id and tonumber ( id ) ) then id = tonumber(id); idValido = false; for _, v in ipairs ( getValidPedModels () ) do if ( v == id ) then idValido = true; break; end end return idValido and setElementModel ( thePlayer, id ) or outputChatBox ( "ID Invalido.", thePlayer, 255, 0, 0 ); else outputChatBox ( "Use: /"..cmd.." [sKINID]", thePlayer, 255, 0, 0 ); end end addCommandHandler ( "ss", SetSkin, false, false ); (script parecido com o exemplo da função getValidPedModels() )
  24. Acho que é desnecessário o uso de um timer, prefiro minha solução
×
×
  • Create New...