Ir para conteúdo

Xagah

Membro
  • Registro em

  • Última visita

Solutions

  1. Xagah's post in (Resolvido)[ACTION] remover potion flask was marked as the answer   
    Bah, desculpe, mas claro que não!
     
    @77mateus77, só remova esta linha:
     
    doPlayerAddItem(cid,potion.emptyId, 1) e boa.
     
    Ajudei? Rep++
  2. Xagah's post in (Resolvido)(Gesior) Não consigo acessar conta do admin no site. was marked as the answer   
    O 'xampp' gerencia um banco de dados. A conta que precisa está dentro deste banco.
     
    Assim, vc usará o Xampp para acessar esta conta.
     
    Para isto, abra o 'xampp', depois vá no seu navegador (Google Chrome, Mozilla Firefox, Internet Explorer) e escreva: localhost/phpmyadmin
     
    Irá abrir uma página, parecida com esta baixo. No canto esquerdo da tela, na primeira tabela (se não me engano) tem uma tabela 'accounts'. Abra-a e cole uma 'screeshot' dela para que eu possa vê-la.

     
    Ajudei? Rep++
  3. Xagah's post in (Resolvido)Como abrir Client do WoNO no OB (Object Builder) was marked as the answer   
    @SomeBody, faça este 
     
    Depois,dentro da pasta do 'Object Builder', vá no arquivo 'versions.xml' e mude:
    <version value="854" string="8.54 v3" dat="4B28B89E" spr="4B1E2C87" otb="17"/> Para:
    <version value="854" string="8.54 v3" dat="4B28B8A6" spr="4B1E2C87" otb="17"/> E salve.
     
    Aí é só abrir a pasta onde colocou os arquivos que fez o 'download.
  4. Xagah's post in (Resolvido)Exp stage não atualiza no site was marked as the answer   
    Olá @77mateus77, boa noite.
     
    Dentro da programação tudo é possível mas, dentro da grande maioria dos 'sites' que conheço esta parte de 'stages' é feita manualmente, ou seja, você precisa inseri um por um.
     
    Não se trata de 'script' de atualização automática. 
     
    Ajudei? Rep+!
  5. Xagah's post in (Resolvido)Como botar pra quando criar conta receber 5 dias de VIP was marked as the answer   
    Vá no arquivo 'config.php' e encontre:
    $config['site']['newaccount_premdays'] = 5; Coloque quanto dias precisa. 
  6. Xagah's post in (Resolvido)[AJUDA] [Error - Npc interface] was marked as the answer   
    Cara, vc usa o 'NotePad C++' para abrir arquivos?
     
    Se sim, abra-o, aperte 'CTRL + SHIFT + F' e irá aparecer esta tela. No lugar de Localizar coloque ' keyword_reply1', depois aperte no lugar da seta verde:

     
    Irá aparecer esta tela. Selecione a pasta do seu 'server':

     
    Depois aperte no lugar indicado pela seta 'vermelha'.

     
    Aguarde alguns instantes. O resultado aparecerá desta forma:

     
    Veja nas linhas indicadas em verde se, em algum lugar, está escrito 'keyword_reply1'. Se houver, dê um clique duplo na linha que o 'script' irá abrir. Mude onde houve tal frase para 'keyword_reply' (somente). Salve e teste o server.
     
    Se não funcionar volte.
     
    Ajudei ou esclareci? Rep+
  7. Xagah's post in (Resolvido)Editar Esse Script was marked as the answer   
    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  
  8. Xagah's post in (Resolvido)doChangeTypeItem - Desaparece o item was marked as the answer   
    Não Rolou. Tive que criar uma função de Create item tal com tal type.
     
    Mas valeus mesmo assim.
     
    Tópico Resolvido.
  9. Xagah's post in (Resolvido)Ajuda com o RME (Tool's no Mapa) was marked as the answer   
    Olá, boa noite.
     
    Aperta a Tecla "S" que aparece as áreas especiais.

    Para remover, aperte a tecla "T" que aparecerão as ferramentas. Selecione umas delas, segure a tecla "CTRL" e clique sobre a área.

    Faça isto com as demais áreas.

    Abraço.
  10. Xagah's post in (Resolvido)Dúvidas sobre mapas prontos was marked as the answer   
    São estes mesmos.
     
    .otbm ==> Todos os sprites e suas posições;
    -spawn ==> Local onde os "monsters" irão ficar;
    -house ==> Onde serão as casas e onde são as portas;
  11. Xagah's post in (Resolvido)[POKETIBIA] Corpo do Pokémon não aparece. was marked as the answer   
    Olá, bom dia.
     
    Colega, entendo muito de OT, mas pouco do Pokemon. Vou falar algumas coisas e, por analogia, faça o mais próximo possível.
     
    Cada pokemón tem o seu próprio arquivo. Você pode encontrar eles na pasta data > monsters.
     
    Abra, neste caso, o do Pinsir, por exemplo. Acredito que deve estar Pinsir.xml.
     
    Dentro do Arquivo vc vai encontrar deste modo:
     
    <?xml version="1.0" encoding="UTF-8"?> <monster name="Deathbringer" nameDescription="deathbringer" race="undead" experience="5100" speed="300" manacost="0"> <health now="10000" max="10000"/> <look type="231" corpse="7349"/> ... Ali onde está <look type=''231" é que vc deve colocar a "roupa" do seu monsters.

    O problema é que o seu client não deve estar sendo compatível com o OT que vc baixou. Para saber exatamente no seu faça o download do DatEditor.

    Download: DatEditor (Link Direto)
    Scan: Scan do Arquivo
     
    Agora vá em File > Open > (selecione seu .spr e seu .dat). Ao lado de Open seleciona a Opcão 760 (apta para o Tibia 8.54).

    Vá, ao lado direito inferior, e desça a barra até o final. Vai ser a parte de effects. Vá subindo aos poucos até encontrar o monstro que deseja.

    Quando encontrar, clique sobre a imagem dele e pegue a seguinte informação:

     
    Por exemplo, no caso acima eu selecionei o Ferumbras, o LookType dele é 229.
     
    No local marcado em vermelho vc pega o  número da "roupa" de seu Pokemón e já era!
     
    Se não der certo volta aqui. Abraço.
  12. Xagah's post in (Resolvido)Erro no Script was marked as the answer   
    Olá, bom dia.
     
    A função elseif complementa um if, e este não existe ali.

    Insira isto e veja o que dá:

     
    local strg = divulgue local texto = "Curta nossa pagina no Facebook." function onUse(cid, item, frompos, item2, topos) if (getPlayerStorageValue(cid, strg)~= 2) then if getPlayerStorageValue(cid, strg) == 0 then setPlayerStorageValue(cid, strg, 1) doPlayerSendTextMessage(cid, 23, texto) else doPlayerSendCancel(cid, "Voce ja clicou, agora va pegar sua recompensa no NPC Rey.") end else getPlayerStorageValue(cid, strg) == 2 then doPlayerSendCancel(cid, "Voce ja pegou sua recompensa por ajudar na divulgacao.") return true end Se não der certo volte aqui.

    Abraço.
  13. Xagah's post in (Resolvido)Rain System was marked as the answer   
    Olá, bom dia.

    Há várias maneiras, mas para fazer chover em um andar inteiro é interessante vc usar o script do Kaotar (de outro Fórum).
     
    Primeiro passo:

    Vá em Data > Lib > (crie um arquivo chamado rain.lua e cole isto dentro)
     
    -- Features: -- chance = OBJECT.chance = INT -- createItem = OBJECT.createItem = {chance = INT, item = {itemid = INT, type = INT}} Rain = {ignoreIds = {4526}} function Rain:new() local obj = {} setmetatable(obj, self) self.__index = self return obj end function Rain:getPositionInArea(fromPos, toPos) self.positions = {} for Y = fromPos.y, toPos.y do for X = fromPos.x, toPos.x do if (getTileThingByPos({x=X, y=Y, z=7, stackpos=0}).itemid ~= 0) then if not (string.match(string.lower(getItemNameById(getTileThingByPos({x=X, y=Y, z=7, stackpos=0}).itemid)), "water")) then table.insert(self.positions, {x=X, y=Y, z=Z}) end end end end return true end function Rain:doRain(position, disteffect, effect) if (self.duraction ~= self.executed) then local chance = self.chance or 100 if (math.random(0, 1000) <= chance) then for Z = 0, 7 do if (getTileThingByPos(({x = position.x, y = position.y, z = Z})).itemid ~= 0) then doSendDistanceShoot({x = position.x - 7, y = position.y - 5, z = Z}, {x = position.x, y = position.y, z = Z}, disteffect) doSendMagicEffect({x = position.x, y = position.y, z = Z}, effect) if (self.createItem) then if (math.random(0, 1000) <= self.createItem.chance) then if (isInArray(self.ignoreIds, getTileThingByPos({x=X, y=Y, z=Z, stackpos=0}).itemid) == FALSE) then local item = doCreateItem(self.createItem.item.itemid, self.createItem.item.type, {x=position.x, y=position.y, z=Z}) doDecayItem(item) end end end break end end end return true else return false end end function Rain:start(positions, effects, duraction, delay, var) self:getPositionInArea(positions.fromPos, positions.toPos) if not (self.positions[1]) then return false end self.delay = delay self.var = var or self self.effects = effects self.duraction = duraction self.executed = 0 addEvent(doCallback, self.delay, {var=self.var}) return true end function doCallback(p) for _, v in pairs(p.var.positions) do if not (p.var:doRain(v, p.var.effects.disteffect, p.var.effects.effect)) then return true end end addEvent(doCallback, p.var.delay, {var=p.var}) p.var.executed = p.var.executed+1 end 2º Vá na pasta Data > GlobalEvents > (crie um arquivo chamado rain.lua e cole isto dentro)
    local rain = Rain:new() function onThink(interval, lastExecution) local minX = 990 local minY = 993 local maxX = 1008 local maxY = 1006 local frompos = {x=math.random(minX, maxX), y=math.random(minY, maxY), z=7} local topos = {x=math.random(frompos.x, maxX), y=math.random(frompos.y, maxY), z=7} local effects = { snow = { disteffect = CONST_ANI_SNOWBALL, effect = CONST_ME_ENERGYAREA }, rain = { disteffect = CONST_ANI_ICE, effect = CONST_ME_LOSEENERGY } } random = math.random(0, 10) if (random == 0) then rain.chance = math.random(10,50) rain:start({fromPos = frompos, toPos = topos}, effects.snow, 300, math.random(100, 500)) else rain.chance = math.random(40,100) rain.createItem = {chance = math.random(0,10), item = {itemid = 2016, type = 1}} rain:start({fromPos = frompos, toPos = topos}, effects.rain, math.random(300, 1000), math.random(100, 350)) end return TRUE end 3º Vá no arquivo Data > GlobalEvents > globalevents.lua e adicione isto dentro:
    <globalevent name="rain" interval="200" event="script" value="rain.lua"/> Obs: o interval é o tempo que dura o SEU efeito em milisegundos. Ou seja, se vc cronometrou 3 segundos, vc deve colocar alí 3000. 
     
    4º - Vá em sua pasta Data > Lib > (crie um arquivo chamado rain.lua  e cole isto:
    -- Features: -- chance = OBJECT.chance = INT -- createItem = OBJECT.createItem = {chance = INT, item = {itemid = INT, type = INT}} Rain = {ignoreIds = {4526}} function Rain:new() local obj = {} setmetatable(obj, self) self.__index = self return obj end function Rain:getPositionInArea(fromPos, toPos) self.positions = {} for Y = fromPos.y, toPos.y do for X = fromPos.x, toPos.x do if (getTileThingByPos({x=X, y=Y, z=7, stackpos=0}).itemid ~= 0) then if not (string.match(string.lower(getItemNameById(getTileThingByPos({x=X, y=Y, z=7, stackpos=0}).itemid)), "water")) then table.insert(self.positions, {x=X, y=Y, z=Z}) end end end end return true end function Rain:doRain(position, disteffect, effect) if (self.duraction ~= self.executed) then local chance = self.chance or 100 if (math.random(0, 1000) <= chance) then for Z = 0, 7 do if (getTileThingByPos(({x = position.x, y = position.y, z = Z})).itemid ~= 0) then doSendDistanceShoot({x = position.x - 7, y = position.y - 5, z = Z}, {x = position.x, y = position.y, z = Z}, disteffect) doSendMagicEffect({x = position.x, y = position.y, z = Z}, effect) if (self.createItem) then if (math.random(0, 1000) <= self.createItem.chance) then if (isInArray(self.ignoreIds, getTileThingByPos({x=X, y=Y, z=Z, stackpos=0}).itemid) == FALSE) then local item = doCreateItem(self.createItem.item.itemid, self.createItem.item.type, {x=position.x, y=position.y, z=Z}) doDecayItem(item) end end end break end end end return true else return false end end function Rain:start(positions, effects, duraction, delay, var) self:getPositionInArea(positions.fromPos, positions.toPos) if not (self.positions[1]) then return false end self.delay = delay self.var = var or self self.effects = effects self.duraction = duraction self.executed = 0 addEvent(doCallback, self.delay, {var=self.var}) return true end function doCallback(p) for _, v in pairs(p.var.positions) do if not (p.var:doRain(v, p.var.effects.disteffect, p.var.effects.effect)) then return true end end addEvent(doCallback, p.var.delay, {var=p.var}) p.var.executed = p.var.executed+1 end Agora seu sistema está montado.
     
    A partir de de agora é configurar.
     
    Tem que configurar pois o "system" segue coordenadas, logo vc deve inserir as do seu mapa!
     
    Assim, vá no arquivo Data > Globalevents > rain.lua e edite o seguinte:

    local minX = Posição 'x' mínima, ou seja, inferior direita;
    local minY = Posição 'y' mínima, também inferior direita; 
    local maxX = Posição 'x' máxima, superior esquerda;
    local maxY = Posição 'y' máxima, superior esquerda tb
     
    Não é necessário editar o andar, já está "setado" para o 7.

    Além de tudo, você ainda pode configurar a "chance" de chover. Pra isto vc pode inserir, dentro do:
     
    data > globalevents > globalevents.xml
     
    Na linha que comentamos acima o código:
     
    rain.chance = Math.random (20.100) Modifique o 20, que é a chance de ocorrer.
     
    Bom, penso que é isto. Testei aqui no meu server, funcionou. Maaas... fica a dica, quanto maior foi a área que chovia, maior era o "lag".

    Eu configurei em áreas remotas (ilhas, cidades, etc.) de tempos em tempos. É um efeito legal, mas pode consumir mais memRam do que imagina.

    Qualquer coisa volte aqui.

     
     
  14. Xagah's post in (Resolvido)[NPC] Não detecta itens na mochila was marked as the answer   
    Consegui a resposta. O modules estava errado. Não havia disponível do correto na Net.

    Tópico resolvido. Caso alguém tenha interesse, entre em contato comigo.
     
  15. Xagah's post in (Resolvido)Export MiniMap was marked as the answer   
    Vá em:

    File > Export > Export Minimap > (Abrirá uma Janela)
     
    Na Opção:

    Floor Options
     
    Selecione: Ground Floor ( Que é o andar térreo).
     
    Na opção Browse escolha onde o arquivo será salvo.

    Se e finalize com "ok". Se o mapa for muito grande, seu programa poderá demorar para abrir o arquivo.
     
    Se seu Mapa realmente tiver algo irá aparecer.

    Acredito que seja isto.
     
    Posta o que conseguiu aqui.



     
  16. Xagah's post in (Resolvido)[SUPORTE] RME - Houses was marked as the answer   
    Você pode ver as coordenadas no arquivo que fica na pasta worl > houses > veja o nome da house (pelo distro) e pegue as coordenadas lá.

    Caso as coordenadas sejam "zeradas" simplesmente delete do arquivo.

    E sim, se apertar Ctrl + T e der um duplo clique na casa com o tal nome vc será direcionado para a casa com erro.
  17. Xagah's post in (Resolvido)Duvida para por area pvp was marked as the answer   
    Vc provavelmente não "prencheu" a área com o terrain correto.

    Aperte e letra "T" e depois selecione PVP (Bandeirinha Vermelha).

Informação Importante

Confirmação de Termo