Jump to content

Ansu

Members
  • Posts

    8
  • Joined

  • Last visited

Everything posted by Ansu

  1. estudando um pouco mais descobrir que posso salvar tabela em uma função toJSON, e pegar ela com fromJSON, porem nao sei mexer nisso, tentei fazer isso, alguem sabe consertar este erro?
  2. Olá estou criando um sistema de inventario que está funcionando bem, player pega o item do lado do server, e faço um trigger evento para o lado do client, entao coloco ele em uma gridlist que pode ser aberta pelo player logicamente e ver seu inventario, o problema está quando ele sai do server, queria poder pegar o item da grid list, e salvar no setAccountData, entao quando player entrar, usar um getAccountData e transferir informações para o client, e do lado do client refazer o inventario dele! não sei se isso ta certo, porem eu acredito que isso seja a solução, por enquanto parte do codigo está assim! function SalvarInv() item1 = guiGridListGetItemText(coluna,1,1) item2 = guiGridListGetItemText(coluna,2,1) item3 = guiGridListGetItemText(coluna,3,1) item4 = guiGridListGetItemText(coluna,4,1)... ... item40 = guiGridListGetItemText(coluna,40,1) triggerServerEvent("SalvarInventario1",localPlayer) end addEventHandler("onClientPlayerQuit",getRootElement(),SalvarInv) tentei pegar os items da grid list e mandei para o server addEvent("SalvarInventario1",true) function saveAccountData(localPlayer) if isGuestAccount (localPlayer) then return end setAccountData(localPlayer,"Item1",item1) setAccountData(localPlayer,"Item2",item2)... ... setAccountData(localPlayer,"Item39",item39) setAccountData(localPlayer,"Item40",item40) end addEventHandler("SalvarInventario1",getRootElement(),saveAccountData) tentei isso, entao quando o player entrar pegar o elemento e mandar a informação para o client refazer sua gridlist, porem acredito que aqui esta o problema, pois fazendo alguns testes vi que nao esta conseguindo pegar os itens (talvez nem tenha salvado) function SetandoItem( _,localPlayer ) if isGuestAccount ( localPlayer ) then return end local accountData = getAccountData (localPlayer, "Item1") if (accountData) then item1 = getAccountData(localPlayer,"Item1") item2 =getAccountData(localPlayer,"Item2")... ... item38=getAccountData(localPlayer,"Item38") item39=getAccountData(localPlayer,"Item39") item40=getAccountData(localPlayer,"Item40") triggerClientEvent(localPlayer,"ItensCarregadosDataBase",localPlayer) else setElementData(source,"Mochila","Lancheira Escolar")--ele ta pulando para essa parte, fiz o teste com a linha de baixo setElementData(source,"Tamanho",10) end end addEventHandler ( 'onPlayerLogin', root,SetandoItem) apos isso tento por ele no lado do client e colocalo na gridlist addEventHandler("ItensCarregadosDataBase",true) function Adicionandoitem() row = guiGridListAddRow(coluna)--coluna é o nome da gridlist guiGridListSetItemText(coluna,row,citem,tostring(item1),false,false) guiGridListSetItemText(coluna,row,qitem,1,false,false) row2 = guiGridListAddRow(coluna) guiGridListSetItemText(coluna,row2,citem,tostring(item2),false,false) guiGridListSetItemText(coluna,row2,qitem,1,false,false)... ... row40 = guiGridListAddRow(coluna) guiGridListSetItemText(coluna,row40,citem,tostring(item40),false,false) guiGridListSetItemText(coluna,row40,qitem,1,false,false) end addEventHandler("ItensCarregadosDataBase",getRootElement(),Adicionandoitem) É a primeira vez que to usando o AccountData, não sei bem como funciona então o codigo tem erros, porem nao sei como consertar!
  3. So colocar para checar se o player está na acl que voce quer que ela veja isso, leia https://wiki.multitheftauto.com/wiki/IsObjectInACLGroup ela funciona so do lado do servidor, como vi no seu script, ele esta do lado do client, entao ira precisar de um triggerEvent, sou novo na programação tambem, mas acredito que seja isso ^^
  4. Testei ele e funcionou corretamente, irei fazer algumas mudanças de cores e como irá mostrar o painel, resumo vou mudar todo o painel, qual das funções de lua posso usar para colocar em ordem, ou seja quem tiver mais kill ficará em primeiro, eu estava em duvida de 3 funções da biblioteca, mas pelo que li acredito que para isso devo fazer com a table.sort, correto?
  5. Ola, quero pedir ajudar em quais funções usar para poder criar um sistema de ranks no meu servidor, o sistema seria assim, ao player digitar /topmoney abrir um painel com os 10 mais ricos do servidor e criar um /topkill e ter outro painel com os 10 maiores assassinos, numerados de 1 a 10 com o total de suas pontuações na frente, ja tenho uma ideia de como pegar os dados com getElementData, porem nao sei se é o certo e nao sei como colocar eles ordenados em uma janela gui, estou aprendendo agora criar paineis mas ja entendi bem como usar triggerServer ou Client, caso precise, alguem poderia me dizer quais funções seria boa para usar? e se posssivel os passos que eu deveria ir para a construção desse script. Muito obrigado
  6. mrkvipAP = createMarker ( -2295.298828125, -2641.6328125, 59.416213989258 -1, "cylinder", 45, 0, 0, 0, 0, root) cdr = true -- variavel para setar o time no futuro function itensvip(thePlayer) local coletevip = getPedArmor(thePlayer) local vidavip = getElementHealth(thePlayer) if isObjectInACLGroup ( "user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup ("VIP")) then if cdr == true then -- checando a variavel se é verdadeira giveWeapon(thePlayer, 24, 5, true) giveWeapon(thePlayer, 25, 5, true) giveWeapon(thePlayer, 33, 10, true) giveWeapon(thePlayer, 4, 1, true) setElementHealth (thePlayer, vidavip + 100) setPedArmor(thePlayer, coletevip + 100) outputChatBox("[SEXTA-FEIRA 13]Você pegou com sucesso seu KitVip!", thePlayer, 255, 215, 0, true) outputChatBox("[SEXTA-FEIRA 13]Armas, Colete e Vida recebidos, obrigado por nos apoiar ^^", thePlayer, 255, 215, 0, true) cdr = false -- setando a variavel para falsa local recarga = setTimer (function (NoAbuse) cdr = true -- depois de 10 segundos a variavel se torna verdadeira e ele pode usar comando denovo end, 10000, 1) -- timer de 10 segundos para usar o comando novamente end else outputChatBox("[SEXTA-FEIRA 13]Confira nosso discord para adquirir #FFD700VIP, #64FF64aperte F2!", thePlayer, 100, 255, 100, true) -- se o player nao for vip e digitar o comando end end addEventHandler("onMarkerHit", mrkvipAP, itensvip) addCommandHandler("kitvip", itensvip, thePlayer) Eu consegui com esse script, bom tenho alguma duvida em algo, queria por uma mensagem mandando ele esperar caso ele use o comando enquanto a variavel está falsa é so eu colocar no script... if cdr == false then outputChatBox("[ERRO] Espere alguns segundos até usar isso novamente", thePlayer, 200, 35, 35, true) end poderia me tirar essa duvida? e muito obrigado pela ajuda Fiz o teste e foi isso mesmo, muito obrigado amigo ^^ com seu exemplo consegui ter ideia para fazer isso
  7. Quero criar um temporizador para poder funcionar o comando novamente, Tenho esse codigo, alguem poderia me ajudar? Ja tenho a marca feita temporizador = false function EscolherAssassino() if temporizador == true then outputChatBox ( "#B22222[#B22222ERROR#B22222] O Assassino já foi escolhido! ", source, 100,255,100,true ) else local temporizador = true if temporizador == false then local randomPlayer = getRandomPlayer ( ) setElementPosition(randomPlayer, -2405.6630859375, -2171.0009765625, 33.2890625) setTimer( function(escolhidoassassino) temporizador = false end, 45000, 1) end end end addEventHandler("onMarkerHit", mrk, EscolherAssassino)
×
×
  • Create New...