Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Isso mesmo, nesse caso a tabela deve ter a sua estrutura utilizando números nos índices pra funcionar. Você pode adicionar mais itens em cada categoria assim: tendaItens = { { {"M107",10}, {"arma",123}, {"arma",123} }, { {"M4A1 CCO",20}, {"arma",123}, {"arma",123} } } Não é obrigatório fazer desse jeito, mas vai ficar mais fácil. Se quiser usar uma string para o índice, como no código do 1º post, você pode fazer assim para obter uma categoria aleatória da tabela: local cats = { "first", "sec" } -- tabela com as categorias local categoria_aleatoria = tendaItens[ cats[ math.random(#cats) ] ] --[[ math.random(#cats) : Retorna um índice aleatório da tabela (nesse caso deve ser 1 ou 2) cats[ math.random(#cats) ] : É o mesmo que cats[1] ou cats[2], retorna uma das strings da tabela ]] Lembrando que a tabela dessa forma, sem criar a chave ou índice manualmente, é o mesmo que isto: tendaItens = { [1] = {"M107",10}, [2] = {"M4A1 CCO",20}, }
  2. Chegou a ver se o debug mostra algum erro? A tabela 'tendaItens' não tem índice numérico então a linha 20 do seu código não vai funcionar.
  3. addEventHandler "onClientRender" getElementHealth getTickCount -- vai ser útil se for mostrar a vida na tela, ou senão use uma variável
  4. Use Timestamp pra pegar o tempo quando cada jogador sair do server, grava os valores numa tabela. E use setTimer executando a cada 1 hora, por exemplo, dá um loop na tabela, comparando com o tempo Timestamp, se for maior que 10 dias, destrói o veículo do jogador (salvo na tabela) e remove o valor da tabela.
  5. Remova # antes de vehSpawns na linha 3.
  6. Try this: function setarDados_Entrar( _,acc ) local habl = getAccountData(acc, "hablt") local ficha = getAccountData(acc, "fichacriminal") setElementData(source, "hblt", habl) setElementData(source, "fich", ficha) end function setarDados_Iniciar() for i,p in pairs( getElementsByType("player") ) do local acc = getPlayerAccount(p) if not isGuestAccount(acc) then local habl = getAccountData(acc, "hablt") local ficha = getAccountData(acc, "fichacriminal") setElementData(p, "hblt", habl) setElementData(p, "fich", ficha) end end end function setarDados_Mudar( acc ) local p = getAccountPlayer( acc ) if p then local habl = getAccountData(acc, "hablt") local ficha = getAccountData(acc, "fichacriminal") setElementData(p, "hblt", habl) setElementData(p, "fich", ficha) end end addEventHandler("onPlayerLogin", root, setarDados_Entrar) addEventHandler("onResourceStart", resourceRoot, setarDados_Iniciar) addEventHandler("onAccountDataChange", root, setarDados_Mudar) Update the element-data always (and not the account data). Just update the account data when the player exits the server, the account and when the resource stops. So by doing this, you will no longer need the event "onAccountDataChange".
  7. O arquivo mtaserver.conf está com erro. Abra ele e tente corrigir, se não conseguir mostre ele aqui.
  8. Funciona pra qualquer coisa (dxDrawRectangle/dxDrawImage). Se você quer manter a proporção da interface independente da resolução, esse método é útil.
  9. Seu código está dando falha pra abrir no guieditor provavelmente por usar alguma coisa externa (não me lembro o que é exatamente). Mostre o seu código aqui.
  10. Baixe o MTADiag e execute-o. Se o MTADiag der falha na execução, instale o Visual C++ 2012 runtimes e baixe o vcredist_x86.exe. Vi alguns casos com esse mesmo erro que foi resolvido com esse procedimento. Leia este tópico com relação a ajuda com MTA:
  11. Já viu se o firewall ou anti vírus não está interferindo no funcionamento do MTA? Se isso não for o caso, tente reinstalando o MTA e siga todos os passos corretamente.
  12. DNL291

    Pickup

    Use resourceRoot instead of root and it should work.
  13. DNL291

    Pickup

    That's wrong. It should be this way: local pickupA = createPickup ( -2661.68, 627.43, 14.45, 3, 1239, 1000 ) local pickupB = createPickup ( -2657.33, 631.34, 14.45, 3, 1239, 1000 ) You can also do like this: local pickupA, pickupB = createPickup ( -2661.68, 627.43, 14.45, 3, 1239, 1000 ), createPickup ( -2657.33, 631.34, 14.45, 3, 1239, 1000 )
  14. local enableSkinForAccount = { [1] = true, [4] = true } addEventHandler( "onElementModelChange", root, function( oldModel ) if (getElementType(source) == "player") then if enableSkinForAccount[ tonumber(getElementData(source,"acc.accID")) ] ~= true then setElementModel( source, oldModel ) end end end ) Try it. EDIT: The code above will allow the player to use only one skin. If you just want to block some skins, try this: local enableSkinForAccount = { [1] = true, [4] = true } local disallowedSkins = { [303] = true, [50] = true } addEventHandler( "onElementModelChange", root, function( oldModel ) if (getElementType(source) == "player") then if disallowedSkins[ getElementModel(source) ] and enableSkinForAccount[ tonumber(getElementData(source,"acc.accID")) ] ~= true then setElementModel( source, oldModel ) end end end )
  15. Olha pela lista de resources do painel admin, pare um por um até que a mensagem pare de sair.
  16. Procure qual script está mostrando essa mensagem. Quanto à mensagem do nick, tenho certeza que é o resource joinquit.
  17. Deve ser o recurso 'deathmessages', desative ele pelo mtaserver.conf ou remova. Observação: Você postou na área errada, por favor, poste no sub-fórum Portuguese / Português > Programação em Lua.
  18. Try this: local disallowedVehs = { [435] = true, [441] = true, [449] = true } local vehicleSlotID = 0 addCommandHandler("makeveh",function(source,cmd, vehicle) if not vehicle then return outputChatBox("/"..cmd.." [ID/ VehicleName]",source) end local playerX, playerY, playerZ = getElementPosition(source) local vehID = tonumber(vehicle) and tonumber(vehicle) or getVehicleModelFromName(vehicle) if vehID and not disallowedVehs[ vehID ] then local createdVehicle = createVehicle(vehID,playerX,playerY,playerZ) vehicleSlotID = vehicleSlotID+1 warpPedIntoVehicle(source, createdVehicle) end end) Not tested, just add the blocked vehicles in the table.
  19. local screenW,screenH = guiGetScreenSize() local dxShowing = false function renderDX() dxDrawLine(94 - 1, 60 - 1, 94 - 1, 540, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(706, 60 - 1, 94 - 1, 60 - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(94 - 1, 540, 706, 540, tocolor(0, 0, 0, 255), 1, false) dxDrawLine(706, 540, 706, 60 - 1, tocolor(0, 0, 0, 255), 1, false) dxDrawRectangle((screenW - 612) / 2, (screenH - 480) / 2, 612, 480, tocolor(100, 173, 247, 200), false) dxDrawLine(94, 90, 705, 90, tocolor(255, 255, 255, 255), 1, true) dxDrawText("Zero Fear -Help Panel-", screenW * 0.4325, screenH * 0.1050, screenW * 0.9875, screenH * 0.1500, tocolor(0, 0, 0, 254), 1.00, "default-bold", "left", "center", false, false, true, false, false) dxDrawRectangle(screenW * 0.1175, screenH * 0.1583, screenW * 0.1762, screenH * 0.0500, tocolor(26, 16, 27, 150), true) dxDrawRectangle(screenW * 0.4063, screenH * 0.1583, screenW * 0.1762, screenH * 0.0500, tocolor(26, 16, 27, 150), true) dxDrawText("Roster", 378, 100, 513, 122, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, true, false, false) dxDrawLine((screenW * 0.4063) - 1, (screenH * 0.2083) - 1, (screenW * 0.4063) - 1, screenH * 0.5733, tocolor(0, 0, 0, 255), 1, true) dxDrawLine(screenW * 0.5825, (screenH * 0.2083) - 1, (screenW * 0.4063) - 1, (screenH * 0.2083) - 1, tocolor(0, 0, 0, 255), 1, true) dxDrawLine((screenW * 0.4063) - 1, screenH * 0.5733, screenW * 0.5825, screenH * 0.5733, tocolor(0, 0, 0, 255), 1, true) dxDrawLine(screenW * 0.5825, screenH * 0.5733, screenW * 0.5825, (screenH * 0.2083) - 1, tocolor(0, 0, 0, 255), 1, true) dxDrawRectangle(screenW * 0.4063, screenH * 0.2083, screenW * 0.1762, screenH * 0.3650, tocolor(26, 16, 27, 150), true) dxDrawText("Rules", 139, 103, 274, 125, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, true, false, false) dxDrawText("[Founders]\nAnonymous\nGamer\n[Admins]\nSmoke\nTeodora\n[Staff]\n Linux\n JayZer", screenW * 0.4500, screenH * 0.2083, screenW * 0.6288, screenH * 0.5733, tocolor(244, 180, 205, 251), 1.00, "default", "left", "top", false, true, true, false, false) dxDrawText("", 94, 128, 94, 129, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false) dxDrawText("-Don't camp\n-Don't Hack\n-Don't GK in Shooter ! (GK=Kick)\n-Don't use any nick of admins 'ZF'\n-Respect the admins.\n-Don't insult anyone.\n-Don't ask for admin rights, Go apply on forum, if you don't have any answre Just WAIT.\n-Don't Ask Admins to vote vor you .\n", screenW * 0.1175, screenH * 0.2150, screenW * 0.3975, screenH * 0.5733, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", true, true, true, false, false) dxDrawRectangle(screenW * 0.1113, screenH * 0.2083, screenW * 0.2825, screenH * 0.2683, tocolor(26, 16, 27, 150), true) dxDrawLine(94, 513, 705, 513, tocolor(255, 255, 255, 255), 1, true) dxDrawText("Roster", 378, 100, 513, 122, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, true, false, false) dxDrawRectangle(screenW * 0.6288, screenH * 0.1533, screenW * 0.1762, screenH * 0.0500, tocolor(26, 16, 27, 150), true) dxDrawLine((screenW * 0.5938) - 1, (screenH * 0.2100) - 1, (screenW * 0.5938) - 1, screenH * 0.8550, tocolor(0, 0, 0, 255), 1, true) dxDrawLine(screenW * 0.8688, (screenH * 0.2100) - 1, (screenW * 0.5938) - 1, (screenH * 0.2100) - 1, tocolor(0, 0, 0, 255), 1, true) dxDrawLine((screenW * 0.5938) - 1, screenH * 0.8550, screenW * 0.8688, screenH * 0.8550, tocolor(0, 0, 0, 255), 1, true) dxDrawLine(screenW * 0.8688, screenH * 0.8550, screenW * 0.8688, (screenH * 0.2100) - 1, tocolor(0, 0, 0, 255), 1, true) dxDrawRectangle(screenW * 0.5938, screenH * 0.2100, screenW * 0.2750, screenH * 0.6450, tocolor(26, 16, 27, 150), true) dxDrawText("FAQ", 557 + 1, 100 + 1, 654 + 1, 152 + 1, tocolor(0, 0, 0, 255), 1.00, "default-bold", "left", "top", false, false, true, false, false) dxDrawText("FAQ", 557, 100, 654, 152, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, true, false, false) dxDrawText("Q)What is the forum\nA)http://Zerofear.boards.net\nQ) is the teaming allowed?\nA) Yes,it is.\nQ) A admin kicked,muted,banned me !\nA) Sure,your rule break.if you see any abuse about admins/staff please report in game or on forum.\nQ) How can i invite players to my team ?\nA) tap : /team invite [playername]\nQ) I would like to join ZF staff ?\nA) Sure , Go see the forum (zerofear.boards.net)\nQ) How can i accept invite ?\nA) Tap : /team accept\nQ) How to decline invite ?\nA) Tap : /team decline\n", (screenW * 0.5950) + 1, (screenH * 0.2250) + 1, (screenW * 0.8700) + 1, (screenH * 0.8683) + 1, tocolor(0, 0, 0, 255), 1.00, "default", "left", "top", false, true, true, false, false) dxDrawRectangle(screenW * 0.1237, screenH * 0.5633, screenW * 0.1550, screenH * 0.0367, tocolor(26, 16, 27, 150), true) dxDrawRectangle(screenW * 0.1237, screenH * 0.6067, screenW * 0.4637, screenH * 0.2450, tocolor(26, 16, 27, 150), true) dxDrawText("Premuim", 138, 338, 273, 360, tocolor(255, 255, 255, 255), 1.00, "default-bold", "left", "top", false, false, true, false, false) dxDrawText("why to donate?\n1) get your rewards(money,vip skin)\n2)Get Premuim Panel(premuim cars,lights)\n3)Get many features as the vip wheels.\n4)Ask admin for the others features\n5)with 1$ you get 1 week vip features.\n6)ask admin if help needed", 101, 369, 460, 503, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, true, false, false) end bindKey("F7","down", function() dxShowing = not dxShowing showCursor( dxShowing ) if dxShowing then addEventHandler( "onClientRender",root, renderDX ) else removeEventHandler( "onClientRender",root, renderDX ) end end ) Try it.
  20. Tente: function tele (thePlayer) if isObjectInACLGroup( "user."..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( "Admin" ) ) then setElementPosition ( thePlayer, -1339, 52, 15 ) outputChatBox ('#000000║#ffffff✘ #FFD700Teleport#ffffff ✘#000000║: #ffffffVocê Foi Para O Aeroporto De SF #000000║#FFD700 /Sf #000000║', thePlayer, 255, 255, 255, true) end end addCommandHandler ( "sf", tele ) Sobre a segunda pergunta, use setPedStat. Dá uma olhada na página da Wiki, Ex: setPedStat( player, 77, 1000 ).
  21. It had an error at line 18, I looped the table the wrong way. I tested my code and now it works, try this: function saveWeapons( p, toAcc ) local weapons = {} for i=1,12 do weapons[i] = { getPedWeapon( p, i ), getPedTotalAmmo( p, i ) } end if toAcc then return setAccountData( getPlayerAccount(p), "playerWeapons", toJSON( weapons ) ) end setElementData( p, "playerWeapons", toJSON( weapons ), false ) end function loadWeapons( p, fromAcc ) if fromAcc then local weps = getAccountData( getPlayerAccount(p), "playerWeapons" ) if weps then return setElementData( p, "playerWeapons", weps, false ) end else local weps = getElementData( p, "playerWeapons" ) if weps then for i, v in ipairs( fromJSON(weps) ) do giveWeapon( p, v[1], v[2], true ) end end end end addEventHandler( "onPlayerWasted", root, function() saveWeapons( source ) end ) addEventHandler( "onPlayerQuit", root, function() saveWeapons( source, true ) end ) addEventHandler( "onPlayerLogin", root, function() loadWeapons( source, true ) end ) addEventHandler( "onPlayerSpawn", root, function() loadWeapons( source ) end ) Always remember to use /debugscript 3 when testing any script.
  22. Parâmetros do evento onPlayerQuit: [string] quitType, [string] reason, [element] responsibleElement E onPlayerWasted: [int] totalAmmo, [element] killer, [int] killerWeapon, [int] bodypart, [bool] stealth Tá aí o motivo de não funcionar nesses 2 - o primeiro parâmetro de ambos não é o jogador. Tire source do parâmetro e para o onVehicleExit você pode usar a variável predefinida 'eventName'.
  23. Sim, se encaixa mais nessa categoria. Ainda assim, é um sistema mais interessante e fica à escolha do desenvolvedor substituir pelo taxista comum, ou manter esses 2 tipos de taxista pra funcionar em conjunto. Enfim, vou evitar continuar com mensagens fora do assunto aqui, já que pelo visto o @[L]ost já resolveu o problema dele.
  24. Try this: function saveWeapons( p, toAcc ) local weapons = {} for i=1,12 do weapons[i] = { getPedWeapon( p, i ), getPedTotalAmmo( p, i ) } end if toAcc then return setAccountData( getPlayerAccount(p), "playerWeapons", toJSON( weapons ) ) end setElementData( p, "playerWeapons", toJSON( weapons ), false ) end function loadWeapons( p, fromAcc ) if fromAcc then local weps = getAccountData( getPlayerAccount(p), "playerWeapons" ) if weps then return setElementData( p, "playerWeapons", weps, false ) end else local weps = getElementData( p, "playerWeapons" ) if weps then for weapon, ammo in ipairs( fromJSON(weps) ) do giveWeapon( p, weapon, ammo, true ) end end end end addEventHandler( "onPlayerWasted", root, function() saveWeapons( source ) end ) addEventHandler( "onPlayerQuit", root, function() saveWeapons( source, true ) end ) addEventHandler( "onPlayerLogin", root, function() loadWeapons( source, true ) end ) addEventHandler( "onPlayerSpawn", root, function() loadWeapons( source ) end ) Edit: This is kind of controversial, actually nothing is working then lol.
  25. Uma ótima ideia integrar o taxista pra funcionar com jogadores. Eu tenho um trabalho de taxista que também funciona com peds por toda LS, com informações em DX que mostram ao jogador a cidade e distância do 'passageiro'. Pensei em adicionar o sistema pra jogadores também, mas só quando o celular do jogador tiver finalizado pra chamar o táxi por ele. Acho que usar muitos comandos no servidor já é ultrapassado e também muito simples. Se pensarmos bem sobre esses empregos, na verdade é melhor funcionando com jogadores por ter uma interação com outros jogadores e não individualmente, quero dizer, pode ter um sistema na qual o passageiro pode qualificar o taxista e portanto uma forma mais apurada de classificar bons taxistas de ruins, além de seguir mais a linha de 'vida real'.
×
×
  • Create New...