-
Posts
563 -
Joined
-
Last visited
-
Days Won
1
Everything posted by Stanley Sathler
-
local contenido = xmlCreateChild( reporteXML, "reporte" ) Try put it on your line 4 (without the ":" character). ---- @EDIT Solidsnake already posted. Sorry, I had not read.
-
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.
-
Can you show to us your XML file?
-
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.
-
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) ------
-
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. (:
-
I think there is not ready resources to do it. You'll need create it.
-
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)
-
Lol, é mesmo. Eu podia jurar que getElementData() e setElementData() era apenas server-side. O_O
-
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.
-
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)
-
What should i add to make it not basic ?? Hell, how should I know. Jajajajajajaja
-
Não. Seria "guiGetText()", porque você quer pegar o valor do elemento, e não definí-lo.
-
How do i use Mysql or Sqlite? for a login/register script?
Stanley Sathler replied to blurryshadow1's topic in Scripting
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? -
How do i use Mysql or Sqlite? for a login/register script?
Stanley Sathler replied to blurryshadow1's topic in Scripting
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? -
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.
-
- 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".
-
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) ?
-
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.
-
Oh, I understood. Thanks for share. (:
-
Ok, there are no erros in Debugscript. But what is wrong? The objects are not invisible? You must explain better your problems. -
-
I think is because only who added the ban can remove the ban. But maybe I am wrong.
-
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.
-
This code was made by you, Teteomar? If yes, congratulations, seems you're learning Lua now. (:
-
Ih cara, será então problema no crack? Já tentou trocá-lo? Quer que eu poste o meu pra download pra você tentar?
