Jump to content

Search the Community

Showing results for tags 'script'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Recursos
    • Suporte
    • Pedidos
    • Downloads
  • OFF-Topic

Categories

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sou

Found 14.601 results

  1. Olá galera do XT, estou trazendo aqui, meu primeiro NPC, um NPC que teleporta se tiver o item X, tudo configurável! Vá em data/npcs/scripts e copia e cola um arquivo.lua renomeia ele para tp.lua e cola o seguinte código: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end ------------#Configurações#---------------- local config = { tp1 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir". tp2 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir2". tp3 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir3". item1 = 2160, -- id do item 1 item2 = 2148, -- id do item 2 item3 = 2158, -- id do item 3 qtd1 = 2, -- quantidade a ser removida do item 1 qtd2 = 5, -- quantidade a ser removida do item 2 qtd3 = 7, -- quantidade a ser removida do item 3 } ----------#Fim das configurações#---------- ------------#*#Início do NPC#*#-------------- if msgcontains(msg, 'ir1') then -- o que ele tem que falar. if doPlayerRemoveItem(cid, config.item1, config.qtd1) then doTeleportThing(cid, config.tp1) -- não mexa. else selfSay("Você não tem "..config.qtd1.." {"..getItemNameById(config.item1).."s}.", cid) -- msg que retorna caso ele não tenha o item. end elseif msgcontains(msg, 'ir2') then -- o que ele tem que falar. if doPlayerRemoveItem(cid, config.item2, config.qtd2) then doTeleportThing(cid, config.tp2) -- não mexa. else selfSay("Você não tem "..config.qtd2.." {"..getItemNameById(config.item2).."s}.", cid) -- msg que retorna caso ele não tenha o item. end elseif msgcontains(msg, 'ir3') then -- o que ele tem que falar. if doPlayerRemoveItem(cid, config.item3, config.qtd3) then doTeleportThing(cid, config.tp3) -- não mexa. else selfSay("Você não tem "..config.qtd3.." {"..getItemNameById(config.item3).."s}.", cid) -- msg que retorna caso ele não tenha o item. end end ------------#*#Fim do NPC#*#-------------- return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Feito isso, vá em data/npcs copia um arquivo.xml e renomeia ele para Teleport. Abra com o bloco de notas ou outro editor, e cole este arquivo: <?xml version="1.0" encoding="ISO-8859-1"?> <npc name="Gerson" script="data/npc/scripts/tp.lua" walkinterval="3000" floorchange="0"> <health now="100" max="100"/> <look type="367" head="0" body="38" legs="114" feet="94" addons="0"/> <parameters> <parameter key="message_greet" value="Eu posso levar você para {ir1}, {ir2}, {ir3}."/> <parameter key="message_farewell" value="Adeus!"/> <parameter key="message_walkaway" value="Que bons ventos o levem!"/> </parameters> </npc> Configurando o arquivo do npc: Tudo é feito aqui: ------------#Configurações#---------------- local config = { tp1 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir". tp2 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir2". tp3 = {x=100, y=100, z=7}, -- coordenadas pra onde ele irá ao falar aonde está "ir3". item1 = 2160, -- id do item 1 item2 = 2148, -- id do item 2 item3 = 2158, -- id do item 3 qtd1 = 2, -- quantidade a ser removida do item 1 qtd2 = 5, -- quantidade a ser removida do item 2 qtd3 = 7, -- quantidade a ser removida do item 3 } ----------#Fim das configurações#---------- Em tp1, tp2, tp3 coloque a posição de cada lugar que ele será mandado. Em item1, item2, item3 coloque o ID do item que você quer que seja removido para teleportar o jogador. Em qtd1, qtd2, qtd3 coloque apenas a quantidade a ser removida. Bom galera, este é meu primeiro script espero que gostem!! @Edit Hoje dei uma editada no NPC e removi 10 linhas. Gostaria que me dessem ideias de como melhorar este NPC, ou criar outros.
  2. Kevin vem 69

    Cura em area

    Ola boa tarde estou precisando de uma spell de cura em area que N cure os bichos apenas player e sumons, alguem teria por aqui ???
  3. Bom gente... Eu queria pedir um script que fosse assim !status me, ou !me, para informar, o level, a mana, o HP, dinheiro e outras coisas se tiver da pessoa... É bem simples, mas eu não sei mexer muito com scripts, então nem sei fazer! TFS 0.4 8.6 Eu ja vi um script assim pelo xtibia, mas deu erro no meu server e tive que reseta-lo... Por favor façam um sem erros :s Obrigado! REP+
  4. Bom, vim trazer a vocês o sistema de potion igual ao da pxg... Gostaria de falar que peguei esse sistema do servidor PDA e so mudei umas coisinhas pra ele healar o pokemon do mesmo jeito que o da pxg Actions/scripts/potion.lua: Actions/actions.xml: OBS: Consertem os id's dos items e as cores do animated text. Creditos: Slicer, Brun123, eu e qm ajudo fazer o sistema original do PDA
  5. -= Advanced Reset System 2.0 =- By: MarcelloMkez Fala galerinha, to aqui dinovo , mas agora e com a versão 2.0 do meu 'Advanced Reset System'. E como prometido, trazendo algumas novidades: _________________________________________________________________________________________________________________________________ - Resets agora armazenados diretamente na 'DataBase', acabando com o sistema de Storages, e com o problema dos resets atrasados no look; - Opções para Abilitar e Desabilitar Condições como por exemplo: 'look = true' , [true,false] configurando como achar melhor; - E agora '[sTAGES]', para 'premmy' (Premium Account) e 'free' (Free Account); - Instala o System e cria a Tabela de Resets com o comando "/installreset"; OBS: Sistema testado em 'Mysql' não tenho certeza si funciona em 'sql'; e Testando em: 8.50 (TFS 0.3.6) e 8.6 (TFS 0.4.0) __________________________________________________________________________________________________________________________________ Vá em data/Talkactions, e crie um arquivo .lua e nomeie para advancedResetSystem.lua e Adicione Isso: --[[ <(Advanced Reset System 2.0)> Autor: MarcelloMkez. Contato: ([email protected]) Versão: 2.0 Testado em: 8.50 e 8.60 TFS: 0.3.6 and 0.4.0 Fórum: http://www.xtibia.com/forum/topic/142463-advanced-reset-system-20/ -=[Características]=- ~( Versão 2.0 )~ - Resets agora Armazenados na DataBase; (Sem Valor de Storage) - Instala o System e cria a Tabela de Resets com o comando "/installreset"; - Resets no Look do jogador ex: 22:10 You see Marcello [Reset 2] (Level 8). He is an elder druid.; - [sTAGES] para "Premium Account" e "Free Account"; ]] --=[Functions]=-- -- installReset()' [instala o Sistema.] -- tableResetInstall()' [Verifica Se o Sistema ja foi instaladao.] -- nowReseting()' [Verifica, retorna o erro ou reseta.] -- getPlayerReset(cid)' [Pega numero de resets do player.] -- checLevelStageReset(cid)' [Verifica o Level para Resetar.] -- newReset(cid)' [Verifica todas as Condições de Reset.] -- addValue(value)' [Adiciona numero de resets.] --=[Comandos de Jogadores]=-- -- "/installreset" -- Só será usado uma vez, para instalar o sistema. -- "!resetar" -- Para Resetar. function onSay(cid, words, param) if words =="!resetar" then --[ Condições de Reset ] -- local coNdConf = { needPz = true, -- Precisa estar em Pz pra resetar? [true, false] needPa = false, -- Precisa ser Premium Account Pra resetar? [true, false] withe = false, -- Players com Pk Withe podem resetar? [true, false] red = false, -- Players com Pk Red pode resetar? [true, false] battle = false, -- Players precisão estar sem battle pra resetar? [true, false] teleport = true, -- Teleportar Player para o templo após resetar? [true, false] look = false, -- Aparecer Resets no Look do Player? [true, false] pid = getPlayerGUID(cid), -- Não Mexer. --[ Configurações do Reset ] -- resetConf = { Level = 350, -- Level Necessário para Resetar. [Valor] backLvl = 8, -- Level que voltará após o Reset. [Valor] time = 5, -- Tempo para o Player deslogar ao resetar, em segundos. [Valor] }, } --[[>> STAGES <<]]-- x=true;X=true -- Não Mexer. local stage = {Abilitar = {x}, Desabilitar = {}, --<< Abilitar Stages?? >>-- [{x};{}] -- [RESETS] | [PREMMY] | [FREE] stage1= {resets= 4, premmy= 330, free= 350}, stage2= {resets= 9, premmy= 340, free= 355}, -- EXPLICANDO e Configurando stages. (Se estiver Abilitado [Abilitar = {x}]) stage3= {resets= 14, premmy= 355, free= 360}, -- resets = Número de resets para o Stage; stage4= {resets= 19, premmy= 360, free= 365}, -- premmy = Level necessário para Premium Accounts; stage5= {resets= 24, premmy= 370, free= 380}, -- free = Level necessário para Free Accounts; stage6= {resets= 29, premmy= 380, free= 390}, -- Coloque em Ordem... stage7= {resets= 35, premmy= 400, free= 410}, -- [OBS: MARQUE UM "X" PARA ABILITAR OU DESABILITAR OS STAGES] stage8= {resets= 40, premmy= 410, free= 440}, -- EX: para desabilitar mude: Abilitar = {}, Desabilitar = {x} stage9= {resets= 45, premmy= 450, free= 450}, stage10={resets= 50, premmy= 465, free= 465}, } --[[>> FIM STAGES <<]]-- --=[Pega Valor de Resets]=-- function getPlayerReset(cid) local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";") rss = qr:getDataInt("reset", coNdConf.pid) if rss < 0 then rss = 0 end return rss end local success = " ~~ Sucesso! ~~ \nVocê tem agora "..(getPlayerReset(cid)+1).." resets. \nVocê será deslogado em "..coNdConf.resetConf.time.." segundos." ;err = doPlayerSendTextMessage local qrt = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..coNdConf.pid..";");rss_db = qrt:getDataInt("reset", coNdConf.pid) local lvl_query = "UPDATE `players` SET `level` = "..(coNdConf.resetConf.backLvl)..", `experience` = 0 WHERE `id`= " .. coNdConf.pid .. ";" local reset_query = "UPDATE `players` SET `reset` = "..(getPlayerReset(cid)+(1)).." WHERE `id`= " .. coNdConf.pid .. ";" local nolook_query = "UPDATE `players` SET `description` = '' WHERE `players`.`id`= " .. coNdConf.pid .. ";" local look_query = "UPDATE `players` SET `description` = ' [Reset "..(getPlayerReset(cid)+(1)).."]' WHERE `players`.`id`= " .. coNdConf.pid .. ";" --=[Reseta]=-- function addValue(value) if coNdConf.look == false then doRemoveCreature(cid) db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(nolook_query) else doRemoveCreature(cid) db.executeQuery(lvl_query);db.executeQuery(reset_query);db.executeQuery(look_query) return LUA_NO_ERROR end end function nowReseting() if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." level's para você Resetar. -") return true end if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then doPlayerPopupFYI(cid, success) addEvent(addValue, coNdConf.resetConf.time*1000, value) else doPlayerPopupFYI(cid, success) addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid))) addEvent(addValue, coNdConf.resetConf.time*1000, value) return true end end --[sTAGES Nao mexer em nada.]-- function checkLevelStageReset(cid) local stages = { {resets= stage.stage1.resets, premmy= stage.stage1.premmy, free= stage.stage1.free}, {resets= stage.stage2.resets, premmy= stage.stage2.premmy, free= stage.stage2.free}, {resets= stage.stage3.resets, premmy= stage.stage3.premmy, free= stage.stage3.free}, {resets= stage.stage4.resets, premmy= stage.stage4.premmy, free= stage.stage4.free}, {resets= stage.stage5.resets, premmy= stage.stage5.premmy, free= stage.stage5.free}, {resets= stage.stage6.resets, premmy= stage.stage6.premmy, free= stage.stage6.free}, {resets= stage.stage7.resets, premmy= stage.stage7.premmy, free= stage.stage7.free}, {resets= stage.stage8.resets, premmy= stage.stage8.premmy, free= stage.stage8.free}, {resets= stage.stage9.resets, premmy= stage.stage9.premmy, free= stage.stage9.free}, {resets=stage.stage10.resets, premmy=stage.stage10.premmy, free=stage.stage10.free}, } local resets = getPlayerReset(cid) for i, tab in ipairs(stages) do if resets <= tab.resets then coNdConf.resetConf.Level = isPremium(cid) and tab.premmy or tab.free break end end if (getPlayerLevel(cid) < coNdConf.resetConf.Level) then err(cid, MESSAGE_STATUS_CONSOLE_BLUE, "- Level Necessário Para o Reset ["..coNdConf.resetConf.Level.."]. Faltam "..coNdConf.resetConf.Level-getPlayerLevel(cid).." level's para você Resetar. -") return TRUE end if getPlayerLevel(cid) >= coNdConf.resetConf.Level and (coNdConf.teleport == false) then doPlayerPopupFYI(cid, success) addEvent(addValue, coNdConf.resetConf.time*1000, value) else doPlayerPopupFYI(cid, success) addEvent(addValue, coNdConf.resetConf.time*1000, value) addEvent(doTeleportThing, coNdConf.resetConf.time*900, cid, getTownTemplePosition(getPlayerTown(cid))) return true end end function newReset(cid) if(coNdConf.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == LUA_ERROR) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar em Protection Zone Para Resetar. -") return TRUE end if(coNdConf.needPa == true) and not isPremium(cid) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa ser Premium Account para Resetar. -") return TRUE end if(coNdConf.withe == false) and (getCreatureSkullType(cid) == 3) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Withe. -") return TRUE end if(coNdConf.red == false) and (getCreatureSkullType(cid) == 4) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você não pode resetar em condições de PK Red. -") return TRUE end if(coNdConf.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then err(cid,MESSAGE_STATUS_CONSOLE_BLUE,"- Você Precisa estar sem Battle para Resetar. -") return TRUE end local xy = {true,false} table.insert(stage.Abilitar, false) table.insert(stage.Desabilitar, false) if stage.Abilitar[1] == xy[1] and stage.Desabilitar[1] == xy[2] then checkLevelStageReset(cid) elseif stage.Abilitar[1] == xy[2] and stage.Desabilitar[1] == xy[1] then nowReseting() else doPlayerPopupFYI(cid, "LUA_ERROR; Configure corretamente o Sistema de STAGES!") end return true end function tableResetInstall() print(not rss_db and LUA_ERROR or "Tabela de Resets: Instalada ... [success] ") addEvent(newReset, 1000, cid) return false end if tableResetInstall() then end end --=[install System]=-- function installReset() if db.executeQuery("ALTER TABLE `players` ADD reset INT(11) NOT NULL DEFAULT 0;") then print("[MarcelloMkez] -= Advanced Reset System 2.0 por DataBase =- Instalado com sucesso!") return TRUE end print('[Advanced Reset System/MarcelloMkez] Não foi possível instalar o Sistema.') return FALSE end local tt = { "Preparando Instalação...", "Instalando: TableReset Db...", "Instalando: getPlayerReset()...", "Instalando: addValue()...", "Instalando: checkLevelStageReset()...", "Instalando: newReset() and nowReseting()...", "Finalizando Instalação...", "...", success = { "Iniciando...", "function: TableReset Db... [success]", "function: getPlayerReset()... [success]", "function: addValue(value)... [success]", "function: checkLevelStageReset()... [success]", "function: newReset() and nowReseting()... [success]", "Fim da Instalação. ", "by: ~~ MarcelloMkez ~~ \nContato: [email protected]", inst = {"MarcelloMkez","Advanced Reset System 2.0 por DataBase" }, }, } if words == "/installreset" and getPlayerAccess(cid) >= 3 then function install() if installReset() then print(""..tt.success[7].."") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,""..tt.success[8].."") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] -="..tt.success.inst[2].."=- Instalado com sucesso!") else print("["..tt.success.inst[1].."] FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "["..tt.success.inst[1].."] FALHA NA INSTALAÇÃO! [O sistema ja foi instalado].") end return 1 end function concl(cid) local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt.success[7].."") print(""..tt[8].."") doPlayerSendTextMessage(cid, typetx,""..tt.success[7].."") doPlayerSendTextMessage(cid, typetx,""..tt[8].."") addEvent(install, 1000,cid) end function finall(cid) local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt.success[6].."") print(""..tt[7].."") doPlayerSendTextMessage(cid, typetx,""..tt.success[6].."") doPlayerSendTextMessage(cid, typetx,""..tt[7].."") addEvent(concl, 3000,cid) end function installDd(cid) local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt.success[5].."") print(""..tt[6].."") doPlayerSendTextMessage(cid, typetx,""..tt.success[5].."") doPlayerSendTextMessage(cid, typetx,""..tt[6].."") addEvent(finall, 1000,cid) end function installCc(cid) local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt.success[4].."") print(""..tt[5].."") doPlayerSendTextMessage(cid, typetx,""..tt.success[4].."") doPlayerSendTextMessage(cid, typetx,""..tt[5].."") addEvent(installDd, 1000,cid) end function installBb(cid) local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt.success[3].."") print(""..tt[4].."") doPlayerSendTextMessage(cid, typetx,""..tt.success[3].."") doPlayerSendTextMessage(cid, typetx,""..tt[4].."") addEvent(installCc, 1000,cid) end function installAa(cid) local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt.success[2].."") print(""..tt[3].."") doPlayerSendTextMessage(cid, typetx,""..tt.success[2].."") doPlayerSendTextMessage(cid, typetx,""..tt[3].."") addEvent(installBb, 1000,cid) end function toInstall() local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt.success[1].."") print(""..tt[2].."") doPlayerSendTextMessage(cid, typetx,""..tt.success[1].."") doPlayerSendTextMessage(cid, typetx,""..tt[2].."") addEvent(installAa, 1000,cid) end function preparation() local typetx = MESSAGE_STATUS_CONSOLE_BLUE print(""..tt[1].."") doPlayerSendTextMessage(cid, typetx,""..tt[1].."") addEvent(toInstall, 3000,cid) end if preparation() then end end return 1 end --=[by: MarcelloMkez]=-- E em Talkactions.xml adicione isso: <talkaction words="!resetar;/installreset" event="script" value="advancedResetSystem.lua"/> Instalando o Sistema - Após adicionar o script em TalkActions e em Talkactions.xml Use o comando "/installreset" em jogo, OBS: o System so pode ser Instalado pelo GOD! A a instalação será mostrada no default, e no Distro! Apos isso, Sistema Instalado! 'Explicando stages: Stage 1: stage1= {resets= 4, premmy= 330, free= 350}, resets: ---- Quantidade de Resets para o stage. premmy: ---- Level que Premmium Accounts podera Resetar. (no caso ate 4 resets) free: ------ Level que Free Accounts podera Resetar. (no caso ate 4 resets) --- Bom como vcs pode ver, vai ate o 'Stage 10': stage10={resets= 50, premmy= 465, free= 465}, --- Intao irei explicar, caso queiram adicionar mais stages... Use 'Ctrl + G' com o script aberto, e digite 71, e aperte enter, logo ira direcionar para linha 71 que no caso é esta: stage10={resets= 50, premmy= 465, free= 465}, - Abaixo dela adicione uma exatamente igual, so modificando o numero do stage ficando assim: stage10={resets= 50, premmy= 465, free= 465}, stage11={resets= 55, premmy= 465, free= 465}, Agora na linha 134 vai ta esta: {resets=stage.stage10.resets, premmy=stage.stage10.premmy, free=stage.stage10.free}, Voce faz a mesma coisa adicionando embaixo da linha 134 porem mudando os numeros, ficando assim: {resets=stage.stage10.resets, premmy=stage.stage10.premmy, free=stage.stage10.free}, {resets=stage.stage11.resets, premmy=stage.stage11.premmy, free=stage.stage11.free}, Pronto, Ja esta adicionado o 'Stage 11' xD, Assim voce pode adicionar quantos stages quiser, basta configurar corretamente... Mais duvidas postem aqui. Aqui termino o post! espero que gostem, grato: ~~MarcelloMkez~~
  6. Eu tava meio sem tempo pq tava editando meu ot, agr q ele ja ta perfect vo posta uns scripts q eu fiz e achei interessante postar ake: Nesse tópico vou postar um script mt ultil em otservs q tem bastante eventos automaticos, ou ateh msm eventos por actions, ou outras coisas se preferirem colocar, vou postar um script para que ninguem possa entrar se estiver de mc. Entao neh...vou para de fala e comçar logo, vamo lá ! Em movements/scripts crie um arquivo.lua chamado multi_block e nele coloque isso: Agora em movements.xml coloque isso: <movevent type="StepIn" uniqueid="2102" event="script" value="multi_block.lua"/> E no seu mapa em todos os pisos q vc escolher para o player nao usar mc, clique 2x e em Unique ID coloque: 2102. Comentem ae galera, lembrando q ainda vou postar mts outros scripts q eu fiz =]]
  7. Informações Suport: (MYSQL E SQL) Base: (PGALAXY) - GabrielTXU Executavel (Distro): TFS 0.3.6 Versao: 8.54 + IP Changer Mapa Proprio (120 Hunts + 5 Quests) Servidor Estavel Uptime de (580 hrs) Testado Player EXP: 10x Pokemon EXP: 15x Catch System Inovado (Rate Por Skill "Catching" + Rate normal) Catch Esta Balanceado Catch Channel System (Veja todos os Catch do Servidor Pelo Canal Catch-Channel) Bonus Level System (Marca na Ball a quantia de Level que voce Upou Nesse Pokemon, Assim mudando o Comercio de Pokemons) Pokemon Level Max : 300 Pokemon Boost Max FREE: +50 Pokemon Boost Max VIP: +80 + (Bonus Boost) Novo Balanceamentos dos Pokemons Goback Surf Fly 6 Pokemons (na bag) Dive Order Pokedex Respaw de Shiny Aleatorio (1%) Configuraçoes 100% do PokeDashAdvanced na Lib/Configuration.lua e etc... Passive (Alguns Shinys nao apareçem o Passivo) Torneio Win e Lose Score PVP e PVP Team Teleport Potions e Revives Apricorns e Vitaminas Nuse Joy Cassino Invasao automatica (09:00 as 21:00) Npcs (Aura,mark,Pokemon Collector,lock ball e etc.....) Aura Task System (NPC MEGA TASK) 7 BALL Clan Look Score Rare Candy Evoluçao (Automatica e Por Stones) 90% Automatico e 10 % Stones Fome e Sentimento 1-2 Geraçao Full 3-6 Geraçao Imcompleta Shinys (1-2 Geraçao Full) Shinys (3-6 Geraçao Imcompleta) Erros [14/12/2014 18:12:37] [Error - CreatureScript Interface] [14/12/2014 18:12:37] data/creaturescripts/scripts/atk.lua:onAttack [14/12/2014 18:12:37] Description: [14/12/2014 18:12:37] (luaDoMonsterSetTarget) Monster not found [Esse Erro acontece na arena pvp e nao sei como arrumar, se tirar esse script buga o ataque dos pokemons "Wild" eles começam a atacar o jogador ao inves de Seu Pokemon] Alguns Erros vão surgir durante o Jogo: Erro no Exp.lua Erro Na hora de Evoluir (Automatico) erro de MaxHealth, algo assim Bugs gerais Os Pokemons Uniques Fazem Crashar o Servidor (Se voce pegar uma Pokeball Unique e jogar no Teleport, o Servidor Crasha) Os Pokemon Lock Fazem Crashar o Servidor (Se voce pegar uma Pokeball Lock e jogar no Teleport, o Servidor Crashar) Pode ser que + Alguns Atributos do PDA fazem Crashar o Servidor e estamos a Procura Disso Retirem o NPC SR.SPLIT (Segundo Andar do CP) Prints Downloads Server + Client Sources Utilitário: Map Padventures S/Respawns Scans Server + Client Sources Créditos Aberos Gristony GabrielTXU NextBR Valaquinhas Sukito TFS Team
  8. Bom, fiz uma pequena edição no Sistema de Checkpoints v1.0 e coloquei um mod pra otclient. Simples de instalar... No Servidor Na pasta mods de seu servidor, crie um arquivo chamado Checkpoint.xml e adicione o seguinte código No Client 1. Faça o download do arquivo; . 2. Extraia os arquivos na pasta mods do seu CLIENT; Créditos [member=Caronte] ~ pela ideia e pelo desenvolvimento do sistema [member=david0703] ~ pelo mod no OTC. DOWNLOAD SCAN
  9. Tibia Server Mapa Global Eae pessoal, venho trazer a vocês um servidor de Tibia com mapa igualzissimo ao do Tibia Original. Com Rookgard e muito mais, claro não fui eu quem fiz este servidor magnifico. Mais venho traze-lo para vocês fazerem dele sua base e ter um servidor muito melhor de Tibia. Como nós sabemos nenhum servidor vem sem bugs, então é issu vo postar algumas imagems e espero que gostem. Muitas coisas ainda vocês terão de configurar como onde o player ínicial irá nascer e etc.. Este servidor estava sendo utilizado com site então você terá de fazer suas auterações. Cidades Newbie Island (Rookgaard) + Island of Destiny Ankrahmun Ab'Dendriel Carlin Darashia Edron Yalahar Kazordoon Liberty Bay Port Hope Svargrond Thais Venore Farmine Zao Cormaya Algumas imagems: Como eu ja disse este servidor não foi eu em que fui, mais venho pelo o menos trazer a vocês. Créditos Dener Diegoli Team e ao Membro Shekys do xtibia por contribuições enorme no projeto. Kurobisu (Por Trazer aqui pro Xtibia) Downloads OTServer Completo: >>( Kurobisu Download Otserv )<< Download Client Normal de Tibia 8.6: >>( Kurobisu Download Client )<< Download do SqliteStudio para quem for usar via account manager: >>(Kurobisu Download SqliteStudio)<< O 4Shared ja tem seu proprio ( Scanner ) então pelo visto não precisa. Estou também abrindo este tópico para caso alguém tenha alguma dúvida ou ache algum bug possa reporta-lo para mim, e eu concerteza tentarei ajuda-lo. Então como muitos sabem o tópico deve ter regras, e aqui não será diferente. Regras Poste suas dúvida aqui caso tenha alguma, caso acho algum bug poste aqui também. Tentarei ajudar o maximo possivel. Gosto do tópico? Lhe ajudei?Rep+ Não ajudei? Tentarei melhorar
  10. Olá galera do :XTibia_smile: , estou com este tutorial para iniciantes! Adicionando novos monstros em seu OT! Isto é bastante simples, e muitas pessoas quando começa a mecher com OTserver's não sabe. (Eu não sabia ) Vá na seção de Scripting - Npcs e Monsters! (CLIQUE AQUI) Encontre um monstro que você goste ou crie um você mesmo! (CLIQUE AQUI E SAIBA TUDO SOBRE NPCS, MONSTER E SPELLS) Sim, você pegou ou criou um monstro... Sim, você pegou ou criou um monstro...Só que na hora de sumona-lo deu um erro, e o monstro não apareceu! Simples, na pasta <data/monster> tem um arquivo monsters, e nele precisa ser adicionado o novo monstro de seu OT! Para adiciona-lo adicione esta linha: monster name="Amazon" (Basta colocar o nome do novo monstro!) file="Amazon.xml" (Coloque o nome do arquivo XML, arquivo do monstro) Espero que gostem deste meu tutorial! Comentem!!!
  11. Olá a todos, Venho trazer um servidor que achei aqui na bagunça.Está na versão 9.60 do Tibia, Mapa Global Completo com Training Offline Gray Island, Quirefang, Montarias Completas, Magias Atuais , Task System 100%, War Of Emperium, Raids automaticas, War Castle, Dota, Zombie event, RookWar (Próprio), Fire Storm (Próprio), Database Completa pra não haver erros. Respawns próprios e personalizados. Como podem ver o servidor é mapa global mas possui modificações nos sistemas. Acompanha o site que utilizava, é um Gesior Acc sem erros com sistemas de pagamento automático (PayPal e PagSeguro), deve-se modificar os email nos scripts de pagamento. Download do Servidor: http://www.2shared.c..._Tibia_960.html Scan: https://www.virustot...sis/1348361601/ Sources do Servidor: http://www.2shared.c...ources_960.html Algumas imagens: - http://upload.crazzy...80f2c8dfae401b9 - http://upload.crazzy...49c8cbcfc95500a Obs: *Não tente usar teleports falantes; *Distro está em 32bits: TBOT.exe! Mas acompanha sources. *Modifique os emails nos sitemas de pagamento. *Retirei o mapa pra fazer o Scan. Offline Training 9.60.rar
  12. Eae Galera , Blz? Hoje vim Postar um Servidor de War Proprio com Varios Sistemas proprias na VERSAO [2.0] ! Entao Vamos La! • [ VERSAO 2.0 ] • Melhor Servidor De War • Suport MYSQL • Servidor Estavel Sem bugs 100% • Distro Usado: Tfs 0.3.6 • Vocaçoes nao esta Balanceado Direito • 8 Mapas • 4 Mini Games [Modes] : CTF - DOTA - TDM - LEADER • Retirado todos os Monster do OT para ficar mais Leve [•] Sistemas [•] • IMAGENS DO SERVER • (•) Donwload Link (•) Bug do ChangeMap - Arrumado https://mega.co.nz/#!FV9yHaDQ!B8B_MiR0eR_4KX9scNPfWwuwo6hBqbmLsWbFbwz_Ykw [•] Creditos: Nextbr
  13. Carlin War by Alissow Créditos: Delton (alguns scripts) Comedinha (distro) Alissow (O resto todo) Cipsoft (Carlin revamped map) TFS team Info: Versão client 8. 5 Acc Team [A] = 1/1 Acc Team [b.] = 2/2 Map carlin Acc do God: god/god Distro TFS 0.3.4pl2 Npcs global Deathbroadcast system Magias ajustadas Invasões na city - Morgaroth - Orshabaal - Ghazbaran - Ferumbras Sqlite recomendado Entre outros Screenshots: Download: Servidor: 4shared Tamanho: 9.00 MBs Download: Clique Aqui Link protegido: http://lix.in/-57731a Scan: Aqui Divirtam-se e Comentem
  14. apolimatheus

    NPC não aparece

    Galera, meu ot está rodando tudo certinho, baiak 8.6 e tal. A questão é que esse bendito NPC não aparece no jogo, ao abrir o sistema reporta esse error... já tentei mudar o nome para somente Bank, mas continua na mesma. Segue os dados Error: Cannot find npc with name: Bank bank.luabank.xml
  15. Atualizado (17/05/2014) Olá galera, Estou aqui para trazer o melhor AAC (na minha opinião) que suporta todas as versões de TFS. Ele é muito bom, estável, e simples ! Imagem : Link de download: https://github.com/Znote/ZnoteAAC Créditos : ZnoteAAC 99,99%
  16. Adaptação pra source 8.54+ LEMBRE-SE, ISSO É NA SOURCE DO SERVIDOR Vamos ao código. protocolgame.h Embaixo de void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item); Adicione void parseExtendedOpcode(NetworkMessage& msg);void sendExtendedOpcode(uint8_t opcode, const std::string& buffer); protocolgame.cpp Embaixo de uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()};enableXTEAEncryption();setXTEAKey(key); Adicione // notifies to otclient that this server can receive extended game protocol opcodesif(operatingSystem >= CLIENTOS_OTCLIENT_LINUX)sendExtendedOpcode(0x00, std::string()); Embaixo de void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item){const ItemType& it = Item::items[item.itemId];msg->AddU16(it.clientId);if(it.isSplash() || it.isFluidContainer())msg->AddByte(fluidMap[item.subType % 8]);else if(it.stackable || it.charges)msg->AddByte(item.subType);elsemsg->AddByte(0x01);msg->AddString(item.itemName);msg->AddU32(uint32_t(it.weight * 100));msg->AddU32(item.buyPrice);msg->AddU32(item.sellPrice);} Adicione void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg){uint8_t opcode = msg.GetByte();std::string buffer = msg.GetString();// process additional opcodes via lua script eventaddGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer);}void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer){// extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand themNetworkMessage_ptr msg = getOutputBuffer();if(msg){TRACK_MESSAGE(msg);msg->AddByte(0x32);msg->AddByte(opcode);msg->AddString(buffer);}} Embaixo de case 0x1E: // keep alive / ping responseparseReceivePing(msg);break; Adicione case 0x32: // otclient extended opcodeparseExtendedOpcode(msg);break; enums.h Embaixo de enum GuildLevel_t{GUILDLEVEL_NONE = 0,GUILDLEVEL_MEMBER,GUILDLEVEL_VICE,GUILDLEVEL_LEADER}; Substitua o OperatingSystem por este enum OperatingSystem_t{CLIENTOS_LINUX = 0x01,CLIENTOS_WINDOWS = 0x02,CLIENTOS_OTCLIENT_LINUX = 0x0A,CLIENTOS_OTCLIENT_WINDOWS = 0x0B,CLIENTOS_OTCLIENT_MAC = 0x0C,};/ player.h Embaixo de void sendCreatureShield(const Creature* creature) Adicione void sendExtendedOpcode(uint8_t opcode, const std::string& buffer){if(client) client->sendExtendedOpcode(opcode, buffer);} luascript.cpp Embaixo de void LuaScriptInterface::registerFunctions(){ Adicione //doSendPlayerExtendedOpcode(cid, opcode, buffer)lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode); Embaixo de SHIFT_OPERATOR(int32_t, LeftShift, <<)SHIFT_OPERATOR(int32_t, RightShift, >>)SHIFT_OPERATOR(uint32_t, ULeftShift, <<)SHIFT_OPERATOR(uint32_t, URightShift, >>)#undef SHIFT_OPERATOR Adicione int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L){//doSendPlayerExtendedOpcode(cid, opcode, buffer)std::string buffer = popString(L);int opcode = popNumber(L);ScriptEnviroment* env = getEnv();if(Player* player = env->getPlayerByUID(popNumber(L))) {player->sendExtendedOpcode(opcode, buffer);lua_pushboolean(L, true);}lua_pushboolean(L, false);return 1;} luascript.h Embaixo de virtual void registerFunctions(); Adicione static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L); creatureevent.h . Substitua CREATURE_EVENT_PREPAREDEATH Por isso CREATURE_EVENT_PREPAREDEATH,CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes Embaixo de uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer); creatureevent.cpp Embaixo de else if(tmpStr == "death")m_type = CREATURE_EVENT_DEATH; Adicione else if(tmpStr == "extendedopcode")m_type = CREATURE_EVENT_EXTENDED_OPCODE; Embaixo de case CREATURE_EVENT_DEATH:return "onDeath"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "onExtendedOpcode"; Embaixo de case CREATURE_EVENT_DEATH:return "cid, corpse, deathList"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "cid, opcode, buffer"; Embaixo de std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl;return 0;}} Adicione uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer){//onExtendedOpcode(cid, opcode, buffer)if(m_interface->reserveEnv()){ScriptEnviroment* env = m_interface->getEnv();if(m_scripted == EVENT_SCRIPT_BUFFER){env->setRealPos(creature->getPosition());std::stringstream scriptstream;scriptstream << "local cid = " << env->addThing(creature) << std::endl;scriptstream << "local opcode = " << (int)opcode << std::endl;scriptstream << "local buffer = " << buffer.c_str() << std::endl;scriptstream << m_scriptData;bool result = true;if(m_interface->loadBuffer(scriptstream.str())){lua_State* L = m_interface->getState();result = m_interface->getGlobalBool(L, "_result", true);}m_interface->releaseEnv();return result;}else{#ifdef __DEBUG_LUASCRIPTS__char desc[35];sprintf(desc, "%s", player->getName().c_str());env->setEvent(desc);#endifenv->setScriptId(m_scriptId, m_interface);env->setRealPos(creature->getPosition());lua_State* L = m_interface->getState();m_interface->pushFunction(m_scriptId);lua_pushnumber(L, env->addThing(creature));lua_pushnumber(L, opcode);lua_pushlstring(L, buffer.c_str(), buffer.length());bool result = m_interface->callFunction(3);m_interface->releaseEnv();return result;}}else{std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl;return 0;}} game.h Embaixo de int32_t getLightHour() {return lightHour;}void startDecay(Item* item); Adicione void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer); game.cpp Embaixo de player->sendTextMessage(MSG_INFO_DESCR, buffer);} Adicione void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer){Player* player = getPlayerByID(playerId);if(!player || player->isRemoved())return;CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE);for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it)(*it)->executeExtendedOpcode(player, opcode, buffer);} /creaturescripts/creaturescrips.xml <event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/> /creaturescripts/extendedopcode.lua OPCODE_LANGUAGE = 1function onExtendedOpcode(cid, opcode, buffer)if opcode == OPCODE_LANGUAGE then-- otclient languageif buffer == 'en' or buffer == 'pt' then-- example, setting player language, because otclient is multi-language...--doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)endelse-- other opcodes can be ignored, and the server will just work fine...endend Créditos : MaXwEllDeN 100% por adaptar o código
  17. Ola galera hoje trago para vocês um tutorial de como adicionar novas spells aos pokemons em um servidor 'PDA'... Tutorial feito a pedido do usuario: @josegremista Importante: Antes de começar gostaria de deixar claro que criar uma nova spell em um servidor de pokemon eh totalmente diferente que criar uma spell em um servidor de tibia, as spells de pokemon são criadas em lib/pokemon moves.lua e não na pasta spells como no tibia... A pasta spells vai simplismente 'chamar' as spells feitas na pasta lib. Vão em lib/pokemon moves.lua e achem isso.. Caso estejam usando meu servidor: --/////////////////////// PASSIVAS /////////////////////////--Caso usem outro tipo de 'PDA', vão ao final do script e achem isso: end return true end E entao adicionem um outro 'elseif'... elseif spell == "xxxx" thenOnde "xxxx" é o nome da nova spell... E então embaixo disso, criem o script da nova spell.. Exemplo: local pos = getThingPosWithDebug(cid) doMoveInArea2(cid, 91, inferno1, FIREDAMAGE, 0, 0, spell) addEvent(doDanoWithProtect, math.random(100, 400), cid, FIREDAMAGE, pos, inferno2, -min, -max, 0) Importante: Caso usem meu servidor, aconcelho a olharem o arquivo lib/newStatusSyst.lua, la estão todas as funções de dano do servidor... Importante: Não coloquem areas de spells nesse arquivo! As areas de spells devem ser colocadas em lib/areas.lua, para deixar o outro script mais organizado... Depois de criado o script da spell, vão em lib/configuration.lua e achem a tabela movestable, e então adicionem a nova spell nos pokes q vocês quiserem... No meu 'PDA' usem: move1 = {name = "xxxx", level = aa, cd = bb, dist = cc, target = dd, f = ee, t = "yyyy"},Onde: "xxxx" = nome da spell, aa = level que o poke/player precisa ter para usar a spell, bb = cd, tempo de espera, para usar a spell denovo, cc = distância minima que o poke tem q tar pra usar a spell, dd = coloquem 1, caso precise ter um target pra usar a spell, ou coloquem 0, caso não precise de target pra usar a spell, ee = esse é o 'dano' da spell, esse valor vai ser usado na formula final de dano de cada spell -caso seja uma spell que não tem dano coloquem 0-, "yyyy" = é o 'tipo' da spell -"grass", "water", "fire"...- Caso usem outro tipo de 'PDA' usem: move1 = {name = "xxxx", level = aa, cd = bb, dist = cc, target = dd},Onde: "xxxx" = nome da spell, aa = level que o poke/player precisa ter para usar a spell, bb = cd, tempo de espera, para usar a spell denovo, cc = distância minima que o pokemon tem que tar pra usar a spell, dd = coloquem 1, caso precise ter um target pra usar a spell, ou coloquem 0, caso nao precise de target pra usar a spell Importante: caso usem outro tipo de 'PDA' o dano e o 'tipo' da spell ficam em lib/moves.lua... ["xxxx"] = {f = aa, t = "yyyy"}, Onde: "xxxx" = nome da spell, aa = esse é o 'dano' da spell, esse valor vai ser usado na formula final de dano de cada skill -caso seja uma skill que n]ao tem dano coloquem 0-, "yyyy" = é o tipo da spell -"grass", "water", "fire"... Depois de feito isso, vão em spells/ps/ e copiem algum arquivo la e mudem o nome para o nome da sua nova spell e depois abram esse arquivo e mudem isso: docastspell(cid, "xxxx")Onde "xxxx" é o nome da spell... Depois abram o arquivo spells/spells.xml e adicionem uma nova linha... <instant name="xxxx" words="yyyy" lvl="1000" mana="0" event="script" value="ps/xxxx.lua"></instant>Onde: "xxxx" = nome da nova spell, "yyyy" = vocês colocam "spellYYY" onde "YYY" eh o proximo numero em sequencia, olhem a ultima spell adicionada q vocês vão intender... E por ultimo, vão em monster/pokes/ e adicionem a spell nos pokemons que vocês quiserem... <attack name="xxxx" interval="yyyy" chance="zzzz" range="aaaa"/>Onde: "xxxx" = nome da spell, "yyyy" = de quanto em quantos, milésimos de segundos -1s = 1000-, o pokemon tentara usar a spell, "zzzz" = a chance do pokemon conseguir usar a spell, "aaaa" = distância minima pro pokemon começar a usar a spell Pronto, espero q vocês gostem do tutorial. Qualquer erro ou se faltou alguma coisa me avisem para eu editar o post ^^
  18. Bom, como um individuo(Vudi) não sabe cumprir o que fala, vou postar o sistema aqui.(não cabe ao post explicar aqui) Bom, aqui está o smeargle system, igual o da PxG. Vamos lá. 1 - Vá na pasta Lib, substitua seu cooldown bar.lua por isso: 2 - Ainda no Lib, no fim(depois do ultimo end) do Some Functions.lua, adicione isso: 3 - Agora no order.lua, do Actions, em baixo de: Adicione: 4 - Se seu servidor ja tiver os spells, sketch 1, sketch 2... Substitua por esses(data/lib/pokemon moves.lua): Se não, use os mesmos acima, não esqueça de adicionar no spells.xml. 5 - Agora, vá em talkactions/scripst, abra o move1.lua e substitua: Por Depois: Por: Pronto, se tiver feito tudo certo, funcionará. Como ficará: Como usar: Créditos: Eu(Todo o script)
  19. Olá galera, sou o SHUTUP, hoje vim aqui ajudar vocês com esse tutorial. Eu vou estar ensinando a executar "QUERYS" em sua Mysql. 1- Oque é isso? R: é um comando que executa na sua sql para consultar os dados e modificar aquilo que você determinou. Exemplo: Vou mudar o level de todos os players do servidor para level 8: UPDATE `players` SET `level` = '8' Então vamos lá! 1) Acesse seu phpmyadmin pelo: localhost/phpmyadmin 2) Selecione sua database. (Nesse caso minha database se chama "database". 3) Vá ao botão acima da página: "SQL": CLIQUE NELA, irá aparecer assim: 4) Nele você escreve os códigos correspondentes á açao que voce quer faser. Principais comandos Mysql: Ps: Sempre que for fazer uma mudança em seu banco de dados, previna-se, faça seu backup e salve-o em um pen-drive / HD. Resetar Levels / Mana / HP / ML: UPDATE `players` SET `level` = '8', `health` = '180', `healthmax` = '180', `experience` = '4200', `mana` = '35', `manamax` = '35', `cap` = '400' Resetar Skills: UPDATE `players_skills` SET `value` = '10' Resetar FRAGS de todos os players do Servidor: UPDATE `players` SET `redskulltime`=0; Esse comando não vai tirar as skulls dos jogadores. Remover as SKULLS de todos os jogadores: UPDATE `players` SET `Skull`=0; Deletar todos os items de um único jogador: Obs: "1234" é o id do jogador que terá todos seus items do depot e corpo APAGADOS. DELETE FROM `player_depotitems` , `player_items` WHERE `player_id` = '1234' Mandar todos jogadores para uma certa posição do mapa: OBS: Mudar X, Y, Z Pelas posições correspondentes. UPDATE players SET posx = X, posy = Y, posz = Z; Remover premium account de todos os players: UPDATE account SET premdays=0; Dar premium para os players: (+ 7 é o número de dias que vai dar, você pode alterar o valor como quiser.) UPDATE accounts SET premdays = premdays + 7 Dar Todas as blesses para todos os players: UPDATE `players` SET `blessings`=31; Deletar houses de players que não existem mais: UPDATE `houses` SET `owner` = '0' WHERE `houses`.`owner` NOT IN ( SELECT `players`.`id` FROM `players` WHERE `players`.`id` = `houses`.`owner` ); Deletar todos os items de um player que foi deletado: DELETE FROM player_items WHERE player_id NOT IN (SELECT id FROM players); Remover todos os items de um certo ID dos DEPOTS: DELETE FROM player_depotitems tile_items WHERE itemtype = 2160; Remover todos os items de um certo ID do CORPO DOS PLAYERS: DELETE FROM player_items WHERE itemtype = 2160; Remover todos os items de um certo ID das HOUSES DELETE FROM tile_items WHERE itemtype = 2160; Deletar todos os players Menor que level 50: DELETE FROM players WHERE level < 50 AND lastlogin < UNIX_TIMESTAMP() - 20*24*60*60 Necessita Fazer um Backup dos Samples, pois irão com certeza excluir os samples. Importar todos os Samples em caso de algum de acidente: Account manager original da TFS: _______________________________________________ Créditos: 100% Meus. Espero que esse tutorial ajude muita gente, Qualquer dúvida poste abaixo. Darei suporte a todos deste tópico. Atenciosamente: Shutup
  20. Bom, como acho que todos ja viram o map do servidor de poketibia (Pxg) ele mostra icones, nomes etc no minimap, e hoje vim trazer isso para vocês Nome: Map IconDescrição: Adiciona um icone no minimapAutor: Eduardo Vicente (Banana Fight)Website: www.xtibia.com Versão 1.0 Features: Criar Icones no minimap Instalação dentro de modules/game_minimap/minimap.lua embaixo de : function toggle()if minimapButton:isOn() thenminimapWindow:close()minimapButton:setOn(false)elseminimapWindow:open()minimapButton:setOn(true)endend Você adiciona a função : function setMonsterCave(posx, posy, posz, icon, description)local pos = {}pos.x = posxpos.y = posypos.z = poszminimapWidget:addFlag(pos, icon, description)endfunction removeMonsterCave(posx, posy, posz, icon, description)local pos = {}pos.x = posxpos.y = posypos.z = poszminimapWidget:removeFlag(pos, icon, description)end Como usar setMonsterCave(Posição X do map, Posição Y do map,Posição Z do map, "Nome da Imagem", "Descrição que vai aparecer") Obs: como eu usei uma função que já existe você vai te que seguir um padrão na hora de adicionar o nome da sua imagem. Exemplo: O nome da minha imagem é "dragonicon.png", para que eu possa usar ela no script eu tenho que adicionar essa imagem dentro da pasta "data/images/game/minimap/", e vou ter que renomear essa imagem para "flagdragonicon.png", Ai depois de ter feito isso dentro do meu script quando eu for fazer o script adicionar essa imagem eu vou fazer da seguinte maneira : setMonsterCave(32238, 32240, 7, "dragonicon", "Dragon Cave") Se você ainda não entendeu é da seguinte forma, você tem uma imagem com nome "test.png", você vai adiciona a imagem no lugar certo, com o nome "flagtest.png", ai dentro do script você só usa "test", pois o script já sabe que vai ter que juntar flag+nome da imagem que você adicionou+.png. Obs 2: Sua imagem tem que ter o fundo transparente Obs 3: quando mais transparente for a imagem, mais do map aparece e causa o efeito igual ao do PXG, do map se abrindo. Exemplo de uso : arquivo : minimap.lua function init()minimapButton = modules.client_topmenu.addRightGameToggleButton('minimapButton', tr('Minimap') .. ' (Ctrl+M)', '/images/topbuttons/minimap', toggle)minimapButton:setOn(true)minimapWindow = g_ui.loadUI('minimap', modules.game_interface.getRightPanel())minimapWindow:setContentMinimumHeight(64)minimapWidget = minimapWindow:recursiveGetChildById('minimap')local gameRootPanel = modules.game_interface.getRootPanel()g_keyboard.bindKeyPress('Alt+Left', function() minimapWidget:move(1,0) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Right', function() minimapWidget:move(-1,0) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Up', function() minimapWidget:move(0,1) end, gameRootPanel)g_keyboard.bindKeyPress('Alt+Down', function() minimapWidget:move(0,-1) end, gameRootPanel)g_keyboard.bindKeyDown('Ctrl+M', toggle)g_keyboard.bindKeyDown('Ctrl+Shift+M', toggleFullMap)minimapWindow:setup()connect(g_game, {onGameStart = online,onGameEnd = offline,})connect(LocalPlayer, {onPositionChange = updateCameraPosition})if g_game.isOnline() thenonline()setMonsterCave(32239, 32240, 7, "dragon", "hihi")removeMonsterCave(32239, 32240, 7, "dragon", "hihi")endend
  21. Creditos: Vodkart Kydrai fala galerinha resolvi posta alguns script que acontece quando o player mata algum monstro ... o primeiro é o script que acontece quando voce mata um Monstro abre o teleport. o segundo é matar o monstro e sumir a parede por algum tempo. Obs: o Nome do monstro deve ser colocado com Letra Maiuscula. [ Matar monstro e abrir Teleport ] creaturescript\script [ Matar Monstro e parede sumir por determinado tempo ] creaturescript\script [ Matar Monstro e ser teleportado ] [ Matar Monstro e Ganhar Storage ]
  22. Bem, estava fuçando o LUA_FUNCTIONS e vi la uns negocim interessante e resolvir fazer um script legal com o que vi.. Basicamente e um item que quando usado, dara uma certa quandidade de EXP ao jogador. Muito simples de se fazer e de se configurar... Vamos la: Primeiramente crie um arquivo chamado scroll.lua dentro da pasta data/actions/scripts e coloque isso dentro dele: Agora pra finalizar, abra o actions.xml e adicione esta linha ate ele: Pronto, agora dentro do jogo crie o item 6119 e tente usar-lo para ver o que que acontece =] Dica: -Vale lembrar que o item pode ser mudado, basta voce trocar o ItemID no scroll.lua e no actions.xml -Outra dica boa, é você colocar esse script em uma quest, e colocar para apenas para os player sem vocaçao que no caso seria a vocation 0 poderem usar...Deixa o server mais original :wink: Créditos: 100% AlissonLinneker
  23. Vou ensinar um modo facil e rapido de colocar algumas outfits só para jogadores vip... Primeiro vá até Data\data\XML\outfits.xml Lá dentro escolha a outfit que você quer colocar(podera ser varias outfitis) só para jogadores vip e adicione: quest="XXXX" XXXX = numero de uma storage qualquer Exemplo Meu: <outfit id="32" premium="yes" quest="11322"> <list gender="0-3" lookType="264" name="Brutetamer"/> </outfit> obs: caso tenha alguma como acess"3" remova essa parte no meu caso a outfit foi Brutetamer e storage escolhida foi 11322,vamos usar essa mesmo storage depois... agora vamos para o script: [ Outfit Vip para o Perfect Vip System ] : [ Outfit vip o Vip System By Account V1.0 ] : [ Outfit vip para o System By MOCK] :
  24. Fala galera, beleza? Quando inicio o servidor, aparece esse erro: No arquivo spells.xml não possui nenhuma duplicata dele, então o que poderia estar causando isso?
×
×
  • Create New...