Ir para conteúdo

Xagah

Membro
  • Registro em

  • Última visita

Tudo que Xagah postou

  1. Seu Script está selecionando sobre um player é selecionado. Não conheço este torneio. Se explicar um pouco melhor posso fazer uma reformulação do 'script' para o que você precisa.
  2. Acabei vendo suas respostas só agora. Deu certo o que você queria?
  3. Voltei do almoço agora, iuaheiuhauiehAUIEhIAU. Mesmo assim vlw. Colei a tabela errada. Copiei daqui, ó: http://pastebin.com/xAiF486s
  4. Cara, tava olhando o erro, e está assim: C:\Documents and Settings\claudio\Desktop\DiegoWarsconfig.lua Só que deveria haver uma barra entre: DiegoWars (aqui) config.lua Ou seja, o correto seria|: C:\Documents and Settings\claudio\Desktop\DiegoWars\config.lua Tente isto antes. Sabe onde fica o config.php do seu site, néah? Fico no aguardo aqui.
  5. @AfonsoHenrique, o erro que está aparecendo está dizendo que dentro do seu arquivo 'config.lua' está dizendo para utilizar um tipo de armazenamento de dados quando, em verdade, você está utilizando outro. Isto faz com que o seu Server não consiga colocar ou extrair dados, porque são sistemas diferentes. Assim, repito, cole seu arquivo 'config.lua' aqui que corrijo ele pra você e esclareço o erro. Caso queira tentar sozinho, abra-o e onde está: sqlType = "mysql" sqlType = "" Troque por: sqlType = "mysql" Se o erro persistir volte.
  6. Primeiro crie a Tabela executando o comando abaixo em seu banco de dados. Se o erro continua volta aqui. CREATE TABLE IF NOT EXISTS `z_ots_comunication` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Ajudei? Rep+.
  7. Opa, bom dia. É só o 'AutoBorder' Ativado. Aperte a letra 'A' uma vez e está resolvido. Caso não funcione vá em: Edit > Border Options > Border Automatic. Ajudei? Rep+
  8. Tenta lá: function onUse(cid, item, frompos, item2, topos) local wall1 = {x=88, y=188, z=7, stackpos=1} local wall2 = {x=88, y=189, z=7, stackpos=1} local getwall1 = getThingfromPos(wall1) local getwall2 = getThingfromPos(wall2) local tempo = 2 -- temop em minutos aqui para as magic walls voltarem local storage = 45001 -- Escolha um GlobalStorage para armazenas o momento. Um número menor que 65000 local minutos = 2 -- Quantidade de minutos que a alavanca ficará indisponível time = os.time() function remove() local itemA = getThingFromPos(wall1) local itemB = getThingFromPos(wall2) doRemoveItem(itemA.uid, 1) doRemoveItem(itemB.uid, 1) return true end if item.uid == 60010 and (item.itemid == 9825 or item.itemid == 9826) then if (getGlobalStorageValue(storage)+(minutos*60) < time) then setGlobalStorageValue(storage, os.time()) doCreateItem(13017,1,wall1) doCreateItem(13017,1,wall2) doPlayerSendTextMessage(cid,22,"Uma nova passagem foi aberta!") addEvent(remove,tempo*60*1000) if (item.itemid == 9825) then doTransformItem(item.uid,item.itemid+1) else doTransformItem(item.uid,item.itemid-1) end else addEvent(doSendMagicEffect, 550, getPlayerPosition(cid), CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Esta alavanca poderá voltar a ser utilizada em "..getGlobalStorageValue(storage)+(minutos*60)..".") return false end doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end end
  9. Faz assim, dentro do seu 'talkactions.xml' vc adiciona o seguinte: <talkaction log="yes" words="!buyvip" event="script" value="buyvip.lua"/> E, dentro da pasta data > talkactions > script vc adiciona um 'script' de extensão '.lua' e salva o seguinte dentro: function onSay(cid, words, param) config = { days = 15, -- Número de Dias que poderá ser comprado item = 8181, -- Id do item que será removida para pagar a VIP qtde = 5, -- Quantidade de moedas que serão retiradas para pagar a VIP maxDays = 120, -- Quantidade máxima de Dias que um Player pode ter nameDoPlayer = getPlayerName(cid) -- não mude isto } if(getPlayerPremiumDays(cid) < config.maxDays) then if (doPlayerRemoveItem(cid,config.item,config.qtde)) then doSendMagicEffect(getThingPosition(cid), 13) doSendAnimatedText(getPlayerPosition(cid), "VIP!", TEXTCOLOR_RED) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou " .. config.days .. " dias VIP.") addPoints(config.nameDoPlayer,config.days) else doPlayerSendCancel(cid, "Você não tem moedas suficientes, " .. config.days .. " dias VIP custam 05 moedas.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode comprar mais do que " .. config.days + config.maxDays .. " dias VIP.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return end end Tenta aí e vê o que dá. Ajudei? Rep+
  10. Olá, bom dia. A princípio você deveria observar dentro da pasta 'globalevents' um arquivo chamado 'globalevents.xml' e, além dele, uma pasta denominada de 'scripts'. Assim, dentro da pasta 'scripts' você deve inserir o 'script' do segundo bloco deste seu último post (para a explicação abaixo irei usá-lo como 'pikachuevent.lua'). Ao passo que deverá inserir, dentro do 'script' 'global events', o seguinte texto: <globalevent name="evento_1" time="22:00:00" day="Tuesday" event="script" value="pikachuevent.lua"/> <globalevent name="evento_2" time="22:00:00" day="Thursday" event="script" value="pikachuevent.lua"/> <globalevent name="evento_3" time="22:00:00" day="Friday" event="script" value="pikachuevent.lua"/> <globalevent name="evento_4" time="22:00:00" day="Sunday" event="script" value="pikachuevent.lua"/> Veja lá se deu certo.
  11. Oxe, eu copiei errado kkkkkkkkkkk faltou um end function onUse(cid, item, frompos, item2, topos) local wall1 = {x=88, y=188, z=7, stackpos=1} local wall2 = {x=88, y=189, z=7, stackpos=1} local getwall1 = getThingfromPos(wall1) local getwall2 = getThingfromPos(wall2) local tempo = 2 -- temop em minutos aqui function remove() local itemA = getThingFromPos(wall1) local itemB = getThingFromPos(wall2) doRemoveItem(itemA.uid, 1) doRemoveItem(itemB.uid, 1) return true end if item.uid == 60010 and (item.itemid == 9825 or item.itemid == 9826) then doCreateItem(13017,1,wall1) doCreateItem(13017,1,wall2) doPlayerSendTextMessage(cid,22,"Uma nova passagem foi aberta!") addEvent(remove,tempo*60*1000) if (item.itemid == 9825) then doTransformItem(item.uid,item.itemid+1) else doTransformItem(item.uid,item.itemid-1) end else doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end end
  12. AeaueiHaui aGORA VAI! HAHAH function onUse(cid, item, frompos, item2, topos) local wall1 = {x=88, y=188, z=7, stackpos=1} local wall2 = {x=88, y=189, z=7, stackpos=1} local getwall1 = getThingfromPos(wall1) local getwall2 = getThingfromPos(wall2) local tempo = 2 -- temop em minutos aqui function remove() local itemA = getThingFromPos(wall1) local itemB = getThingFromPos(wall2) doRemoveItem(itemA.uid, 1) doRemoveItem(itemB.uid, 1) return true end if item.uid == 60010 and (item.itemid == 9825 or item.itemid == 9826) then doCreateItem(13017,1,wall1) doCreateItem(13017,1,wall2) doPlayerSendTextMessage(cid,22,"Uma nova passagem foi aberta!") addEvent(remove,tempo*60*1000) if (item.itemid == 9825) then doTransformItem(item.uid,item.itemid+1) else doTransformItem(item.uid,item.itemid-1) end else doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end
  13. Cola o 'script' do comando do GOD que crio um para 'player' aqui.
  14. Cara, agora entendi. Põe assim: Edited: kkkkkkkkkkkkkkk, ganhar donate é f**da hahahahah
  15. Tenta assim: function onUse(cid, item, frompos, item2, topos) config = { wall1 = {x=88, y=188, z=7, stackpos=1} wall2 = {x=88, y=189, z=7, stackpos=1} getwall1 = getThingfromPos(wall1) getwall2 = getThingfromPos(wall2) tempo = 1 -- temop em minutos aqui } function remove() local itemA = getThingFromPos(config.wall1) local itemB = getThingFromPos(config.wall2) doRemoveItem(itemA.uid, 1) doRemoveItem(itemB.uid, 1) return true end if item.uid == 60010 and item.itemid == 9826 then doCreateItem(13017,1,config.wall1) doCreateItem(13017,1,config.wall2) doPlayerSendTextMessage(cid,22,"Uma nova passagem foi aberta!") addEvent(remove, config.tempo*60*1000) else doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end end Aproveitando, o que são os itens de 'id' 9825 e 9826? Porque neste de cima só deixei o 9826. Se disser o que são posso deixar 'script' mais completo. Ajudei? Rep+.
  16. Tenta assim e vê se dá: function onUse(cid, item, frompos, item2, topos) local wall1 = {x=88, y=188, z=7, stackpos=1} local wall2 = {x=88, y=189, z=7, stackpos=1} local getwall1 = getThingfromPos(wall1) local getwall2 = getThingfromPos(wall2) local tempo = 1*60 -- tempo para parede voltar if item.uid == 60010 and item.itemid == 9826 then doCreateItem(13017,1,wall1) doCreateItem(13017,1,wall2) doPlayerSendTextMessage(cid,22,"Uma nova passagem foi aberta!") doTransformItem(item.uid,item.itemid-1) elseif item.uid == 60010 and item.itemid == 9825 then doRemoveItem(getwall1.uid,1) doRemoveItem(getwall2.uid,1) addEvent(doRemoveItem, tempo, 13017, getwall1.uid,1) doTransformItem(item.uid,item.itemid+1) else doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end return 1 end Se não, explica qual o erro, se não funciona nada ou só uma parte. Edited: Porque pelo que está no 'script' se vc usa o item 9826 os 'walls' somente surge e não irão desaparecer com tempo, mas serão transformados. Jà no segundo ponto vc pediu pra função com o item 9825 usar o tempo. Conta como quer que ajeito aqui.
  17. Vá na pasta do seu server e cole o conteúdo do arquivo "config.lua". O erro está lá.
  18. Em qual servidor que você viu usando este pokemon?
  19. Pera, é que seu server é diferente do meu. É que funciona assim, o site busca informações do server dentro do 'config.lua'. O seu config.lua está correto, a questão é que o site não está localizando ele. Assim, precisamos saber onde está (dentro da pasta do seu site) o endereço do arquivo 'config.lua'. 1º - Ao invés de sair procurando, primeiro instale o programa 'NotePad C++'. Pode ser em qualquer lugar, é um editor de texto muito simples. 2º - Depois, vc abre o "NotePad C++": 3º - Aperta 'Ctrl + Shift + F' e colocar "C:/Users/Rafael/Desktop/Hatera ' dentro do campo "Localizar", 4º - Depois vc aperta o botão indicado pela seta verde. . 5º - Aí seleciona a pasta (tem que ser a pasta do seu 'site'). 6º - Aí você seleciona "Localizar Todos". 7º - Os resultados irão aparecer na parte de baixo: Aí ficarão todos os arquivos que possuem o texto que pediu para procurar. Se voce der um 'double click' irá abrir o arquivo na linha certa já. Faça isto e mostre o script que vai encontrar o texto C:/Users/Rafael/Desktop/Hatera 100% Cidade Inovadora!/config.lua. To no aguardo.
  20. Faça o seguinte, este 'client' pokemon é qual versão? 8.54? Então vá na pasta do 'Object Builder' e abra o arquivo 'versions.xml' Assim, supondo que a versão do Pokemon seja '8.54', vá até a linha onde há: <version value="854" string="8.54 v1" dat="4B1E2CAA" spr="4B1E2C87" otb="16"/> Veja, o 854 é equivalente ao 8.54, é só remover o ponto. E troque os valores dentro de 'dat' e 'spr' mostrados no próprio 'Object Builder'. No seu caso a seta vermelha é o 'dat' e a verde é o spr. Copie estes valores dentro do versions.xml e salve. Se funcionar, rep+, se não volte aqui.
  21. Xagah postou uma resposta no tópico em Suporte Tibia OTServer
    @itielinformatica, para o 'server' sair do ar utiliza-se o "shutdown.lua". Já para voltar eu utilizo um sistema diferente. É o "Agendador de Tarefas" do windows. É só seguir o tutorial: https://www.todoespacoonline.com/post.php?id=272 Só no último passo, onde está: "Programa/Script" você irá selecionar o arquivo executável (ex.: Forgotten.exe) e, onde tem "Iniciar em (opcional)" você coloca somente a pasta onde está o Forgotten. Por exemplo: Programa/Script: C:\Nova pasta\Server\Forgotten.exe Iniciar em (opcional): C:\Nova pasta\Server\ Onde está "Adicione argumentos (opcional)"deixe vazio. Ajudei?
  22. Bom, para 'players' a função no final não vai funcionar mesmo. Muda seu 'script' pra isto aqui. function onSay(cid, words, param, channel) local config = { dias = 1, -- Número de Dias para pode usar a função exhaustionStorage = 16785, exhaustionTime = 120, -- segundos char = 100 --maximo de letras na msg } if (getPlayerPremiumDays(cid) < config.dias) then doPlayerSendCancel(cid, 'Somente donates pode usar esse comando.') return true end if param == '' then doPlayerSendCancel(cid, 'Command requires a message.') return true end if exhaustion.check(cid, config.exhaustionStorage) then doPlayerSendCancel(cid, 'Voce nao pode usar esse comando ainda, espere ['..exhaustion.get(cid, config.exhaustionStorage)..'] segundos.') return true else exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime) end doCreatureSay(cid,param,TALKTYPE_BROADCAST) return true end Agora vai. Testado aqu.
  23. Mano, testei aqui sem a função forbid e funcionou certinho. Ainda estou tentando inserí-la. Por enquanto ela fica assim: function onSay(cid, words, param, channel) local config = { dias = 1, -- Número de Dias para pode usar a função exhaustionStorage = 16785, exhaustionTime = 120, -- segundos char = 100 --maximo de letras na msg } -- local list = -- { -- 'dot','com','net','servegame','hopto','ip','no-ip','org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy', -- } if (getPlayerPremiumDays(cid) < config.dias) then doPlayerSendCancel(cid, 'Somente donates pode usar esse comando.') return true end if param == '' then doPlayerSendCancel(cid, 'Command requires a message.') return true end if exhaustion.check(cid, config.exhaustionStorage) then doPlayerSendCancel(cid, 'Voce nao pode usar esse comando ainda, espere ['..exhaustion.get(cid, config.exhaustionStorage)..'] segundos.') return true else exhaustion.set(cid, config.exhaustionStorage, config.exhaustionTime) end -- local forbid, param2 = false, param:lower() -- for i = 1, #list do -- if string.find(param2, list) ~= nil then -- forbid = true -- break -- end -- end -- --local forbid, param2 = false, param:lower() -- if forbid then -- doPlayerSendCancel(cid, 'Your message contains a forbidden word.') -- return true -- end -- if string.len(param) >= char then -- doPlayerSendCancel(cid, 'Your message is too long.') -- return true -- end doPlayerBroadcastMessage(cid, '['..getPlayerLevel(cid)..'] '..param..'') return true end
  24. Sei que é um teste, mas o que está acontecendo é que as palavras proibidas estão (por alguma razão que por enquanto ainda ainda não entendi) não estão conseguindo ser verificadas. Vamos fazer um teste, onde há: local list = { 'dot','com','net','servegame','hopto','ip','no-ip','org','whore','slut','fuck','mother','fucker','hopto','ass','cock','pussy', } Troque por: local list = { 'dot' }

Informação Importante

Confirmação de Termo