Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 11/09/12 em todas áreas

  1. Olá galera do xtibia desculpe-me por aquele topico de web site la que eu fiz e não postei o download desculpa msm era que eu estavo com um projeto de wodbo 8.54 ai nao tive muito tempo e tambem por um problema no meu PC tive que formatar e eu estavo sem meu notebook, entao eu resouvi fazer outro e aqui esta o download não postarei Prints pois minha internet ta uma merda Download upado no 4shared: Link do download: http://www.4shared.c...junior001.html? Print: Creditos: Junior001 por editar DBO BRasil pela baze Mais uma vez pesso mil desculpas pelo site anterior que nao postei o link do download O Bom é que esse ficou mais bonito Rep se gostar. @Edit: Por favor se alguem puder post o scan para min
    5 pontos
  2. vital900

    [Mapping] Mostre suas Idéias

    Vi esta ideia e gostei. Créditos: Lorne Lester, TK
    2 pontos
  3. MrCatra

    Dragon Ball Absolution By Mrcatra V1

    Sim,se tiverem ideias para oque eu possa por na versao 2,por favor avontade ai.
    2 pontos
  4. Iai Xtibianos vim trazer meu Poketibia Erondino Site Server v11 com varios sistemas novos,bugs corrigidos etc.... vamo ver o que fiz de novo nessa versao 11.2 v11.2 (1 a 49 itens listados) 1-Colocado boost sistema (Boost sistema aumenta o ataque dos pokemon pelos moves m1,m2,m3 etc.. n aumenta vida speed etc... 2-Colocada novas sprites nos itens: >Lendaria box >Shiny box >Johto Box >Shiny rod 2 >Shiny rod 1 >Box Thirty 3-Colocado sistema m1 a m12 nos pokemon: >Shiny aerodactyl >Shiny Snorlax >Shiny victreebel >Shiny Beedrill >Shiny Alakazam >Shiny Dragonair >Shiny Dragonite 4-Concertado pokemon que vinha ne box bugado: >Shiny zubat >Shiny Seadra >Shiny Muk 5-Acrescentado na shiny box >Shiny aerodactyl >Shiny Snorlax >Shiny victreebel >Shiny Beedrill >Shiny Alakazam >Shiny Dragonair >Shiny Dragonite 6-Tirado o bug da invisibiladade do gengar 7-Concertado loot: >Eevee 8-Acrescentado ou concertado moves nos pokemon: >Abra >Beedrill >Clefairy >Chansey >Blissey >Dratini >Dodrio >Eevee >Exeggcute 9-Concerta o bug das novas ball que n dava para heala 10-Colocado um npc de boost no 1 andar de cada templo 11-Posto um npc de task por itens no laboratorio do bill onde o player tem q dar para ele 30 feather e em troca ele da 10 hd e 500 de exp 12-Colocado um npc de task por itens na cabana indo para pewter quest onde o player tem q levar 100 stone orb e em troca recebera 1 rock stone e 5000 de exp 13-Adicionados novas mensagens no global events que ira ajudar os players durante o jogo 14-Colocado shiny estaca magica no server... 15-Trocado os itens das estacas magicas agora a estaca magica é o msm iten so q sem o brilho e a shiny estaca magica contem brilho 16-Colocado Scyther na estaca magica 17-Trocado o premio da quest das ball pois ninguem vai fazer ela posto para ganhar 15 ultra ball e 30 super ball 18-Fortalecido os pokemons >Shiny Scyther >Elite Hitmonlee >Elite Hitmonchan 19-Concertado o loot e a exp nos pokemon johto (nas hunts) >Aipom >Ampharos >Ariados >Azumarill >Bellossom >Crobat >Croconaw >Delibird >Donphan >Dunsparce >Elekid >Feraligatr >Flaaffy >Furret >Girafarig >Granbull >Hoothoot >Houndoom >Larvitar >Ledian >Ledyba >Mareep >Marill >Meganium >Misdreavus >Noctowl >Phanpy >Pichu >Pineco >Politoed >Scizor >Sentret >Snubbull >Spinarak >Stantler >Steelix >Sunkern >Totodile >Typhlosion >Tyranitar obs-Essas sao as hunts de johtos ja existentes no 1 continente... 20-Facilitado a quest da box 2... 21-Dificultado a quest de lvl 30 e tirado o tp para ir embora pois pela porta da para ir embora... 22-Adicionado um segundo continente com novas cidades onde os pokemons e as ilhas q fica ao redor das cidades sao johtos obs-As casas das cidades n da para comprar obs2-Mapa feito por betinhowz666 tirei as hunts kanto q tinha e posto hunts johtos 23-Adicionado um bloco de notas para saber quais johtos tem nos 2 continentes 24-Adicionado um npc que joga 21 e jogo dos 6 em cima do cassino em celadon e umas placas explicando como jogar (o jogo n ganha nem pede muita grana é mais para diversao ) 25-Colocado evoluçoes nos pokemons johto que adicionei sistema m1 na v10 26-Colocado control mind no haunter 27-Colocado para vim pokemons johto nas rods: >Old rod >Advanced Rod >Shiny rod 1 >Shiny Rod2 28-Agora os npcs saffari da 30 saffari ball ao entrar no saffari 29-Aumentado o preço para o saffari kanto de 300dl para 500dl 30-Colocado para fearow pidgeotto e pidgeot para pegar a pena brilhosa 31-Feito equipe rocket quest onde o giovanni pede uma pena brilhosa em troca de uma box 2 32-Colocado um buero com um caixote em cima no cassino em saffron para dar acesso ao esconderijo da equipe rocker 33-Colocado o giovanni no esconderijo da equipe rocket 34-Deletado a ilha da quest da venom stone quest e posto agua 35-Feito um npc de quest de venom stone ele pede 50 bat wing e em troca ele da 1 venom stone 36-Posto o npc da quest da venom stone em lavender 37-Modificado a area de dodou e dodrio de fuchsia e posto hunts de: >Ponyta >Rapidash >Doduo >Dodrio >Tauros 38-Trocado a localizaçao do npc do saffari johto agora ele se localiza em uma ilha la no continente johto 39-Feito uma ponte na entrada da pewter quest ate uma cidade do 2 continente 40-Expandido a ponte que vai de lavender ate a floresta de vermilion agora ela pode ir tbm ate a floresta de fuchsia 41-Feito uma ball chamada "mega ball" ela pega todos pokemon de primeira a fomra dela é de pokeball o efeito on e fail cath tbm mas quando captura vira uma dark ball (Como minha equipe viajo e me mando uma master ball inutil foi o unico jeito q achei espero que compreendem e aguarde a proxima versao com ela arrumada ) obs- Id dela é 2149 42-Configurado o arquivo cath para fica mais facil pega os pokemons 43-Concertado o comando /town pois algumas cidades n tinha ficando... /town 1 --> Saffron /town 2 --> Cerulean /town 3 --> Lavender /town 4 --> Fuchsia /town 5 --> Celadon /town 6 --> Viridian /town 7 --> Cinnabar /town 8 --> Pewter /town 9 --> Vermilion /town 10 --> Pallet /town 11 -->Ilha inicial 44-Trocado a first city que era parllet por uma ilha obs-Essa ilha so server para pega o pokemon inicial e o kit ao sair dela nao tem volta 45-Feito uma ponte de pallet ate cinnabar 46-Feito quest da shiny estaca magica 47-Colocado um navio na praia de cerulean com acesso para a ilha de pigeotto 48-Colocado um navio na ilha de pigeotto para ir para a praia de cerulean obs-Ao ir na direçao do navio se vai direto para a ilha depois fasso um sistema para demorar chega um pouco 49-Tirado a lendaria box quest Download do Poketibia Erondino Site Server v11.2: clike aki Scan do server: Aki Versao Atualizada v13.1: http://www.xtibia.com/forum/topic/210168-poketibia-erondio-site-e-suas-versoes/page__fromsearch__1 Créditos v11.2: Erondino Nic Loeher Urbanchaos Caioo Gazulina (Pelo client) betinhowz666 (usei seu mapa para o 2 continente) obs-Vlw ai ekipe versao fico muito mais massa com suas ajudas obs2-Urbanchaos que pena que vc tem q sair da ekipe mas vc sempre será bem vindo de volta obg pelo seu trabalho na v11
    1 ponto
  5. sharematrix

    Sistema Automático Moip!

    Opa, beleza? Faz muito tempo que não entro aqui no xtibia, mas agora vou começar a entrar denovo, e irei disponibilizar um sistema de pagamento automático do MoIP que criei, quando você receber o pagamento, o sistema adiciona os pontos AUTOMATICAMENTE na conta do jogador. A primeira coisa é criar as tabelas do MySQL! Vá no phpmyadmin e rode a query abaixo: CREATE TABLE IF NOT EXISTS `moip_nasp` ( `id` int(11) NOT NULL AUTO_INCREMENT, `id_transacao` varchar(100) NOT NULL, `valor` int(11) NOT NULL, `status_pagamento` int(11) NOT NULL, `cod_moip` int(11) NOT NULL, `forma_pagamento` int(11) NOT NULL, `tipo_pagamento` varchar(100) NOT NULL, `email_consumidor` varchar(150) NOT NULL, `completed` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ; ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL AFTER `group_id`; Agora, com as tabelas do MySQL criadas, crie um arquivo chamado retorno.php na pasta do seu website com o seguinte conteúdo: (Por questão de segurança, mude o nome do arquivo de Retorno.php para outro, pois se alguma outra pessoa que viu este tutorial, poderá ficar enviando dados pra encomodar) <?PHP $conn = mysql_connect('localhost', 'root', 'xxx'); $db = mysql_select_db('otserv2'); $id_transacao = $_POST['id_transacao']; $valor = $_POST['valor']; $status_pagamento = $_POST['status_pagamento']; $cod_moip = $_POST['cod_moip']; $forma_pagamento = $_POST['forma_pagamento']; $tipo_pagamento = $_POST['tipo_pagamento']; $parcelas = $_POST['parcelas']; $email_consumidor = $_POST['email_consumidor']; if((!$cod_moip) or (!$status_pagamento)) { Header('HTTP/1.1 500 Internal Server Error'); } else { $queryMOIP = mysql_query("SELECT * FROM moip_nasp WHERE cod_moip = '$cod_moip';"); if(mysql_num_rows($queryMOIP) >= 1) { $Update = mysql_query("UPDATE moip_nasp SET `status_pagamento` = '$status_pagamento' WHERE cod_moip = '$cod_moip';"); if(($status_pagamento == 1) or ($status_pagamento == 4)) { $Explode = explode("-", $id_transacao); $points = $valor / 100; $AddPoints = mysql_query("UPDATE accounts SET `premium_points` = '$points' WHERE id = '".$Explode[0]."';"); } } else { $Insert = mysql_query("INSERT INTO `moip_nasp` (`id`, `id_transacao`, `valor`, `status_pagamento`, `cod_moip`, `forma_pagamento`, `tipo_pagamento`, `email_consumidor`) VALUES (NULL, '$id_transacao', '$valor', '$status_pagamento', '$cod_moip', '$forma_pagamento', '$tipo_pagamento', '$email_consumidor');"); } Header('HTTP/1.1 200 OK'); } exit; ?> No MoIP, o status 1 é Autorizado, e o status 4 é Concluído. Ambos os status, querem dizer que o pagamento será creditado em sua conta, então não precisa ficar esperando liberar. Beleza? criou? então vamos configurar o MoIP pra enviar os dados para sua URL, quando o pagamento for atualizado (Ex: Concluido, Autorizado) Crie sua conta no MoIP: Clicando Aqui! Depois de criada, vá para a página Meus Dados -> Preferências -> Notificação das transações E configure a URL de notificação Assim: Configurou? beleza, vamos pra próxima parte. Agora, na página para comprar pontos no seu servidor, adicione este código para enviar os dados para o MoIP! if(!$_POST['send2']) { $content = '<b>MoIP / Boleto / Cartão de Crédito</b><BR> Aqui você encontra tudo que é necessario para fazer sua doação com segurança e facilidade.<BR><BR> <form action="" method="post" name="pag" onSubmit="return checkPag();"> <input type="hidden" name="method" VALUE="3"> Pontos: <input type="text" name="pontos" value="" size="5" maxlength="4"><BR><BR>Lembrando que cada point custa R$ 1,00<BR><BR> <input type="submit" name="send2" value="Prosseguir"> </form><BR><a href="http://www.moip.com.br/" target="_blank"><img src="http://www.moip.com.br/imgs/banner_5_1.jpg" border="0"></a>'; } else { $pontos = $_POST['pontos']; $valor = $pontos * 100; $content = '<b>MoIP / Boleto / Cartão de Crédito</b><BR> Aqui você encontra tudo que é necessario para fazer sua doação com segurança e facilidade.<BR><BR> <form action="https://www.moip.com.br/PagamentoMoIP.do" method="post"> <input type="hidden" name="id_carteira" VALUE="EMAILMOIP"> <input type="hidden" name="nome" VALUE="'.$account_logged->getCustomField("id").' Points - MEUOTSERV"> <input type="hidden" name="id_transacao" VALUE="'.$account_logged->getCustomField("id").'-'.rand(1000, 9999).'"> <input type="hidden" name="valor" VALUE="'.$valor.'"> Pontos: '.$pontos.'<BR><BR>Valor: R$ '.$pontos.',00<BR><BR> Você tem certeza?<BR><BR>Se você não realizar o pagamento, sua conta poderá ser bloqueada.<BR><BR> <input type="submit" name="send" value="Comprar!"> </form><BR><a href="http://www.moip.com.br/" target="_blank"><img src="http://www.moip.com.br/imgs/banner_5_1.jpg" border="0"></a>'; } Você pode ver que o id_transacao irá ficar assim (ex: 2345-3244), os primeiros numeros antes da barra - são o ID da conta, e os últimos são o id da trasação, tente não remover isso, senão vai estragar o script TODO! EMAILMOIP = email da sua conta no MoIP (que irá receber os pagamentos) MEUOTSERV = nome do seu otserv. Então é isso galera, eu uso esse sistema á um bom tempo, e nunca deu algum problema. se tiverem alguma dúvida, perguntem aqui neste tópico. OBS: funciona no ModernAAC também, só é necessário mudar a função de pegar o ID da conta do player logado. Se acharem melhor baixar os arquivos, em vez de copiar e colar, os arquivos estão anexados no tópico. Scan: https://www.virustot...sis/1342728882/ Se gostarem, REP+ :] MoIP_ShareMatrix.zip
    1 ponto
  6. LuckOake

    Caixa Eletrônico

    Oooi povo Ékztibiano Eu (novamente) trouxe outro sistema pra vocês. Infelizmente quase ninguém posta conteúdo útil atualmente, então tô tentando erguer essa seção novamente, tanto é que vira e mexe eu posto sistemas aqui, e daqui a uns dias eu vou postar outros que tô fazendo. Bom, comecemos. O que é: Um sistema em que você insere um Cartão de Crédito em um Caixa Eletrônico para executar ações iguais às de um banco de verdade. Script: Configurando: Imagens: Observações: - Para usar o caixa eletrônico, você tem que dar Use With nele com o cartão. Créditos: LuckOake -- Pelo sistema
    1 ponto
  7. Aligattor

    Baiak[8.60]Edited-Aligattor

    Baiak[8.60] Edited Aligattor Quem Não Gosta do Bom e Antigo Yurots.. Bom Ai Está Mapa Yurots Super Rox Editado Por Baiak Lula... Baiak Yurots V2.2 Oque Mudou Baiak Yurots V2.7 Oque Mudou Baiak Yurots V1.0.9 Oque Mudou Baiak Yurots V1.1.0 Oque Mudou Baiak Yurots V1.1.4 Oque Mudou Baiak[8.60]Edited Aligattor Oque Mudou ScreenShot's: Templo PvP ArenaBY: Aligattor Inquisition Inquisition-ComoUsar EventoBP City de Cima! Teleports New Teleports Free Quests HornedHelmet/Firewalkerboots/Nighmare Shield! Teleports VIP 1°Andar Teleports VIP 2°Andar Teleports VIP 3°Andar [download]http://www.megaupload.com/?d=984YWX35[/download] Scan: Gostou? REP+
    1 ponto
  8. EdMignari

    Sprite Editor

    O TibiaCanvas é um editor de sprites que visualiza in-game em tempo real e offline. http://www.youtube.com/watch?v=TCT87Ba9pJc Download (Versão 0.1 Beta 2) Scan Projeto Exemplo: Algumas teclas de atalho: Sobre o módulo Slicer: Aviso:
    1 ponto
  9. W0lfer

    Diferença Entre Vps E Dedicado

    Por que esse tópico? Criei este tópico para esclarecer o que é e a diferença entre cada um. Recomendação Recomendo a todos que comecem com VPS e depois do sucesso do OT, aluguem um dedicado. Servidor Dedicado Virtual Private Server (VPS) Resumo Dedicado é um computador físico exclusivo para você. Virtual Private Server (VPS) é uma pequena parte de um Dedicado, ou seja um PC divido. Conclusão Concluindo, Dedicado é melhor que VPS.
    1 ponto
  10. Delaks

    Subwat Kamikaze V24 [03/10/2012] Atualizado!

    OLÀ GALERA,ESTOU AQUI PARA POSTAR O SUBWAT KAMIKAZE V24! ATUALIZAÇÔES -Adicionado Sala de quests -Adicionado Sala de hunts KM -Templo Modificado -Várias coisas decoradas -Agora com sistema de leilão -Hunts adicionadas -Retirado alguns bugs -Alguns lugares editados -Itens Reestabelecidos IMAGENS! TEMPLO TELEPORTS SUPER VIP SALA DE QUESTS SALA DAS HUNTS DOWNLOAD: http://www.4shared.c...ikaze_V24.html? SCAN: https://www.virustot...sis/1349299549/ È isso ai galera,atualizado o kamikaze,e se puder de um REP+ e comente que agradeço.
    1 ponto
  11. W0lfer

    [Anti Clone System]

    Aqui neste tópico postarei para voces um Script "anti clone". Ele NÃO evitará o clone mas com ele você poderá verificar os items clonados e deleta-los. Primeiro vá em data/lib/functions.lua e coloque antes ou depois da ultima function: function generateSerial() local strings = "AaBbCcDdEeFfGgHhIiJjKkLlMmOoPpQqRrSsTtUuVvWwXxYyZz" local newSerialStr, newSerialInt = "", 0 local newSerial = "" local query, query2, query3 repeat for k = 1, math.random(1, 10) do local l = math.random(1, string.len(strings)) newSerialStr = newSerialStr .. string.sub(strings, l, l) end newSerialInt = math.random(999999) newSerial = newSerialStr .. "-" .. newSerialInt query = db.getResult("select * from player_items where substring(convert(attributes using latin1) from 18) = " .. db.escapeString(newSerial)) query2 = db.getResult("select * from player_depotitems where substring(convert(attributes using latin1) from 18) = " .. db.escapeString(newSerial)) query3 = db.getResult("select * from tile_items where substring(convert(attributes using latin1) from 18) = " .. db.escapeString(newSerial)) until query:getID() == -1 and query2:getID() == -1 and query3:getID() == -1 return "!" .. newSerial end Agora em Globalevents/Scripts crie um arquivo track.lua e coloque dentro: tablesToCheck = {"player_items", "player_depotitems", "tile_items", {"player_items", {"player_depotitems", "tile_items"}}, {"player_depotitems", "tile_items"}} function onstartup() local text, final = "", "" local filex = "data/logs/duplicated.txt" local f = io.open(filex, "a+") local count = 0 for i = 1, table.maxn(tablesToCheck) do if type(tablesToCheck[i]) == "string" then local query = db.getResult("SELECT *, SUBSTRING(CONVERT(attributes USING latin1) FROM 18) AS 'track' FROM " .. tablesToCheck[i] .. " WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 18) IN (SELECT SUBSTRING(CONVERT(attributes USING latin1) FROM 18) FROM " .. tablesToCheck[i] .. " WHERE CONVERT(attributes USING latin1) LIKE '%serial%' GROUP BY SUBSTRING(CONVERT(attributes USING latin1) FROM 18) HAVING COUNT(*) > 1)") if query:getID() ~= -1 then while(true) do local delete = db.executeQuery("delete from " .. tablesToCheck[i] .. " where SUBSTRING(CONVERT(attributes USING latin1) FROM 18) = " .. db.escapeString(query:getDataString("track")) .. " and player_id = " .. query:getDataInt("player_id") .. ";") text = "[!] -> Deleting items with duplicated serial from '" .. tablesToCheck[i] .. "': [Player: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. ", Item: " .. query:getDataInt("itemtype") .. ", Count: " .. query:getDataInt("count") .. ", Serial: " .. query:getDataString("track") .."]... " .. (delete and "Success!" or "Failed!") count = (delete and count + 1 or count) final = final .. (final ~= "" and "\n" or "") .. text print(text) if not query:next() then break end end end else if type(tablesToCheck[i][2]) == "string" then local query = db.getResult("SELECT *, SUBSTRING(CONVERT(attributes USING latin1) FROM 18) AS 'track' FROM " .. tablesToCheck[i][1] .. " WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 18) IN (SELECT SUBSTRING(CONVERT(attributes USING latin1) FROM 18) FROM " .. tablesToCheck[i][2] .. " WHERE CONVERT(attributes USING latin1) LIKE '%serial%' GROUP BY SUBSTRING(CONVERT(attributes USING latin1) FROM 18) HAVING COUNT(*) > 0)") if query:getID() ~= -1 then while(true) do local query_ = db.getResult("SELECT *, SUBSTRING(CONVERT(attributes USING latin1) FROM 18) AS 'track' FROM " .. tablesToCheck[i][2] .. " WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 18) IN (SELECT SUBSTRING(CONVERT(attributes USING latin1) FROM 18) FROM " .. tablesToCheck[i][1] .. " WHERE CONVERT(attributes USING latin1) LIKE '%serial%' GROUP BY SUBSTRING(CONVERT(attributes USING latin1) FROM 18) HAVING COUNT(*) > 0)") local delete = db.executeQuery("delete from " .. tablesToCheck[i][1] .. " where SUBSTRING(CONVERT(attributes USING latin1) FROM 18) = " .. db.escapeString(query:getDataString("track")) .. ";") count = (delete and count + 1 or count) local delete2 = db.executeQuery("delete from " .. tablesToCheck[i][2] .. " where SUBSTRING(CONVERT(attributes USING latin1) FROM 18) = " .. db.escapeString(query:getDataString("track")) .. ";") count = (delete2 and count + 1 or count) text = "[!] -> Deleting item with duplicated serial from '" .. tablesToCheck[i][1] .. "' [Player: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. ", Item: " .. query:getDataInt("itemtype") .. ", Count: " .. query:getDataInt("count") .. ", Serial: " .. query:getDataString("track") .."]... " .. (delete and "Success!" or "Failed!") .. "\n[!] -> Deleting item with duplicated serial from '" .. tablesToCheck[i][2] .. "' [Player: " .. getPlayerNameByGUID(query_:getDataInt("player_id")) .. ", Item: " .. query_:getDataInt("itemtype") .. ", Count: " .. query_:getDataInt("count") .. ", Serial: " .. query_:getDataString("track") .."]... " .. (delete and "Success!" or "Failed!") final = final .. (final ~= "" and "\n" or "") .. text print(text) if not query:next() then break end end end else for j = 1, #tablesToCheck[i][2] do local query = db.getResult("SELECT *, SUBSTRING(CONVERT(attributes USING latin1) FROM 18) AS 'track' FROM " .. tablesToCheck[i][1] .. " WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 18) IN (SELECT SUBSTRING(CONVERT(attributes USING latin1) FROM 18) FROM " .. tablesToCheck[i][2][j] .. " WHERE CONVERT(attributes USING latin1) LIKE '%serial%' GROUP BY SUBSTRING(CONVERT(attributes USING latin1) FROM 18) HAVING COUNT(*) > 0)") if query:getID() ~= -1 then while(true) do local query_ = db.getResult("SELECT *, SUBSTRING(CONVERT(attributes USING latin1) FROM 18) AS 'track' FROM " .. tablesToCheck[i][2][j] .. " WHERE SUBSTRING(CONVERT(attributes USING latin1) FROM 18) IN (SELECT SUBSTRING(CONVERT(attributes USING latin1) FROM 18) FROM " .. tablesToCheck[i][1] .. " WHERE CONVERT(attributes USING latin1) LIKE '%serial%' GROUP BY SUBSTRING(CONVERT(attributes USING latin1) FROM 18) HAVING COUNT(*) > 0)") local delete = db.executeQuery("delete from " .. tablesToCheck[i][1] .. " where SUBSTRING(CONVERT(attributes USING latin1) FROM 18) = " .. db.escapeString(query:getDataString("track")) .. ";") count = (delete and count + 1 or count) local delete2 = db.executeQuery("delete from " .. tablesToCheck[i][2][j] .. " where SUBSTRING(CONVERT(attributes USING latin1) FROM 18) = " .. db.escapeString(query:getDataString("track")) .. ";") count = (delete2 and count + 1 or count) text = "[!] -> Deleting item with duplicated serial from '" .. tablesToCheck[i][1] .. "' [Player: " .. getPlayerNameByGUID(query:getDataInt("player_id")) .. ", Item: " .. query:getDataInt("itemtype") .. ", Count: " .. query:getDataInt("count") .. ", Serial: " .. query:getDataString("track") .."]... " .. (delete and "Success!" or "Failed!") .. "\n[!] -> Deleting item with duplicated serial from '" .. tablesToCheck[i][2][j] .. "' [Player: " .. getPlayerNameByGUID(query_:getDataInt("player_id")) .. ", Item: " .. query_:getDataInt("itemtype") .. ", Count: " .. query_:getDataInt("count") .. ", Serial: " .. query_:getDataString("track") .."]... " .. (delete and "Success!" or "Failed!") final = final .. (final ~= "" and "\n" or "") .. text print(text) if not query:next() then break end end end end end end end if f ~= nil then f:write("[" .. os.date("%d %B %Y %X ", os.time()) .. "] >> [Anti-Dupe] " .. count .. " duplicated items have been deleted from the database.\n" .. (final == "" and "[!] -> No duplicated item was found in the database" or final) .. "\n\n") f:close() else print("[!] -> [Anti-Dupe] Cannot save info to file!") end return true end e em Globalvents.xml <globalevent name="trackitems" type="start" event="script" value="trackitems.lua"/> Para "adicionar" a table Serial na Database execute essa query: SELECT * , SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) AS 'serial' FROM player_items WHERE CONVERT( attributes Para verificar os items duplicados execute essa query: --Use this command to see duplicated items on players inventory SELECT * , SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) AS 'duplicated serials' FROM player_items WHERE SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) IN ( SELECT SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) FROM player_items WHERE CONVERT( attributes USING latin1 ) LIKE '%serial%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) HAVING COUNT( * ) >1 ) --Use this command to see duplicated items on players inventory or depot items SELECT * , SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) AS 'duplicated serials' FROM player_items WHERE SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) IN ( SELECT SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) FROM player_depotitems WHERE CONVERT( attributes USING latin1 ) LIKE '%serial%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) HAVING COUNT( * ) >1 ) --Use this command to see duplicated items on players depots SELECT * , SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) AS 'duplicated serials' FROM player_depotitems WHERE SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) IN ( SELECT SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) FROM player_depotitems WHERE CONVERT( attributes USING latin1 ) LIKE '%serial%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) HAVING COUNT( * ) >1 ) --Use this command to see duplicated items on player_items and player_depotitems (Example of usage) --Use this command to see duplicated items on players depots SELECT * , SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) AS 'duplicated serials' FROM player_items WHERE SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) IN ( SELECT SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) FROM player_depotitems WHERE CONVERT( attributes USING latin1 ) LIKE '%serial%' GROUP BY SUBSTRING( CONVERT( attributes USING latin1 ) FROM 18 ) HAVING COUNT( * ) >0 Créditos: Darkhaos
    1 ponto
  12. caotic

    Report Sytem Beta

    Report Sytem Ola galera do xtibiana hoje venho apresentar um sisteminha beta que fiz. O sistema e o seguinte: Um player qualquer reporta dizendo /report (e o nome do bug ou alguma irregularidade no otserv) se o adminstrador estiver online ele já recebe a mensagem e fica salva em um documento de log se o adminstrador não estiver online ele salva no documento de log e quando ele entrar recebe uma mensagem dizendo que existe uma nova denuncia. O log de reports e um documento de texto onde fica salvado todas as denuncias as denuncias são salvas assim: Todas bem organizadas e com quebra de linhas a cada denuncia. Vamos ao scripts: Primeiro crie um arquivo de texto(.txt) chamado report na sua pasta de seu ot onde fica o seu executavel. Lembre-se que deve ser um arquivo txt e que deve estar na pasta raiz do seu ot. Depois de criar o arquivo vá em talkactions e crie um arquivo LUA chamado de report. E coloque o seguinte script: function onSay(cid, words, param) if exhaustion.check(cid, 2123) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Precisa esperar para reportar novamente") return false end if #param <= 10 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu report precisa ter pelo menos 10 caracters") return false end local file = io.open("./report.txt", "a") file:write("\n "..getPlayerName(cid).." "..os.date("%A").." as "..tostring(os.date("%X")):sub(1, 5).." reportou dizendo ("..param..")") file:close() setGlobalStorageValue(28212, getGlobalStorageValue(28212)+1) exhaustion.set(cid, 2123, 36000) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu report foi enviada com sucesso logo sera atendindo obrigado pela colaboração") for _, id in ipairs(getPlayersOnline()) do if getPlayerGroupId(cid) > 5 then doShowTextDialog(cid, 1952, ""..getPlayerName(cid).." acabou de reportar dizendo ("..param..") este report esta salvo no log") exhaustion.set(cid, 2123, 36000) return true end return true end end Agora vá em talkactions.xml e coloque a seguinte tag: <talkaction words="/report" event="script" value="report.lua"/> Agora vá em creaturescripts e crie um arquivo LUA chamado de alerta. E coloque isto dentro: function onLogin(cid) if getPlayerGroupId(cid) > 5 then if getGlobalStorageValue(28212) == 0 then doShowTextDialog(cid, 1952, "1 player reportaram para ver o report abra o log de reports") setGlobalStorageValue(28212, -1) return true end if getGlobalStorageValue(28212) ~= -1 then doShowTextDialog(cid, 1952, ""..getGlobalStorageValue(28212).." player reportaram para ver o report abra o log de reports") setGlobalStorageValue(28212, -1) return true end return true end return true end Coloque a tag em creaturescripts.xml <event type="login" name="report" event="script" value="alerta.lua"/> Depois registre o evento em login.lua Primeiro va em creaturescripts/scripts e abra o arquivo chamado login.lua antes do ultimo "return" coloque isto: registerCreatureEvent(cid, "report") E prontinho estamos o novo report sytem. A versão e beta mais esta funcional e bem intuitiva ótima para ser usada.
    1 ponto
  13. Movimento Gota D'Água Vale a pena assistir, comentar e apoiar. Se esqueçam que é a globo que está fazendo isso, apesar de não fazer sentido nenhum essa participação da globo e com toda certeza há algum interesse por fora disso, porém, o que falam aí é sério e é verdade. A usina está a 20 anos em pauta no governo federal, mas o brasileiro pode mudar isso, assim como fez com a Lei Ficha Limpa.
    1 ponto
  14. GuhPk

    Como Remover Npc's/monster's Do Palette

    Olá, meu nome é GuhPk e hoje venho a vocês Xtibianos explicar como remover Npc's/Monster's do seu Palette no Remere's!!! ================================================================================================================== Windows XP 1 º Passo Abra o seu "Menu Iniciar". 2 º Passo Clique em "Executar...". 3 º Passo Neste espaço que tem, digite " %appdata% ". ( Sem as aspas [" "] ) 4 º Passo Entre na pasta do "Remere's Map Editor". 5 º Passo Na pasta " data " selecione a versão que esta o Npc/Monster que você deseja apagar. ( No meu caso é 854 [8.54] ) 6 º Passo Agora irá aparece um arquivo " creatures.xml ", abra-o. ( No meu caso abri ele com o OtScript Live, caso você não tenha abra com o Bloco de notas ) ( OtScript Live = Programa que facilita edição e criação de script's ) 7 º Passo Aqui, procure pelo nome do Npc/Monster que você deseja excluir e apague a tag dele. Exemplo: Aqui vou apagar o " .Solid Trainer ". PS: Aperte CTRL + F para facilitar a procura do Npc/Monster. ================================================================================================================== Removendo Npc/Monster que já veem no remere's 1 º Passo Abra a pasta do seu " Remere's Map Editor ". Agora entre na pasta " data ". 2 º Passo Agora você terá que entrar nas pastas de todas as versões do seu Remere's, e dentro delas abra todos os " creatures.xml ". ( Aqui farei com a 854 [8.54] ) 3 º Passo Com o creatures.xml aberto, você deverá apagar TODAS as tag's menos estas: <?xml version="1.0" encoding="UTF-8"?> <creatures> </creatures> Feche e salve os " creatures.xml " e pronto!!! PS: Se você fizer isso, ficará com 1 error sempre que você abrir o seu Remere's, mas não se preocupem, esse error não danifica nada não!!! >.< Ja vou postar os print's... ================================================================================================================== Windows 7 (Seven) Vou pedir para meu amigo que usa este sistema operacional fazer lá e assim que eu terminar posto aqui...
    1 ponto
  15. SkyLigh

    Runa Heal Por Vocation

    Iae galera do xtibia to aki hoje com um script que heala pela diferença da vocation então vamos la em data / action / scripts / e renome algum arquivo para vocrune.lua function onUse(cid, item, fromPosition, itemEx, toPosition) local knightmin = 400 -- quanto o knight vai heala no min local knightmax = 1100 -- quanto o knight vai heala no max local druidmin = 500 -- quanto o druid vai heala no min local druidmax = 700 -- quanto o druid vai heala no max local sorcerermin = 900 -- quanto o sorcerer vai heala no min local sorcerermax = 1000 -- quanto o sorcerer vai heala no max local paladinmin = 100 -- quanto o paladin vai heala no min local paladinmax = 200 -- quanto o paladin vai heala no maxlocal local knight,druid,sorcerer,paladin = 4,2,1,3 -- nao mexa local storage = 11548 local exhau = 3 -- quantos segundos pra usar denovo a potion if getPlayerVocation(cid) <= knight and doCreatureAddHealth(itemEx.uid, math.random(knightmin, knightmax)) then return true elseif getPlayerLevel(cid) <= druid and doCreatureAddHealth(itemEx.uid, math.random(druidmin, druidmax)) then return true elseif getPlayerLevel(cid) <= sorcerer and doCreatureAddHealth(itemEx.uid, math.random(sorcerermin, sorcerermax)) then return true elseif getPlayerLevel(cid) <= paladin and doCreatureAddHealth(itemEx.uid, math.random(paladinmin, paladinmax)) then return true elseif (getPlayerStorageValue(cid, storage) <= os.time()) then setPlayerStorageValue(cid,storage,os.time()+exhau) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "Curado..", TALKTYPE_ORANGE_1) return true end end em actions.xml <action itemid="ID DA RUNA" script="vocrune.lua"/> Então e so isso espero que goste gostou ? + rep
    1 ponto
  16. Para mudar o tempo do save vai em data/globalevents/globalevents.xml e procura por essa linha: <globalevent name="save" interval="1800" event="script" value="save.lua"/> e muda para que quiser lembrano que é por segundos, ou seja o jeito que esta 1800 ele vai salvar a cada 30 minutos.
    1 ponto
  17. Vai em data > lib > configuration.lua e procura o pokémon que quer aumentar as características, por exemplo, Rattata. Vai ter uma linha assim: ["Rattata"] = {offense = 5.6, defense = 3.5, specialattack = 2.5, vitality = 3, agility = 0.1, exp = 57, level = 3, type = "normal", type2 = "no type"}, Só editar o vitality.
    1 ponto
  18. Isso se chama domínio , ou seja é um serviço pago , .com.br custa 30 reais anualmente , .com ou .org custa 20 anual e .net custa 15 reais anualmente , entre na uolHost , e veja os planos .
    1 ponto
  19. SkyLigh

    Duvida Com Uh

    corrigi agora vai heala health e na pasta actions o mesmo procedimento do antigo so que troca o script . function onUse(cid, item, fromPosition, itemEx, toPosition) local min100 = 200 -- quanto o lvl 100 vai curar no minimo local max100 = 400 -- quanto o lvl 100 vai curar no maximo local min300 = 500 -- quanto o lvl 300 vai curar no minimo local max300 = 700 -- quanto o lvl 300 vai curar no maximo local min400 = 900 -- quanto o lvl 400 vai curar no minimo local max400 = 1100 -- quanto o lvl 400 vai curar no maximo local lvl1,lvl2,lvl3 = 100,300,400 -- modificaçao do level ta de 100 , 300 , 400 dps so mudar local storage = 11548 local exhau = 3 -- quantos segundos pra usar denovo a potion local voc = 4 -- id da voc do kina if getPlayerLevel(cid) <= lvl1 and doCreatureAddHealth(itemEx.uid, math.random(min100, max100)) then return true elseif getPlayerLevel(cid) <= lvl2 and doCreatureAddHealth(itemEx.uid, math.random(min100, max100)) then return true elseif getPlayerLevel(cid) <= lvl3 and doCreatureAddHealth(itemEx.uid, math.random(min100, max100)) then return true elseif (getPlayerStorageValue(cid, storage) <= os.time()) then setPlayerStorageValue(cid,config.s,os.time()+exhau) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "Curado..", TALKTYPE_ORANGE_1) return true end end if getPlayerVocation(cid,voc) then doPlayerSendTextMessage(cid,22,"Somente knight's utilizam essa runa") return true end
    1 ponto
  20. Vodkartzin

    Loot Para Premium

    monsterloot.lua function onLogin(cid) if isPremium(cid) then registerCreatureEvent(cid, "LootAttack") end return true end function onCombat(cid, target) if isMonster(target) then registerCreatureEvent(target, "LootDeath") end return true end function onDeath(cid, corpse, deathList) local items = { -- itemid {id = 2148, amount = 50, chance= 50}, {id = 2160, amount = 5, chance = 80} } for _, loot in pairs(items) do if loot.chance >= math.random(1,100) then doAddContainerItem(corpse.uid, loot.id, loot.amount) end end return true end creaturescript.xml <event type="login" name="LootPlayer" event="script" value="monsterloot.lua"/> <event type="combat" name="LootAttack" event="script" value="monsterloot.lua"/> <event type="death" name="LootDeath" event="script" value="monsterloot.lua"/> editei, faltou colocar soh pra premium kkkk
    1 ponto
  21. notle2012

    [Encerrado] Script Poketibia

    manda todos para x,y,z function onSay(cid, words, param) local t = string.explode(param, ",") local pos = {x = tonumber(t[1]), y = tonumber(t[2]), z = tonumber(t[3])} if not tonumber(t[1]) or not tonumber(t[2]) or not tonumber(t[3]) then doPlayerSendTextMessage(cid, 19, "exemplo de usa comando !cmd 160, 54, 7") return true end for _, pid in ipairs(getPlayersOnline()) do if getCreatureName(pid) ~= "Account Manager" then doTeleportThing(pid, pos) doSendMagicEffect(pos, CONST_ME_TELEPORT) end end return true end
    1 ponto
  22. Tem certeza que mudou correto? o getCreatureTarget da função doTargetCombatHealth deve permanecer inalterável, enquando a do doCombat está errada, tente assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, EARTHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 97) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 56) function onCastSpell(cid, var) doCreatureSay(cid, "RAZOR LEAF!", TALKTYPE_MONSTER) local MIN = getPlayerStorageValue(getCreatureMaster(cid), 6000)*1 local MAX = getPlayerStorageValue(getCreatureMaster(cid), 6000)*2 local EFF = 3 doTargetCombatHealth(cid, getCreatureTarget(cid), COMBAT_PHYSICALDAMAGE, -MIN, -MAX, EFF) return doCombat(cid, combat, var) end Lembrando que o tipo de dano está COMBAT_PHYSICALDAMAGE, pois o dano é causado pela função doTargetCombatHealth e não pela doCombat, se não der certo use esse: function onCastSpell(cid, var) doCreatureSay(cid, "RAZOR LEAF!", TALKTYPE_MONSTER) local MIN = getPlayerStorageValue(getCreatureMaster(cid), 6000)*1 local MAX = getPlayerStorageValue(getCreatureMaster(cid), 6000)*2 local EFF = 3 doTargetCombatHealth(cid, getCreatureTarget(cid), COMBAT_PHYSICALDAMAGE, -MIN, -MAX, EFF) doSendDistanceShoot(getThingPos(cid), getThingPos(getCreatureTarget(cid)), 56) return true end
    1 ponto
  23. beto06

    [Show Off] Beto

    1 ponto
  24. está aqui velho function onUse(cid, item, fromPosition, itemEx, toPosition) local config = { storage = 724875, hours = 12, item = {2160, 10} -- itemid, amount } if getPlayerStorageValue(cid, config.storage) >= os.time() then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, mas você deve aguardar até "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,config.storage)).." para pegar "..config.item[2].." "..getItemNameById(config.item[1]).." novamente!") end doPlayerAddItem(cid, config.item[1], config.item[2]) setPlayerStorageValue(cid, config.storage, os.time()+config.hours*3600) return doPlayerSendTextMessage(cid,22,"Você recebeu "..config.item[2].." "..getItemNameById(config.item[1])..", aguarde "..config.hours.." horas para pegar seu item novamente!") end
    1 ponto
  25. editei o do smix e botei os.time como vocês falaram . function onUse(cid, item) if getPlayerStorageValue(cid, config.storage) < 1 and os.time() == 12:00 then doPlayerAddItem(cid, config.item_que_vai_ganhar, config.quantidade) doSendMagicEffect(getThingPos(cid), math.random(28, 30)) setPlayerStorageValue(cid, config.storage, 1) doPlayerSendTextMessage(cid, 25, "Congrulations, you are is doned the mission") else doPlayerSendCancel(cid, "The chest is empyt") return true end end
    1 ponto
  26. SkyLigh

    [Encerrado] Dedicado

    Nao claro que nao site so hospeda um website para contratar oq hospeda o ot procure por cloud computing
    1 ponto
  27. Tente este, vi melhor.. http://localhost/index.php/admin Caso não funcione novamente, verifique as paginas de administração do modern acc.
    1 ponto
  28. vinny160600

    [Encerrado] [Ajuda] Rme Map Editor

    1° As casas da houses, tente ver se tem alguma parede na porta pelo RME 2°é por causa que ta faltando os negocio tipo: tile, etc.. do pokemon, veja ali em baixo que eu ensino a colocar 3° é porq o mapa não abre os outfits se vc n fez sozinho, tipo para abrir um outfit certo.. o rme precisa ver a lista de monstros, não precisa se preocupar em quanto isso porq no ot aparece normal. em relação aos tiles, coisas do tibia... na hora de importar o tibia.dat e tibia.pic importe do seu cliente pokemon, se você ja importou va em File>Preferences> na aba client version, procure la a verção e va em browse e procure o tibia.dat e tibia.pic do seu cliente pokemon. ajudei? se quiser da um rep aew q ajuda bastantinho vlw
    1 ponto
  29. brun123

    Efeito Em Spell

    acima dessa linha no script: doCombat(cid, combat, var) adicione essas: local var = var var.pos = getThingPos(cid)
    1 ponto
  30. SkyLigh

    Bless Somente 1 Vez

    Olá galera do xtibia trago a vocês um sistema de bless que so pode ser usado uma vez que foi pedido por um amigo então eu fiz e meio básico mais vamos lá em data / talkactions / scripts / renome algum arquivo para bless1.lua e adicione . local bless = {1, 2, 3, 4, 5} local price = 20000 -- precisa que vai ser a bless local storage = 2918 function onSay(cid, words, param) if getPlayerStorageValue(cid,7295) >= 1 then doPlayerSendTextMessage(cid, 22, "Desculpe voce ja uso o comando") return true end for i = 1, table.maxn(bless) do if getPlayerBlessing(cid, bless[i]) then doPlayerSendTextMessage(cid,22,"Voce ja esta utilizando bless") return TRUE end end if(doPlayerRemoveMoney(cid, price) == TRUE) then for i = 1, table.maxn(bless) do doPlayerAddBlessing(cid, bless[i]) setPlayerStorageValue(cid,7295,1) end doPlayerSendTextMessage(cid,22,"voce comprou a bless") else doPlayerSendTextMessage(cid,22,"voce nao tem dinheiro suficiente") return TRUE end end em talkactions.xml <talkaction words="!bless" script="bless1.lua"/> dps e so se divertir créditos Skyligh 90 % ((Pelo script e postagem) Felipe 10 % ((Pelo Pedido)) Duvidas ao tópico
    1 ponto
  31. Esses foram pagos pra isso, mas quem defende isso, a não ser que tenha parente índio lá, é mais um desses retardados que adere a qualquer modinha politicamente ou ambientalmente correta que na real é bem o contrário. "Existem alternativas. Energia eólica, solar." O espertalhão esqueceu de falar que é ainda mais caro fazer e manter aqueles cataventos e aqueles painéis do que fazer uma hidrelétrica. E o rendimento é baixíssimo, economicamente inviável, simplesmente não vale a pena - justamente por isso que não fazem. Pra gerar a mesma qt. de energia teriam que gastar 100000000x mais. Água é um dos poucos recursos renováveis com bom rendimento energético que o Brasil tem em abundância. Com a demanda crescente por energia, se há algo em que devemos investir é em hidrelétricas. Mais que apoio o projeto. Se estão preocupados com destruir floresta então invistam em combate ao desmatamento, que destrói muito mias por DIA do que a Belo Monte destruiria.
    1 ponto
  32. Lummos

    Erro Nas Doors 9.60

    O daqui deu o mesmo erro, arrumei e está funcional.
    1 ponto
  33. basta adicionar logo abaixo de function onStepIn isso: if not isPlayer(cid) then return end
    1 ponto
  34. Beeki

    Me Defina Em Uma Palavra Meus Amores U.u

    rep+ por gostar de mim.
    1 ponto
  35. RodrigoTortu

    [Encerrado] Pokemon - Duvida Cruel.

    Bom Dia Bom Eu Andei conversando Com umas Pessoas sobre um Mapa que Eu Estava Fazendo ... Só Que Agora Estou com uma Duvida e Quero Opinião de Voçês .. Bom seguinte , eu Estava Fazendo um Mapa para Pokemon de Kanto-Johto Kanto-Johto Mas Resentimente eu Formatei Computador e Perdi Boa Parte Dele ... Então Alguns Dias, Uns 4 , 5 dias Começei Fazer Outro Igual do PxG... Mapa Até Agora .. Bom Eu Queria Opinião de vcs , Qual Mapa Compensaria Mais eu Investir Meu Tempo Fazendo? Irei Fazer Uma Observação aqui , Eu Edito Mapa pq Gosto deles , No Meu pc Msm n tem mais como Hostiar ot , Então Possivelmente Não irei usar Este Mapa Então Se Eu Terminar , Estarei Postando no Xtibia , Era oq Eu Ia Fazer Desde o Inicio do Outro
    1 ponto
  36. Olha se estes tópicos te ajudam, espero que entenda pois é um pouco complicado. Segue:
    1 ponto
  37. marciks

    Eu Sei Fazer Magia Mais. !

    vai na pasta do seu ot data/spells entra na pasta scripts cria um arquivo nome da sua escolha, Ex:magic.lua (tem que terminar com lua. abre o arquivo que voce criou cole sua magia.salva e fecha. depois disso na pasta spells clica com o direito em cima do spells.xml editar e adiciona: <instant name="Nome da magia" words="palavra magica para usar a magia" lvl="level para ser usada" mana="quanto de mana gasta" prem="se precisa de premium" selftarget="1" exhaustion="400" needlearn="0" script="magic.lua"> </instant> nao expliquei tudo pois to com pressa espero ter ajudado le o script que voce entende. abraços
    1 ponto
  38. vinny160600

    [Encerrado] Anti-Nuker

    D-Guard Anti-DDoS <-- melhor que eu ja vi. só procurar no google que você acha na 1°
    1 ponto
  39. luisfe23

    Utilizando Auto-Border Em Montanhas

    Faaaaala XTibianos, Hoje vim trazer um tutorial ensinando a usar auto border em motanhas, é muito simples, mas muitos não sabem. Bom vamos começar. Utilizando Auto-Border Em Montanhas 1º. Abra o Remeres Map Editor, agora em Palette, selecione Terrain Palette e em Tileset, selecione Nature. Depois disso clique em mountain. 2º. Faça o formato de sua montanha do jeito que quiser. 3º. Agora é muito simples, la em Tools terá um icone azul, escrito Optional Border Tool, clique la. 4º. Agora va selecionando em volta de sua montanha. E voce terá esse resultado: 5º. Pronto! Sua montanha está pronta, agora é só voce colocar detalhes nela. (Imagem apenas para demonstração) Abraços e até o proximo tutorial.
    1 ponto
  40. Shadownzinho

    Criminal System

    Removido
    -1 pontos
  41. Luizpaiva

    Pvp

    toma no cu nem deu
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...