Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

Search the Community

Showing results for tags 'talkaction'.



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 295 results

  1. Olá! Estava perambulando por aí e vi que muitas pessoas querem o sistema de trade off para o 1.2. Haja visto que não fora encontrado na internet, resolvi modificá-lo e trazer ao ekz. Sem mais delongas, vamos a instalação: em data/talkactions/talkactions.xml abra o arquivo e adicione a seguinte: <talkaction words="!oferta" separator=" " script="trade_site.lua" /> Agora, vá para data/talkactions/scripts crie um arquivo chamado trade_site.lua e coloque este código dentro: Para visualizar, clique aqui. Pronto. A parte "lua" foi feita. Agora, vamos para a parte do website. Em seu banco de dados, execute a seguinte query: CREATE TABLE `auction_system` ( `id` int(11) NOT NULL auto_increment, `player` int(11), `item_id` int(11), `item_name` varchar(255), `count` int(11), `cost` int(11), `date` int(11), PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Logo depois, execute essa: ALTER TABLE `players` ADD `auction_balance` INT( 11 ) NOT NULL DEFAULT '0'; A parte do mysql está concluída. Agora vamos para à criação do arquivo. Na pasta do seu site crie um arquivo chamado trade_site.php, em seguida adicione o code: http://pastebin.com/bBR6nnGz Em layouts.php adicione: <a href='?subtopic=trade_site'> <div id='submenu_trade_site' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'> <div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> <div id='ActiveSubmenuItemIcon_experiencetable' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div> <div class='SubmenuitemLabel'>Trade Off</div> <div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div> </div></a> Após realizar todos estes processos, basta utilizar os seguintes comandos no jogo: !oferta add, itemName, itemPrice, itemCountexemplo: !oferta add,plate armor,500,1!oferta comprar,AuctionIDexemplo: !offer comprar,1943!oferta remover,AuctionIDexemplo: !oferta remover,1943!oferta sacar, qtdUse este comando para sacar uma determinada quantidade de gps.!oferta saldoUse este comando para saber seu saldo de vendas.!oferta infoUse este comando caso tenha dúvidas para utilizar os comandos acima. Logs de atualização(ões)! v1.0.190% dos erros reportados foram corrigidos. São eles: °Você ter o item e ele reporta que não tem. °Colocar quantidade ilimitada de itens. Limite agora funcional. °Itens proibidos não podem mais ser colocados à venda. °Entre outros erros de programação arrumados.v2.0°Erros até então reportados arrumados. °Novos comandos: !oferta saldo e !oferta info °Comando !oferta sacar alterado para !oferta sacar, qtd °Novas mensagens. °Conteúdo totalmente traduzido. Espero que seja útil! Att, Lumus Créditos por criar: vDk otland. Ps.: não sou especialista em lua, se alguém se disponibilizar a melhorar, e otimizar o scripts, sinta-se à vontade.
  2. -= 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~~
  3. Faaala galera!!! Bom, vamos lá a mais um script que eu fiz agora a tarde. Antes de vocês falarem que já existe, eu quero dizer que eu fiz esse script agora a tarde sem nem olhar para os scripts de cadeia já existentes e que só fiz este script, porque um cara da seção de pedidos me pediu ajuda. O script que eu fiz é diferente dos já existentes, porque é possível especificar o tempo e o motivo pelo próprio comando. Primeira Versão: Segunda Versão: Fase de Testes O que mudou: Na primeira versão a cadeia é por tempo, e você configura o tempo no próprio comando da talkaction. Na segunda versão a cadeia é por fiança, você estipula um valor de fiança e o jogador não pode sair de lá até ter sua fiança paga, ou ele mesmo pagar sua própria fiança. Mais algumas informações de rotina: Servidor Testado: New Styller Yourots 0.7.5 Acho que é isso, se tiver algum erro se manifestem, até mais.
  4. Vá até "Data > Talkactions" no arquivo "Talkactions.xml" adicione a seguinte linha: <talkaction words="/emptyhouses" script="mhi.lua" /> Em seguida "Data > Talkactions > Scripts" e crie "mhi.lua" e adicione: function onSay(player, words, param) if not player:getGroup():getAccess() then return true end for _, house in ipairs(Game.getHouses()) do if house:getOwnerGuid() == 0 then -- else house:setOwnerGuid(0) house:setAccessList(256, "") house:setAccessList(257, "") house:setAccessList(1, "") end end print("Items moved to depot.") return false end Verifique se o jogador que executa o comando tem acesso. Quando o proprietário é definido como "0", todos os itens são movidos para o depósito do proprietário. Créditos: kito2 .
  5. Galera, esse talkaction funciona da seguinte forma, se você não tiver dinheiro no inventario do personagem e tiver no banco, o talkaction remove o dinheiro do banco automaticamente e te dá as blessings. --[[ Desenvolvido por Farathor (Eduardo Rodrigues) ]] --local bless = {1, 2, 3, 4, 5} local cost = 100000 function onSay(cid, words, param) for i = 1, table.maxn(bless) do if(getPlayerBlessing(cid, bless[i])) then doPlayerSendCancel(cid, "Você já comprou todas as blessings possíveis.") return true end end if getPlayerMoney(cid) >= cost then doPlayerRemoveMoney(cid, cost) for i = 1, table.maxn(bless) do doPlayerAddBlessing(cid, bless[i]) [ end doCreatureSay(cid, "Blessed!" ,19) doSendMagicEffect(getPlayerPosition(cid), 49) elseif getPlayerBalance(cid) >= cost then doPlayerSetBalance(cid, getPlayerBalance(cid) - cost) for i = 1, table.maxn(bless) do doPlayerAddBlessing(cid, bless[i]) end doCreatureSay(cid, "Blessed!" ,19) doSendMagicEffect(getPlayerPosition(cid), 49) else doPlayerSendCancel(cid, "Você não possuí dinheiro suficiente para pagar a bless (100k).") end return true end
  6. Eae Galerinha do Xtibia, estou aqui para trazer um "Sistema" que não achei no fórum e fuçando aqui acabei encontrando, O sistema serve para deixar as skills e o Goback "Vá Charmander", em laranja seguindo a imagem: http://imgur.com/a/MoN1I http://imgur.com/a/KCN7j Então vamos ao assunto... Primeiramente vá em "Data/lib", abra o arquivo some functions.lua e procure por: doCreatureSay(cid, mbk, TALKTYPE_SAY) e mude para: doCreatureSay(cid, mbk, TALKTYPE_ORANGE_1) Até aqui editamos só para ficar em laranja o Soltar e Voltar o Pokemon... Para mudar as skills vá em "Data/Talkactions" abra o arquivo move1.lua e procure por: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) e mude para para: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_ORANGE_1) e para mudar o soltar o pokemon para ficar em laranja vá em "Actions" abra o arquivo Goback.lua e procure por "doCreatureSay(cid, mgo, TALKTYPE_SAY)",e troque por "doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1) é isso então qualquer erro deixe ai que eu tento ajudar :3, lembrando que não sou "Scripter", eu só entendo um pouco. OBS: Testado apenas em PDA, e desculpe pela mal organização não sei colocar Spoiler, deixa ai nos comentários como faz que eu edito o tópico. OBS: Meu servidor https://www.facebook.com/pokemonlegendaryy/ /\/\/\/\/\//\/\/\/\//\/\/\/\/\/\ O server está em manutenção mais fique ligado para quando voltar. Se Ajudei REP+.
  7. Olá galera. Teria como eu executar uma talkaction "/Castle Start" por uma globalevent numa determinada hora do dia "18:00" sem a presença do god online???? Ajudem, +rep pra qualquer tipo de dicas!!!! Obrigado
  8. Bom galera eu estou precisando de uma script para poder comprar item por talkactions, procurei no fórum e não achei nada a respeito. tipo se alguma pessoa digitar !booststone e tiver o item certo para efetuar a compra, ela recebe a stone no inventorio. Acho que é só mais isso mesmo, desde já agradeço. REP+
  9. FALA FAMILIA XTIBIA, QUERIA MUITO ESSE SCRIPT.. EX:. AO CLICAR NA PORTA OU PASSAR NO PISO, APARECESSE " VOCÊ SÓ PODE PASSAR COM X RESETS". E QUERIA CRIAR VÁRIOS LOCAIS COM ESSE TIPO DE SCRIPT MUDANDO SÓ OS RESETS! MEU SISTEMA DE RESET.LUA QUEM PODER AJUDAR, AGRADEÇO. ABRAÇOS!
  10. E aí galera, beleza? Venho trazer esse script aqui que eu encontrei num server que eu baxei (não sei quem é o autor), e achei muito interessante. O que ele faz? Se você for GOD, ele cria um TP com as coordenadas digitadas no param da talkaction na sua frente, desde que a posição na sua frente não seja um player ou um item não~tile. function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return true end local split = param:split(",") if tonumber(split[3]) == nil then player:sendCancelMessage("Insufficient parameters.") return false end local msg = nil for i = 1, #split do split[i] = tonumber(split[i]) end local direction = { [0] = function(ps) ps.y = ps.y - 1 return ps end, [1] = function(ps) ps.x = ps.x + 1 return ps end, [2] = function(ps) ps.y = ps.y + 1 return ps end, [3] = function(ps) ps.x = ps.x - 1 return ps end } local teleporter = direction[player:getDirection()](player:getPosition()) if isCreature(Tile(teleporter):getTopCreature()) then msg = "You cannot create a teleport on top of a player." end if Tile(teleporter):getTopDownItem() then msg = "You cannot create a teleport on top of an item." end if not msg then msg = "Teleport created to cordinates: {X: "..split[1].." Y: "..split[2].." Z: "..split[3].."}." doCreateTeleport(1387, {x = split[1], y = split[2], z = split[3]}, teleporter) end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, msg) return falseend Créditos: ???, se alguém souber favor dizer
  11. Olá, tem vários comandos !eject pelo fórum, porém nenhum dos que encontrei funcionou comigo, talvez pelo fato de eu usar SQLITE. Precisava muito desse comando no meu servidor, alguém possui um que funcione com SQLITE?
  12. Olá xTibianos, eu to com um bug muito tenso em um script (ou os dois?) eu uso um script de transformação que mantem as cores que o player usa na roupa, antes do player se transformar ele pode mudar as cores à vontade que as cores vão mudar na hora, mas depois que ele se transforma, ele mantem as cores, mas se o player for trocar de cor ela não muda, só se ele desloga e logar de novo, ai ela muda para a cor que ele escolheu, alguém pode me ajudar? Se necessário eu posto meu script de transform aqui. Ah eu também uso um creaturescript que mantem a outfit na vocação, ele usa a mesma tag do script de transform, essa abaixo:
  13. Editado: Script com a versão 2 testado em outras versões de pokemon. Fiz o script para o player se movimentar sozinho (!walk). O Script pode conter alguns bugs pois testei pouco. Vá em data/talkactions/talkactions.xml e adicione: <talkaction words="!walk" event="script" value="walk.lua"/> Em data/talkactions/scripts/ crie um arquivo chamado walk.lua e adicione: V1: Testado apenas no pokemon DxP V3 V2: Testado em outras versões do pokemon. local function checkSpeed(cid) local playerSpeed = getCreatureSpeed(cid) local speed = 350 - (playerSpeed / 10) return speedendlocal function checkTile(cid, pos) if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return 1 else return doTileQueryAdd(cid, pos) endendlocal function walk(cid) if not isPlayer(cid) then return true end local speed = checkSpeed(cid) local poslook = getCreatureLookPosition(cid) if getPlayerStorageValue(cid, 43221) == 1 then if checkTile(cid, poslook) == 1 then doMoveCreature(cid, getPlayerLookDir(cid)) addEvent(walk, speed, cid) else setPlayerStorageValue(cid, 43221, 0) doPlayerSetNoMove(cid, false) end endendfunction onSay(cid, words, param) if getPlayerStorageValue(cid, 43221) == 1 then setPlayerStorageValue(cid, 43221, -1) doPlayerSetNoMove(cid, false) else setPlayerStorageValue(cid, 43221, 1) doPlayerSetNoMove(cid, true) local speed = checkSpeed(cid) addEvent(walk, speed, cid) endreturn trueend Usei uma formula que achei parecida com o movimento do player (voando e andando). Como é um script baseado em eventos, ele usa miliseconds e não consegui fazer usar a velocidade do player, caso acharem que a velocidade está baixa, alterem a linha abaixo para a formula desejada. local speed = 350 - (playerSpeed / 10) -- formula para o movimento.
  14. Olá xTibianos, eu tenho uma dúvida pequena, queria saber se existe alguma função onde o player fica parado quando executa a spell/talkaction, e que esse tempo seja configurável, existe algo assim?
  15. Olá! Bom, vou ser breve: Tenho um sistema no meu servidor de entregar points donate, que quando eu digito /entregar PLAYER, QUANTIA vai uma bp para o player com os points. A questão é, seria possível criar uma função, que se o player não estiver online, me retorna uma mensagem com o login e senha do player, para facilitar minha vida e eu não precisar ficar procurando na database? OBS: TFS 0.3.6 Uso SQL, não MySQL Meu script: function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Uso do comando:\n/entregar Nome do char, quantia de lerme points.") return true end local t = string.explode(param, ",") local player = getPlayerByNameWildcard(tostring(t[1])) if(not isPlayer(player)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player nao existe.") return true end local pos = getCreaturePosition(player) local effect = 506 local quant = tonumber(t[2]) if quant <= 24 then quantia = quant*10 elseif quant >= 25 then quantia = quant*12 end bp = doPlayerAddItem(player,3940,1) doSetItemText(doPlayerAddItem(player, 2598), "Muito obrigado pela sua ajuda para manter o servidor online! Att Staff Pkm Lerme.") doAddContainerItem(bp, 2159, quantia) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "".. getPlayerName(cid) .." te entregou ".. quantia .." Lerme Points!") doSendMagicEffect(pos, effect) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "".. t[1] .." recebeu ".. quantia .." Lerme points!") return trueend
  16. Boa tarde Galera, Precisava de um script que compre bless. Contendo as seguintes mensagens: Você já tem todas as bless. você não tem gold suficiente. você comprou todas as bless é possível!? obrigado
  17. Boa tarde Galera, tem como fazer uma alteração no script /ghost para que ninguém veja as magias (palavras) quando o ghost estiver ativo? function onSay(player, words, param) if not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() local isGhost = not player:isInGhostMode() player:setGhostMode(isGhost) if isGhost then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You are now invisible.") position:sendMagicEffect(CONST_ME_YALAHARIGHOST) else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You are visible again.") position.x = position.x + 1 position:sendMagicEffect(CONST_ME_SMOKE) end return falseend obrigado
  18. Bom dia Galera, Estou com problemas em minha talkaction que manda o player para o templo. Ela manda o God para o templo mas não manda os players. alguém pode me ajudar? function onSay(player, words, param) if not player:getGroup():getAccess() then return true end player:teleportTo(player:getTown():getTemplePosition()) return falseend
  19. Iae galera ... Queria saber se existiria a possibilidade de vcs disponibilizarem um script que funcionasse com storage. No caso seria um outfits e uma spells por storage. Se tiver como, agradeço desde de ja ! =D
  20. Galera alguem que intenda de script pode aperfeisuar para min? Tipo quero fazer que ao falar Ex: /clan naturia,5 mude para o clan ( no caso isso ja tem) so que preciso queao falar isso gaste 10 diamonds e tbm ganhe a ropa do clan( e ao sair do clan a ropa saia junto) pfv alguem me ajuda? Script : function onSay(cid, words, param, channel) if param == "" then return sendMsgToPlayer(cid, 20, "Estao faltam os parametros! [clan name], [rank]") end local t = string.explode(param, ",") local clans = {'Volcanic', 'Seavell', 'Orebound', 'Wingeon', 'Malefic', 'Gardestrike', 'Psycraft', 'Naturia', 'Raibolt', "Ironhard"} if not isInArray(clans, t[1]) then return sendMsgToPlayer(cid, 20, t[1].." nao é uma clan valido!") elseif not tonumber(t[2]) then return sendMsgToPlayer(cid, 20, "Parametros errados! [clan name], [rank].") end local rank = tonumber(t[2]) local clan = t[1] if getPlayerStorageValue(cid, 92823) < 1 then -- 7575 -- 92823 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Essa é sua primeira vez mudando de clan. Nas próximas, terá o custo de 10 diamonds.") doPlayerSendTextMessage(cid, 27, "Agora você pertence ao clan "..clan..", rank: "..rank.."") setPlayerClan(cid, clan) setPlayerClans(cid, clan) setPlayerClanRank(cid, rank) else if getPlayerItemCount(cid, 2149) < 10 then return doPlayerSendCancel(cid, "Você precisa de 10 diamonds para mudar de clan.") else return doPlayerSendCancel(cid, "Sorry, not possible.") end if(getPlayerLevel(cid) < 120) then return doPlayerSendCancel(cid, "Você estar no level 120.") else return doPlayerSendCancel(cid, "Sorry, not possible.") end doPlayerSendTextMessage(cid, 27, "Agora você pertence ao clan "..clan..", rank: "..rank.."") doPlayerRemoveItem(cid, 2149, 10) setPlayerClan(cid, clan) setPlayerClanRank(cid, rank) end return true end
  21. Hey, então, eu peguei o Bank System por talkaction feito pelo Mock e tentei fazer alguns cálculos para transformar o sistema (que é em cents) para dollar. EX: Para depositar 1k, devo falar /bank d 100000 o ideal seria eu falar /bank d 1000 o problema está no comando all, que deposita/saca todo seu dinheiro. Eu consegui transformar de cents para dollar, pegando a variável de adicionar/remover item e multiplicar por 100, o problema é que caso o jogador deposite algum dinheiro sem o all, assim: /bank d 100000000, quando ele for sacar com o /bank w all (comando que saca todo o dinheiro da sua conta bancária), ele vai receber 100 vezes mais do que ele depositou. Por que o all vai multiplicar o saldo da sua conta bancária por 100. O código está imprimindo em dollar, mas os comandos são em centavos. E outra coisa, caso o jogador deposit mais de 42 milhões, 969,4 mil, 76 dollares e 96 centavos, o saldo é zerado. E às vezes buga, dando saldo negativo, inclusive criando stacks de 226 notas. Não sei se ficou claro, se estiver confuso, me avisem. Agradeço se alguém puder ajudar. Amanhã vou tentar fazer o transfer, para transferir dinheiro da conta bancária para outros jogadores. Se eu conseguir, eu edito aqui, caso alguém queira. Código: talkactions.xml:
  22. Alguem poderia me ajudar com um comando que iria dar um "reload" na pasta "LIB"? - Para KPDO Server. Obgd ^^'
  23. Galeraa, este é meu primeiro script e também meu primeiro tópico aki no XTibia, Se tiver algum bug, por favor, Comente! ;D Ensinarei como colocar Talkactions para recarregar a soft boots. Primeiro vá em: Data/Talkactions/Scripts E copie e cole qualquer arquivo e renomeie para fire, apague tudo que está lá e cole isso: function onSay(cid, words, param) if doPlayerRemoveMoney(cid, 50000) == TRUE then doPlayerAddItem(cid,9933) doPlayerRemoveItem(cid, 10022, 1) pos = getPlayerPosition(cid) doSendAnimatedText(pos, "Carregada", TEXTCOLOR_RED) elseif(doPlayerRemoveMoney(cid,50000) == FALSE) then doPlayerSendCancel(cid, "Você nao tem dinheiro para recarregar sua Firewalker Boots.") end return TRUE end E depois faça a mesma coisa só que renomeie para soft e cole isso: function onSay(cid, words, param) if doPlayerRemoveMoney(cid, 20000) == TRUE then doPlayerAddItem(cid,2640) doPlayerRemoveItem(cid, 10021, 1) pos = getPlayerPosition(cid) doSendAnimatedText(pos, "Carregada", TEXTCOLOR_BLUE) elseif(doPlayerRemoveMoney(cid,20000) == FALSE) then doPlayerSendCancel(cid, "Você nao tem dinheiro para recarregar sua Soft Boots.") end return TRUE end Depois, abra o Talkactions.xml e cole essas duas tags: E pronto. Sua Talkactions está pronta! ;D Qualquer dúvida só comentar. Flw! e Até mais Galeraa. ;D Créditos: 100% pra mim por ter criado a postado os scripts.
  24. Estou com 2 problemas nesse sistema, estou querendo melhorar ele e deixar o máximo parecido com o jogo original do SNES. Quando a bomba explode em reação cadeia, (várias bombas explodindo ao mesmo tempo) estou disparando o evento para a bomba atingida pela explosão da outra com 1 milesegundo, só que o timer do evento anterior (Disparado ao soltar essa bomba) continua rodando, precisava que esse timer sumisse quando a bomba atingida explodisse. Segue a parte do código que faz isso: Outro problema é quando existem 2 ou mais bombas na mesma linha e elas destroem 2 ou mais coisas que a explosão atinge. Gostaria que apenas o alcance das bombas das pontas que valesse destruindo 1 bloco, player ou o que seja por vez na mesma linha da explosão. Segue a parte do código que destroi os bloquinhos: 2 bombas explodindo 2 blocos na mesma linha e direção up up
  25. galera alguem pederia me passa um sistema de reset tipo quando o player tem pega um certo numero de reset a exp vai caindo quantos mais reset mais dificil fica pra upa Dou mais rep pra quem em ajuda
×
×
  • Create New...