Jump to content

Stanley Sathler

MTA Contributors
  • Posts

    563
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Stanley Sathler

  1. local contenido = xmlCreateChild( reporteXML, "reporte" ) Try put it on your line 4 (without the ":" character). ---- @EDIT Solidsnake already posted. Sorry, I had not read.
  2. I think your XML sintax is wrong. Try my example: <reporte> <motivoR>motivoTest</motivoR> <descripcionR>descripcionTest</descripcionR> <creadorR>ElMota</creadoR> <estadoR>no leido</estadoR> </reporte> --Fix the function local contenido = xmlCreateChild( reporteXML, "reporte" ) ---- @EDIT Your XML was made automatically by your script. So, I think my example will not return good results.
  3. I think that there is a mistake in line 21. You are using "reporte:". The ":" character is allowed in a node name? I do not know, but I think not.
  4. Matheus (posso te chamar assim, não posso? É estranho chamar de "Ninguem" ), você seguiu minhas recomendações propostas na última postagem da primeira página? Use-o. Usando-o, basta apenas corrigir o problema de alterar o nível de quem está executando, e não do jogador selecionado. Para tal, usamos: --Client-side script wantedValue = guiGetText(editWanted2) --a variavel wantedValue passa a ter o texto contido no editWanted2 playerName = guiGetText(editWanted1) --a variavel playerName passa a ter o texto contido no editWanted1 ------ triggerServerEvent("onStupidStar", localPlayer, wantedValue, playerName) --chama o evento onStupidStart e envia como argumento o valor de wantedValue ------ -- Server-side script addEventHandler('onStupidStar', root, function(wantedToApply, playerToApply) --criamos a funcao e definimos o argumento que ira armazenar o valor do nivel setPlayerWantedLevel(getPlayerFromName(playerToApply), tonumber(wantedToApply)) --definimos o nivel de procurado outputChatBox('Seu nível de procurado foi alterado!',getPlayerFromName(playerToApply),255,255,0) end) ------
  5. Oh, just one thing: you can use "state" to store the button used by player (state == "left"), but it is not good. In the next times, rename your variable to "button" (button == "left"). It will be better. (:
  6. I think there is not ready resources to do it. You'll need create it.
  7. col = createColTube (-1752, -2978, 55, 100, 17) function warpThePlayer(hitElement, matchingDimension) if (getElementType(hitElement) == "player") and (matchingDimension) then if isObjectInACLGroup ( "user."..getAccountName(getPlayerAccount(hitElement)), aclGetGroup ( "Staff" ) ) then setElementPosition() --Type here your coordinates end end end addEventHandler("onColShapeHit", col, warpThePlayer) You need use the event onColShapeHit (is called when a element hit the ColShape). And remember, if you use outputChatBox() using getRootElement() in the second argument, the message will be displayed to all players in the server. You must use: outputChatBox("You cannot warp to this person currently", hitElement, 0, 255, 0)
  8. Lol, é mesmo. Eu podia jurar que getElementData() e setElementData() era apenas server-side. O_O
  9. Era exatamente isso que eu queria. Bom, vamos lá: 1) Você editou os arquivos? O erro diz "client.lua44", mas a linha 44 do arquivo client postado no seu tópico não contém essa função. De qualquer forma, getElementData() não pode ser usado em arquivos client, porque é uma função apenas server-side. 2) O segundo erro, "secundario.lua31", eu usei guiGetText() (eu já disse que é GetText e não SetText, arrume isso) usando como primeiro argumento o elemento "editWanted2", que é o guiEdit usado por você para podermos digitar o level de procurado. Só que esta é uma variável presente no arquivo "client.lua", mas ausente no arquivo "secundario.lua". Ou seja, você precisa usar no arquivo client.lua, e não no secundario.lua. Aliás, eu não vejo o porque de criar um novo arquivo lua para armazenar a segunda janela. Você pode construir tudo usando apenas o arquivo client.lua, mas chamando a segunda janela somente quando necessário.
  10. No setElementData() você pode usar "source" que, na função, é o jogador que a chamou (nesse caso). Pois, como dito pelo Draken, localPlayer é uma variável que armazena uma função client-side (getLocalPlayer()). - Quanto ao argumento da linha 5, você mudou o "guiSetText()" para "guiGetText()"? A propósito, o que o console (MTA Server.exe) diz? (Geralmente ele diz algo como "expected number, got nil", ou algo desse tipo. O que o seu diz? Para sabermos o que foi enviado à função) Tenta também mudar o nome da variável no server-side, só por tentativa mesmo (embora eu não sei se vá resolver, preciso realmente da resposta do Console): addEvent('onStupidStar', true) addEventHandler('onStupidStar', root, function(wantedToApply) setElementData ( source, 'Level', Toyota ) -- Nesse caso, source é o jogador setPlayerWantedLevel(source, tonumber(wantedToApply)) outputChatBox('Seu nível de procurado foi alterado!',source,255,255,0) end)
  11. What should i add to make it not basic ?? Hell, how should I know. Jajajajajajaja
  12. Não. Seria "guiGetText()", porque você quer pegar o valor do elemento, e não definí-lo.
  13. But I'm talking about the MTA default system (the used when we type in the console: addaccount ). Or this default system is a SQLite database?
  14. Is more recomended to use MTA account systems? But if I wanna many registration (near 700, 800 accounts registered), it will not overflow my MTA system?
  15. A propósito, é importante notar que no código server-side postado, o setPlayerWantedLevel() está definindo o número de estrelas para "1", independente do valor escolhido no GUI. Você precisa chamar o evento e enviar o número de estrelas (como argumento), para então usá-lo, seguindo estes passos: wantedValue = guiGetText(editWanted2) --a variavel wantedValue passa a ter o texto contido no editWanted2 ------ triggerServerEvent("onStupidStart", localPlayer, wantedValue) --chama o evento onStupidStart e envia como argumento o valor de wantedValue ------ addEventHandler('onStupidStar', root, function(wantedValue) --criamos a funcao e definimos o argumento que ira armazenar o valor do nivel setPlayerWantedLevel(source, tonumber(wantedValue)) outputChatBox('Seu nível de procurado foi alterado!',source,255,255,0) end) ------ Em resumo, é isso. Aí você precisa implementar no seu código, colocando cada função em seu respectivo lugar.
  16. - Draken, aí está a questão: as tabelas NÃO foram usadas. Ele usou variáveis independentes, e não os ítens da tabela para armazenar cada elemento. E se estas não foram usadas, não há motivo algum para serem declaradas. E foi exatamente isso que eu quis dizer. - Já quanto o parâmetro do onClientGUIClick, realmente pode ser usado o root como parâmetro, desde que seja usado a condição para verificar se o "source" é o botão desejado, já que com root presumo que a função seja chamada toda vez que o usuário clicar, seja onde for (embora ele tenha feito isso). No entanto, é sempre bom manter o costume e chamar a função somente quando o botão for clicado, ao invés de chamá-la toda vez que o usuário clicar e ficar verificando se o "source" é ou não o "buttonAlterar".
  17. Well... for no create another topic, I wanna ask: can I apply a modified file (.txd and .dff) to only one object in the world? Example: I wanna modify my San Fierro Garage, but if I load a .txd file and apply to the model, the .txd will be applied to all elements with this model (for example, if I put another San Fierro Garage in my map using the Map Editor). Can I apply this .txd to only San Fierro Garage (the original) and not apply in the other San Fierro Garage (putted using Map Editor) ?
  18. Bom, segue algumas observações referentes à otimização do seu código: 1) Não é necessário declarar as tabelas GUIEditor_Window, GUIEditor_Button, etc. Por quê? Essas tabelas são criadas automaticamente pelo recurso GUIEditor, e serve para armazenar cada elemento GUI criado (seja um botão, um label ou uma janela). No entanto, você não está utilizando-os para armazenar, mas sim variáveis independentes, como wantedJanela, labelJanela, e por aí vai. 2) Note que na sua linha 52, do primeiro código (Client), você está usando: addEventHandler('onClientGUIClick', root, -- ... your code goes here O uso, nesta linha, está incorreto. Você não deve usar "root" no segundo argumento do addEventHandler() (neste caso), mas sim o botão no qual você quer que a função seja chamada quando este for clicado. No caso, presumo eu, o botão armazenado na variável "buttonAlterar", ficando (lembre-se: na linha 52 do primeiro dos três códigos postados): addEventHandler('onClientGUIClick', buttonAlterar, -- ... your code goes here -- Detalhe: o erro não persiste apenas na linha 52. Há outras ocorrências, como a linha 36. Portanto, procure no seu código todas as ocorrências semelhantes a essa. 3) Você não precisa usar "\n" no Memo para cortar uma frase. Isto porque quando a frase atinge a largura do Memo, a frase se quebra automaticamente. Portanto, "você deseja realmente\n alterar o nível do\n jogador" é desnecessário o uso do "\n" para a quebra de linha. 4) Você precisa identar melhor seus códigos. É complicado lê-los. E use "tab" ao invés de espaço quando for identá-los.
  19. Oh, I understood. Thanks for share. (:
  20. Ok, there are no erros in Debugscript. But what is wrong? The objects are not invisible? You must explain better your problems. -
  21. I think is because only who added the ban can remove the ban. But maybe I am wrong.
  22. Do you wanna get the nick of the responsible for unban? If yes, the event have two arguments, and the second is what you want.
  23. This code was made by you, Teteomar? If yes, congratulations, seems you're learning Lua now. (:
  24. Ih cara, será então problema no crack? Já tentou trocá-lo? Quer que eu poste o meu pra download pra você tentar?
×
×
  • Create New...