
Histórico de Curtidas
-
samuel.show deu reputação a Huziwara em (Resolvido) [PEDIDO] Item que da promotionOlá, aqui está seu pedido :
Tag XML :
<action itemid="9971" event="script" value="promoitem.lua"/>
Crie um arquivo .lua com nome promoitem dentro da pasta script e bote isso :
function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == 9971) then local id = getPlayerGUID(cid) db.executeQuery("UPDATE `players` SET `promotion` = 2 WHERE `id` ='"..id.."';") doSendMagicEffect(fromPosition, CCONST_ME_MAGIC_RED) doRemoveItem(item.uid, 1) return true end
Não testei, caso apareça algum erro volte aqui e insista !
Espero ter ajudado !
Att. Huziwara no Mokou
-
samuel.show deu reputação a Huziwara em (Resolvido) [PEDIDO] Item que da promotionHá, desculpe-me, esqueci de por um "end" no final.
function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == 9971) then local id = getPlayerGUID(cid) db.executeQuery("UPDATE `players` SET `promotion` = 2 WHERE `id` ='"..id.."';") doSendMagicEffect(fromPosition, CCONST_ME_MAGIC_RED) doRemoveItem(item.uid, 1) return true end end Se não funcionar tente mais uma vez com esse : function onUse(cid, item, fromPosition, itemEx, toPosition) local vocation = getPlayerVocation(cid) local id = getPlayerGUID(cid) if(item.itemid == 9971) then if(isInArray({5,6,7,8,9,10,11,12}, getPlayerVocation(cid)) == TRUE) then elseif vocation == 5 then db.executeQuery("UPDATE `players` SET `vocation` = 9, `promotion` = 2 WHERE `id` ='"..id.."';") elseif vocation == 6 then db.executeQuery("UPDATE `players` SET `vocation` = 10, `promotion` = 2 WHERE `id` ='"..id.."';") elseif vocation == 7 then db.executeQuery("UPDATE `players` SET `vocation` = 11, `promotion` = 2 WHERE `id` ='"..id.."';") elseif vocation == 8 then db.executeQuery("UPDATE `players` SET `vocation` = 12, `promotion` = 2 WHERE `id` ='"..id.."';") end doSendMagicEffect(fromPosition, CCONST_ME_MAGIC_RED) doRemoveItem(item.uid, 1) return true end end
Espero ter ajudado !
Att. Huziwara no Mokou
-
samuel.show deu reputação a Ayron5 em Baú Que dá Outfit se tiver LevelBom galera antes de tudo, pesquisei e não encontrei desse que dá a roupa se tiver o tal level pedido na script.
Tou deixando bem explicado para melhor compreensão de todos. O script é simples e já foi testado, estando o mesmo 100% na minha base 8.54
Vamos lá!
Vá em data/actions/scripts e crie um arquivo Lua chamado > Outfitquest
Feito isso dentro adicione esse código v
Em actions.xml você adiciona v
Explicação:
if item.uid == 12154 then 12154 é a unique id que você vai colocar no baú. Lembrando que vc pode mudar os valores. Obs: Mudando esse valor vc terá que deixar igual na da tag da actions.xml
if getPlayerLevel(cid) >= 30 then 30 é o level que o player precisa ter para concluir a quest. Mude ao seu gosto!
questOut = getPlayerStorageValue(cid, 31503) 31503 é a storage da quest, recomendo não mudar/caso mude, deixe todos eles iguais pois eles se repetem no script.
setPlayerStorageValue(cid, 181655, 1) 181655 é a storage da quest da roupa que vc vai querer que ele ganhe, mas vc me pergunta Ayron/Sepultura onde eu acho essa storage de roupa?
Simples, vá em data/XML e abra o outfits.xml Lá vc encontrará algo assim v
<outfit id = "59" quest = "181655"> <list gender = "0" lookType = "1498" name = "Christmas" /> <!-- 0 mulher, 1 homem --> <list gender = "1" lookType = "1497" name = "Christmas" /> </ outfit> Note que o valor 181655 é o valor da quest que lista as roupas que deseja dar no baú
Atenção aqui ( o script dá a roupa automático de acordo com o sexo do player) ^ ^
Bom se vc já fez tudo deixou as coisas OK falta a ultima parte. Abra o seu (rme map editor) e lá escolha o baú, feito isso aperte com o botão direito do mouse sobre ele
e vá em propriedades, abrirá uma janelinha, na parte da Unique ID coloque o valor da unique da script que é o mesmo da tag na actions.xml = 12154 ficando assim v
Pronto! salve o mapa e vá testar. ^ ^
Espero ajudar alguém, e se ajudei deixa o Rep! aí para fortalecer a amizade
É isso, abraços!
-
samuel.show deu reputação a LuckinhaSan em [NPC] NPC (Você precisa de uma storage para falar com ele)O título já diz.
Script -
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 local storage = 1234 function creatureSayCallback(cid, type, msg) if (msgcontains(msg, "hi") or msgcontains(msg, "hello")) and (not npcHandler:isFocused(cid)) then if getPlayerStorageValue(cid, storage) < 1 then npcHandler:say("How can I help you " .. getPlayerName(cid) .. "?", cid, TRUE) npcHandler:releaseFocus(cid) setPlayerStorageValue(cid, storage, 1) doPlayerAddMoney(cid, math.ceil(math.random(500, 5000))) elseif getPlayerStorageValue(cid, storage) == 1 then npcHandler:say("I got no time. Bye!", cid, TRUE) npcHandler:releaseFocus(cid) end elseif (not npcHandler:isFocused(cid)) then return false end return true end npcHandler:setCallback(CALLBACK_FAREWELL, creatureFarewell) npcHandler:setMessage(MESSAGE_WALKAWAY, "Good bye then.") npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
Pegue um arquivo qualquer de um npc em .xml para colocar na pasta NPC.
Créditos - StreamSide -
samuel.show deu reputação a KotZletY em [Suporte] As caixinhas de informação no LastNewsEsta é uma mensagem automática! Este tópico foi movido para a área correta.
Pedimos que você leia as regras do fórum.
-
samuel.show deu reputação a Sammy em [Resolvido] Como mudar os icones do clientOs seguintes arquivos podem ser editados e encontra-se na pasta do client:
Tibia.spr = Items do Servidor
Tibia.pic = Imagens do client, fundo, icones, etc...
Baixe aqui, os dois executaveis para editar os arquivos.
Boa sorte, TK a disposição.
-
samuel.show deu reputação a ricardo3 em Gesior Acc Maker Para Tibia 8.60(2.0)ATENÇÃO!!!!
NÃO SEI SE FUNCIONARÁ MAS PARA EVITAR ATAQUES À DATABASE DELETE A PASTA WEBDAV NA PASTA DO XAMPP!
Recomendo usar o xampp 1.7.3 para baixa-lo Clique aqui
Olá baixei um gesior e resolvi editar tirar alguns bugs etc...
este gesior funciona nas versoes 8.60 pra cima!
O que tem de novo?
Update 2.0
Screen Shot:
characters.php modificado:
DOWNLOAD:
Gesior Acc 8.60 By [ADM] DaNgeR(2.0).rar
SCAN:
https://www.virustotal.com/file/181723a2883aaf5bd3cc66eeb694db85fb2e1879f10888bdac8d63c0a7f5dcbc/analysis/1334924828/
Créditos:
Gesior
GM Beckman
Walef Xavier
[ADM] DaNger - [ADM] Forever
-Ricardo 3- Por ter trago sem remover os créditos.
QUALQUER ERRO COMENTEM.
-
samuel.show deu reputação a Werner em [Suporte] Npc bugandoVá em data/npcs e crie dijinarms.xml
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Djin Arms" script="data/npc/scripts/dijinarms.lua" walkinterval="0" floorchange="6">
<health now="100" max="100"/>
<look type="104" head="66" body="84" legs="3" feet="2" addons="3"/>
<parameters>
<parameter key="module_shop" value="1" />
<parameter key="shop_buyable" value="Excellent Staff,7409,35000000;Excellent Sword,8931,35000000;Excellent Axe,3962,35000000;Excellent Club,7415,35000000;Excellent Bow,8850,35000000"/>
<parameter key="message_greet" value="Olá, |PLAYERNAME|. Veio olhar as Excellent Arms? ! .."/>
<parameter key="message_farewell" value="Good bye."/>
<parameter key="message_walkaway" value="Good bye." />
<parameter key="message_sendtrade" value="Ok, veja o que tenho aqui.." />
</parameters>
</npc>
Agora em data/npcs/scripts crie dijinarms.lua
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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
npcHandler:addModule(FocusModule:new())
Se usar OTX não esquece de registrar o NPC no npcs.xml
<npc name="DijinArms" file="dijinarms.xml"/>
Se ainda assim não funcionar avise.
Não esqueça de adicionar spawn no RME
-
samuel.show deu reputação a Absolute em [Castle War 24H] Conquiste o trono!Fala galera linduxa do TK; hoje trago a vocês o tão desejado CASTLE WAR 24 HORAS, isto gera disputa intensa entre as guilds de seu servidor, atraindo assim mais jogadores que se interessam por guerras e seus demais sistemas! Modificado e com funções diferentes, no tópico ensinarei como instalar e como funciona.
Como funciona? WOOOOOOOOW!
Há um portal 24h aberto em algum lugar do seu mapa que ficará com o castle disponível 24h (avá).
Quando uma guild qualquer acessar o portal do castelo, irá aparecer para o servidor que a X guild está tentando dominar o castelo, então o líde da guild dominante atual irá dizer !gocastle para teleportar ao castelo e defende-lo.
O Objetivo para conquista do mesmo é invadi-lo derrotar os defensor da guild atual para abrir passagem, digamos assim, e subir ao trono, quando um membro da guild invadir o templo do trono e subir no mesmo a antiga guild dominadora é teleportada para o templo e o castelo fica sob domínio da nova guild.
Você poderá colocar como premiação acesso a áreas exclusivas do castelo, no caso hunts e cia. (Fica a vosso critério)
Evento testado nas versões 8.6; 9.6; 9.83; 9.86!
Observação:
Comando !gocastle faz com que o líder possa teleportar todos os membros da sua guild online para perto dele, desde que ele esteja no castle. Comando pode ser usado a cada 3 horas (exhausted).
Vamos aos scripts do sistema;
Em data/actions/scripts crie um arquivo com o nome de naviocastle.lua e coloque dentro:
function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.actionid == 65500) then if getTopCreature({x=32464,y=32378,z=5}).uid > 0 then doTeleportThing(getTopCreature({x=32464,y=32378,z=5}).uid, {x=32526,y=32421,z=5}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) else doPlayerSendCancel(cid, "Você precisa estar em cima do tapete.") return true end elseif (item.actionid == 65501) then if getTopCreature({x=32526,y=32421,z=5}).uid > 0 then doTeleportThing(getTopCreature({x=32526,y=32421,z=5}).uid, {x=32464,y=32378,z=5}) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) else doPlayerSendCancel(cid, "Você precisa estar em cima do tapete.") end end return true end
Em actions.xml adicione a seguinte linha:
<action actionid="65500-65501" event="script" value="naviocastle.lua"/> Pós feito isto, em data/lib crie um arquivo com o nome de 015-COH e adicione dentro dele:
-- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // COH_PUSHTIME = 10800 -- Tempo (em segundos) de exhausted para usar o comando !gocastle - Padrão (3 horas) COH_AREA = {{x = 32458, y = 32332, z = 7}, {x = 32558, y = 32429, z = 7}} -- Canto superior esquerdo / inferior direito do Castle -- // Não mexa daqui para baixo COH_STATUS = 201320111714 COH_PREPARE1 = 201320111715 COH_PUSHSTOR = 201320111716 COH_PREPARE2 = 201320111717 function doCastleRemoveEnemies() for index, creature in ipairs(getPlayersOnline()) do if isInArea(getThingPos(creature), COH_AREA[1], COH_AREA[2]) then if getPlayerGuildName(creature) ~= getGlobalStorageValue(COH_STATUS) then doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature))) end end end return true end Proximo passo, em data/monster.xml adicione a seguinte linha:
<monster name="Castle Guardian" file="Castle Guardian.xml"/> Em data/monsters crie um arquivo com o nome de Castle Guardian.xml e adicione o seguinte:
<?xml version="1.0" encoding="UTF-8"?> <monster name="Castle Guardian" nameDescription="a castle guardian" race="blood" experience="0" speed="0" manacost="0"> <health now="800000" max="800000"/> <look type="131" head="57" body="19" legs="57" feet="95" addons="1" corpse="6080"/> <targetchange interval="5000" chance="30"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="4"/> <flag staticattack="90"/> <flag runonhealth="800"/> </flags> <attacks> <attack name="melee" interval="2000" min="-60" max="-180"/> <attack name="physical" interval="1000" chance="35" range="7" min="-205" max="-385"> <attribute key="shootEffect" value="energy"/> </attack> <attack name="manadrain" interval="1000" chance="17" range="7" min="-205" max="-560"/> <attack name="speed" interval="1000" chance="12" range="7" speedchange="-600" duration="40000"> <attribute key="areaEffect" value="redshimmer"/> </attack> <attack name="fire" interval="2000" chance="45" range="7" radius="3" target="1" min="-250" max="-420"> <attribute key="shootEffect" value="burstarrow"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="firefield" interval="1000" chance="20" range="7" radius="2" target="1"> <attribute key="shootEffect" value="fire"/> </attack> <attack name="energy" interval="2000" chance="25" length="8" spread="0" min="-265" max="-445"> <attribute key="areaEffect" value="energy"/> </attack> <attack name="speed" interval="6000" chance="10" range="5" speedchange="-600" duration="20000"> <attribute key="areaEffect" value="redshimmer"/> </attack> </attacks> <defenses armor="1" defense="1"/> <elements> <element firePercent="100"/> <element energyPercent="100"/> <element icePercent="100"/> <element earthPercent="90"/> <element holyPercent="-25"/> <element physicalPercent="-33"/> </elements> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="2"> <summon name="deathspawn" interval="1500" chance="0" max="0"/> </summons> <loot> <item id="2148" countmax="20" chance1="100000" chancemax="0"/> </loot> </monster> Pós isto;
Em data/movements/scripts crie um arquivo com o nome de COH.lua e adicione o seguinte:
-- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // function onStepIn(cid, item, pos, fromPosition) local pos = getThingPos(cid) if item.actionid == 16203 then if not isPlayer(cid) then return true end if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then doSendMagicEffect(getThingPos(cid), 14) doSendAnimatedText(pos, "CoH", math.random(1, 255)) else doSendMagicEffect(getThingPos(cid), 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não pertence á guild "..getGlobalStorageValue(COH_STATUS)..".") end return true end if item.actionid == 16202 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then if (getGlobalStorageValue(COH_STATUS) ~= getPlayerGuildName(cid)) then doPlayerSendTextMessage(cid, 20, "[Castle of Honor] Você e sua guild estão no comando, os antigos donos ["..tostring(getGlobalStorageValue(COH_STATUS)).."] podem se vingar!") setGlobalStorageValue(COH_PREPARE1, -1) setGlobalStorageValue(COH_PREPARE2, -1) setGlobalStorageValue(COH_STATUS, getPlayerGuildName(cid)) doCastleRemoveEnemies() doBroadcastMessage("[Castle of Honor] O jogador ["..getCreatureName(cid).."] e sua guild ["..getPlayerGuildName(cid).."] estão no comando do castelo, vá dominar e impedir isso!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não possui uma guild.") end return true end if item.actionid == 16200 then if not isPlayer(cid) then return true end if getPlayerGuildId(cid) > 0 then doSendAnimatedText(pos, "CoH", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE1) ~= getPlayerGuildName(cid)) and ((getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid))) then setGlobalStorageValue(COH_PREPARE1, getPlayerGuildName(cid)) doBroadcastMessage("[Castle of Honor] Atenção! A guild "..getPlayerGuildName(cid).." está tentando dominar o castelo, preparem-se!") end else doSendMagicEffect(pos, 2) doTeleportThing(cid, fromPosition, false) doPlayerSendCancel(cid, "[CoH] Você não possui uma guild.") return true end end if item.actionid == 16201 then if not isPlayer(cid) then return true end doSendAnimatedText(pos, "CoH", math.random(1, 255)) if (getGlobalStorageValue(COH_PREPARE2) ~= getPlayerGuildName(cid)) then setGlobalStorageValue(COH_PREPARE2, getPlayerGuildName(cid)) doBroadcastMessage("[Castle of Honor] Atenção! A guild "..getPlayerGuildName(cid).." está muito próxima do domínio, ataquem!") end end return true end Em data/movements/movements.xml adicione a seguinte linha:
<movevent type="StepIn" actionid="16200-16203" event="script" value="COH.lua"/> Próximo passo:
Em data/talkactions/scripts crie um arquivo com o nome de COHABSOLUTE.lua e adicione o seguinte:
-- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // function onSay(cid, words, param) if getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER then if getPlayerStorageValue(cid, COH_PUSHSTOR) < os.time() then if getGlobalStorageValue(COH_STATUS) == getPlayerGuildName(cid) then if isInArea(getThingPos(cid), COH_AREA[1], COH_AREA[2]) then if #getMembersOnline(getPlayerGuildId(cid)) > 0 then for index, creature in ipairs(getMembersOnline(getPlayerGuildId(cid))) do if (getTileInfo(getThingPos(creature)).protection ~= true) then return doPlayerSendCancel(cid, "[CoH] Os membros devem estar em área PZ.") end doTeleportThing(creature, getThingPos(cid)) end setPlayerStorageValue(cid, COH_PUSHSTOR, os.time() + COH_PUSHTIME) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "[Castle of Honor] Você teleportou seus membros, comando pode ser usado a cada "..tostring(COH_PUSHTIME / 60).." minuto(s).") else doPlayerSendCancel(cid, "[CoH] Para executar isso, sua guild deve ter 2 ou mais membros online.") end else doPlayerSendCancel(cid, "[CoH] Você deve estar no castelo.") end else doPlayerSendCancel(cid, "[CoH] Sua guild não é dona do castelo.") end else doPlayerSendCancel(cid, "[CoH] Você deve aguardar "..tostring(math.ceil((getPlayerStorageValue(cid, COH_PUSHSTOR) - os.time()) / 60)).." minuto(s) para usar este comando.") end else doPlayerSendCancel(cid, "[CoH] Você deve ser líder de uma guild para executar este comando.") end return true end function getMembersOnline(id) local mbr = {} for index, creature in ipairs(getPlayersOnline()) do if getPlayerGuildId(creature) == id then if getCreatureSkullType(creature) < 3 then table.insert(mbr, creature) end end end return mbr or #mbr end Em data/talkactions/talkactions.xml adicione a seguinte linha:
<talkaction words="!castlepush;!pushmembers;!gocastle" event="script" value="COHABSOLUTE.lua"/> Quem disponibiliza o mapa do castelo a vocês é nosso amigo ViitinG, segue o link do tópico para download do mesmo já adaptado para este Castle:
http://www.tibiaking.com/forum/topic/35730-mapa-evento-war-castle/
Explicação das actions e demais (caso não use o mapa disponibilizado pelo Viiting lembre de adicionar ao castelo);
ActionID 16200 - No meio do caminho para o castelo, ActionID 16201 - Perto do castelo, ActionID 16202 - No piso, trono que faz com que domine, e ActionID 16203 - Para a passagem de acesso ás hunts / city exclusivas da guild vencedora. Importante: Para colocar uma passagem para as hunts ou o que for a premiação da guild vencedora, coloque um caminho único com os actionIDS 16203, assim só a guild dominante do castelo poderá passar neste local. É importante lembrar que este script é de autoria do Roksas Nunez, ex scripter da empresa chaitosoft, fiz simples modificações de otimização.
Qualquer dúvida peço que entre em contato comigo e poste aqui no tópico.
Créditos:
Absolute
Roksas
ViitinG
Espero que gostem, afinal raro alguém disponibilizar algo tão desejado e útil assim!
Até o próximo sistema.
Absolute on tibiaking =p
-
samuel.show deu reputação a JhonatanCWest em Aprenda a criar e postar um NPC no seu MapOlá KingTibianos
A pedido de um membro, vou postar um tutorial de como criar um NPC. Explicando detalhadamente.
Primeiramente, cada npc se encontra em data/npcs no seu ot.
Vou postar aqui como exemplo um NPC que venda algumas coisas:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Paul" script="default.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="57" body="86" legs="0" feet="114" addons="2"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_sellable" value="crossbow,2455,150;bow,2456,130"/> <parameter key="shop_buyable" value="crossbow,2455,360;bow,2456,200;spear,2389,10;royal spear,7378,25;assassin star,7368,200;power bolt,2547,30;bolt,2543,3;arrow,2544,2;"/> </parameters> </npc> Explicando:
<?xml version="1.0" encoding="UTF-8"?>
Especifica o tipo de linguagem usada no script. Não altere.
npc name = Nome do NPC
script = Endereço do Script. Default é o padrão.
walkinterval = O intervalo de tempo em que o NPC anda.
floorchange = Se ele "troca de chão", ou seja se ele se movimenta.
healthnow = Tanto de vida que o Npc está no momento. Geralmente modificado em caso de "quests" específicas.
max = O tanto de vida máximo dele. Este deve ser maior que o healthnow.
looktype = Roupa usada, você pode ver as roupas no arquivo: data/XML/outfits.xml
head, body, legs, feet = A cor da roupa, eu não tenho agora, mas vou provicenciar o pack das cores.
addon = Se usa algum addon. 1 para o 1°, 2 para o 2°, 3 para os dois.
<parameters> = Define que abaixo começará uma série de códigos parâmetros.
module_shop = Módulo, usado. No caso aqui, é shop.. compras/vendas.
shop_sellable = Define o que o NPC lhe oferece para vender.
value = Determina as Id's, Nomes e Preços.
crossbow,2455,150; = Primeiro "crossbow" nome que aparecerá na janela de "venda" do NPC, ID do item, Preço do Item;
shop_buyable = Define o que o NPC irá lhe oferece para comprar
Como colocar no RME Map Editor (Atual usado):
1° Abra o RME, juntamente ao seu mapa.
2° Clique em File>Import>Importar Monsters/NPC
3° Clique no arquivo XML acima criado
4° De um F5 para garantir o aparecimento do NPC
5° Vá em Window e selecione Terrain Palette caso ainda não tenha feito isso.
6° Vá em Creature, no canto esquero onde tem um option Terrain Palette.
7° Selecione abaixo em creatures, NPCS.
8° Clique lá embaixo, em spawns e crie uma área de circulamento do NPC no seu Mapa.
9° Clique no nome do seu NPC, e coloque-o no mapa.
10° Salve o Mapa! Pronto!!
Pronto, seu NPC criado, e desenvolvido.
Em breve o tutorial de Mapping, criando uma área para seu NPC! Bem detalhado!
Caso tenha gostado, +REP
Ou ao menos comente sobre o Post!
Abraços!
-
samuel.show deu reputação a yogo em [TalkAction] Sistema de FragsOlá, hoje venho apresentar o script, Sistema de Frags, este script faz com que abra uma janela em game, e depois na janela apresente os 'Top Killers' do servidor.
Bom, vamos lá.
Primeiro, abra a pasta de seu Servidor > Data > TalkActions > Scripts, lá copie qualquer arquivo.LUA e renomeio como "topkillers" e nele coloque isso:
Agora, vamos em seu Servidor > Data > TalkActions > TalkActions.XML lá adicione está linha:
Salve e Feche. Abra seu servidor e veja os 'Top Killers'
Bom esse script, eu só editei.
Obrigado pela Atenção.
Abraços.
-
samuel.show deu reputação a Mathias Kenfi em Armas com efeitosFala galera do TK, hoje vim trazer 1 script de arma com efeito mostrado abaixo:
Quando não sabe editar, parece ser muito complicado, mas depois que aprende é tao simples quanto fazer uma spell qualquer.
Passarei o script e ensinarei a editar. Siga os passos e você logo logo aprenderá a editar a seu gosto.
Simples o dano é normal basta editar. Pois o que nos interessa agora é os efeitos que se localiza aqui.
Como editar a posição e tals? Pow é só mecher nos números.
Não entendeu? Leia denovo, ou pegue os efeitos e edite você mesmo.
AJUDEI? REP+
-
samuel.show deu reputação a MatheusVidaLoka em [Actions] Novo goldFala galera do Tibia King, hoje venho trazer um actions a vocês, queria dizer que essa action já é velha, mas dei uma olhada no TK e não vi nada a respeito da action, então decidi postar para vocês.
Qual a função da Action?
É um novo tipo de gold que cada um vale 1kk, funcionando normal nas compras e vendas de itens em npcs, e nas trocas de crystal coin para o golda nugget (novo gold).
Bom vamos ao script.
Vá em data/actions/scripts e abra o arquivo crystal.lua, apague tudo o que está dentro, logo em seguida cole o script abaixo:
Traduzindo:
Vermelho: É o id da crystal coin, e a quantidade a ser trocada por 1 gold nugget (Novo Gold).
Azul: É o id da gold nugget, e a quantidade de gold nugget.
Logo em seguida, vá novamente em data/actions/scripts copie qualquer arquivo.lua e cole, em seguida renomeie-o para "goldnuggets" sem aspas, abra-o, apague tudo, e cole o script abaixo.
Traduzindo:
Laranja: É o que vai dizer quando o player trocar 1 gold nugget por 100 crystal coins.
Verde: É o id da crystal coin, e a quantidade equivalente a 1 gold nugget.
Logo em seguida, abra data/actions/actions.xml e adicione a tag abaixo.
Traduzindo:
Rosa: É o id do gold nuggets.
Azul: O nome do arquivo.lua que você salvou.
Depois disso abra data/items/items.xml, aperte CTRL + F, e digite 2157, ai você vai achar o item Gold Nugget que vai estar assim:
Substitua tudo por isso:
<item id="2157" article="a" name="gold nugget" plural="gold nuggets">
<attribute key="weight" value="10"/>
<attribute key="worth" value="1000000" />
Traduzindo:
Vermelho: Peso do gold nugget.
Azul: Valor do item (como 1 crystal coin = 10k , 1 gold nugget = 1kk)
Logo depois vá data/actions/scripts/other e abra o arquivo changegold.lua, susbistitua tudo oque está la dentro por esse script a seguir, e salve:
-- By MatheusVidaLoka
local coins = {
[iTEM_GOLD_COIN] = {
to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
},
[iTEM_PLATINUM_COIN] = {
from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
},
[iTEM_CRYSTAL_COIN] = {
from = ITEM_PLATINUM_COIN, to = 2157, effect = TEXTCOLOR_LIGHTBLUE
},
[2157] = {
from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_TEAL
}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
return false
end
local coin = coins[item.itemid]
if(not coin) then
return false
end
if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then
doChangeTypeItem(item.uid, item.type - item.type)
doPlayerAddItem(cid, coin.to, 1)
doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
elseif(coin.from ~= nil) then
doChangeTypeItem(item.uid, item.type - 1)
doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
end
return true
end
Traduzindo:
Vermelho: É o id do Gold Nugget.
Por fim vá em data/actions/actions.xml, pule uma linha qualquer e cole isso, e salve:
<action itemid="2157" event="script" value="other/changegold.lua"/>
Traduzindo:
Azul: É o id do gold nugget.
Verde: O nome do arquivo que você salvou.
Server testado em Ot 8.60 e funcionou corretamente.
Creditos:
MatheusVidaLoka
JFLNT
Se enfringi alguma regra do TK por favor me reporte.
Desculpe-me pelos mal usos das ferramentas do TK (quotes,spoiler,CODES,etc) pois estou com certos problemas.
-
samuel.show deu reputação a MatheusEnjoy em Heal com cores diferentesNome: Heal Changing Colors
Versão: 1.0
Testado: TFS 0.3.5 Pl1 e 0.4 (Deve funcionar em todos)
Descrição: Você pode decidir mudar a cor para o que você gostaria de ser mostrado para o texto animado quando você se curar.
Vamos la:
game.cpp:
Procure na função:
bool Game::combatChangeHealth Por isso:
addAnimatedText(list, targetPos, TEXTCOLOR_GREEN, buffer);Substitua por:
addAnimatedText(list, targetPos, g_config.getNumber(ConfigManager::HEALTH_HEALING_COLOR), buffer);Procure na função:
bool Game::combatChangeManaPor isso:
addAnimatedText(list, targetPos, TEXTCOLOR_DARKPURPLE, buffer);Substitua por:
addAnimatedText(list, targetPos, g_config.getNumber(ConfigManager::MANA_HEALING_COLOR), buffer); configmanager.cpp:Procure por:
m_confBool[SHOW_HEALING_DAMAGE_MONSTER] = getGlobalBool("showHealingDamageForMonsters", false);Adicione abaixo:
m_confNumber[HEALTH_HEALING_COLOR] = getGlobalNumber("healthHealingColor", TEXTCOLOR_GREEN); m_confNumber[MANA_HEALING_COLOR] = getGlobalNumber("manaHealingColor", TEXTCOLOR_DARKPURPLE); configmanager.h:Procure por:
NAME_REPORT_TYPE,Adicione abaixo:
HEALTH_HEALING_COLOR, MANA_HEALING_COLOR,Save a copile.
config.lua:
Adicione ao config
healthHealingColor = TEXTCOLOR_GREEN manaHealingColor = TEXTCOLOR_DARKPURPLECréditos:Evil Hero - OTLand
-
samuel.show deu reputação a Tibia Dr em Comandos rapidos RMEOla pessoal, trousse todos os comandos rapidos que conheço do RME :
Ctrl + Q = fecha o Remere's map editor
Ctrl + W = deixa o floor a baixo invisível
Ctrl + E = deixa o mapa invisível
Ctrl + T = abre o editor de cidades (serve para editar o nome da cidade e aonde fica o templo “local onde o personagem renasce após a morte”)
Ctrl + Y = vai para frente (ex: após usar Ctrl + Z)
Ctrl + O = procurar para abrir um arquivo (open file)
Ctrl + P = abre as propriedades do mapa
Ctrl + S = salva o mapa
Ctrl + F = procura itens (pela id ou nome)
Ctrl + G = vai para o local escolhido (definido por: X/Y/Z
Ctrl + Z = volta uma coisa
Ctrl + C = copia o local selecionado
Ctrl + V = cola o local selecionado (após usar Ctrl + C)
Ctrl + N = cria um novo projeto
Q = deixa o floor abaixo mais escuro
W = abre palette de waypoints
E = desativa visão de casa
R = abre palette de RAW
T = abre palette de Terrain
I = abre palette de items
O = marca em vermelho os locais onde o personagem não consegue passar
S = aparece ou desaparece o Spawn time flame (fogo que faz monstros renascerem)
D = abre palette doodad
F = faz os animais desaparecerem
G = Deixa objetos transparentes
H = abre house palette
J = abre o itens selecionado no RAW palette (usando id ou nome)
C = abre palette de creatures
V = marca em azul todos os detalhes do mapa
M = abre o mini mapa de navegação
Espero que não seja inutil, e tambem espero que gostem, vlw TibiaKing!
-
samuel.show deu reputação a juliosky em [8.60] EekBaiak by [ADM] EekEae galera do TK, vim pra postar hoje aqui pra vcs meu ot que eu mesmo editei a grande parte dele... meu primeiro post ai de ot meu aki.
Tenho ele a um bom tempo ja, mais venho sempre melhorando, agr descidi postar aqui pra vcs, configurem ao seus gostos.
Oque coloquei ao sv ?
Distro Tfs 0.3.6 City totalmente reformulada 8.60 Nova city donate Removido 8 Vips; Adicionado 2 Vips, 1 free e outra Donate Items, set editados Items donate Novas areas hunts Novas quests Monstros novos Area de eventos Cassino 5 Novos eventos automaticos adicionados; CTF ( Capture de Flag ) Zombie event Battle field Blood Castle Castle 24h GFS ( Guild Frag System ) Bom entre outras coisas, mais o mais importante está ai e adicionado por mim !
Record de player 92 em 1 semana.
Algumas Screenshots
- Templo
- Teleports
- Itens donate
- City Vip donate
SCAN - Virus total
Download - Mediafire
É isso galera do TK, REP+ se gostar e REP- se caso nao gostou, comente,critique oq quiserem
-
samuel.show deu reputação a Antipush em Baiak-ice 8.60 Atualizado com Real Castle e Varios sistemasHoje lhes trago um Baiak Brayan Com Novidades.
OTServ Com Base Do baiak-ice e Baiakrox
Skype id antipush037
Eventos E Features
Snowball war Rei [KingofBaiak] Defend the towers Capture the flag Rushevent Battlefield Castle 48hrs Castle 24hrs
Server INFO
versão 8.60 fixado bugs criticos mapa reformulado pronto para rodar Recomendo tfs 0.4 Stamina Refil Vip 1 2 Vip Donate items Donate Removeskull Dogdes/Critical Seller Vip
Algumas Screenshots
TEMPLO
EVENTOS
AREA DO BOSS REAL CASTLE 48HR
ITEMS DO SELLER VIP E ITEMS DONATE
Otserv Completo
http://www.mediafire.com/file/q9m75ovnk7h6g9q/otserv.zip
Scan
https://www.virustotal.com/pt/file/a1357122defdea2c0a96092d75dbb46d6f7db5c1bc03a07b75325948fdbe0d81/analysis/
Creditos
Antipush (eu)
Brayan
Tk ( por alguns scripts)
Tenha Melhor Preço e Qualidade Do Mercado Com Sweb Clouds linux/windows
-
samuel.show deu reputação a leandrovp em [8.60] Hero-server (Editado)Bem, aqui eu trago o Hero-server é editado com alguns tps
- Corrigido o bug das !spells que dava DEBUG,
- No mapa existem várias quests e vips tps,
- Novos itens: Arma De Fesin,Ultra Kill Sword,Ultra Kill Club,Ultra Kill Axe,Ultra Kill Bow,Ultra Kill Arrow (também vende o NPC) (O ultra matar de ultra matar seta arco e vende a seta para a 30kk npc e arco para 35kk
- novas Quests
- Monstro novo : Mystic Medusa
- Nova vocação: Fesin Y Test Fesin
- Possui diversas cidades
- Free: Arumha, Nova: Kakitz
- Vip: Vip City (1 busca nele como o vip annhi é encesitan 4 pessoas)
O mapa é adequado para qualquer exp baixa, média ou alta
Os trainers são o topo de um templo npc leva
O barco está lá cidade >>> para sair da cidade e, em seguida, desça a escada
esque não leste ou oeste
npc info vip no templo vende armas vip
Esqueci de mencionar que também há vida e vá mana
Editadas e novas magias:
diga!!spells para vê-los
Outfit Notícias (Skullhunter Só Para Premium (Vip).
Todos : Exevo Gran Trap
Sorcerer e Druid: Exevo Mas Dead
Pally : exevo bolt hur,exevo mas song
Knight : exori mas gran
FOTOS :
Templo
Bugs: A nova vocação nem a arenaa não funciona
Creditos :
Gean Riot (70%)
LukaszG (10%)
Luszin (15%)
##### (4%)
Leandrovp (1%) por postar
Download :
http://www.4shared.com/file/Fp02_py0/Hero_Serv_860__EDITADO__002.html
-
samuel.show deu reputação a tiroleivi em Global FULL 8.60 | Zao, War System, Cast System...Obg....
-
samuel.show deu reputação a tiroleivi em Global FULL 8.60 | Zao, War System, Cast System...
-
samuel.show deu reputação a tiroleivi em Global FULL 8.60 | Zao, War System, Cast System...Global Full
8.60
Descrição
Estarei disponibilizando um Mapa Global Full + Zao na versão 8.60, à pedido do @rozinx.kungsan.
Modificações que contém no OT
Ilhas VIPs Cast System War System Woe Itens Vips (com Id Próprio) (Configurado e Balanceado) NPCs Modificados Treiner Offline Treiners VIP Novas Hunts Invasões automáticas 2 novos addons (Soil Guardian e Entrepreneur) E muito mais! Cliente 8.60 compatível com os addons e itens editados
ILHA VIP (Furia)
NPCS (Tibia Addon, Vende Addon por Crystal Coin)
Treiners (ON e OFFline)
Itens Vip (Donate) (ID Próprio)
Cliente 8.60 Compatível com : (2 novos addons e itens editados)
(Para alterar a Imagem do Cliente basta editar ou trocar o Tibia.pic)
2 Novos Addons
Soil Guardian
Entrepreneur
Downloads
Global Full 8.60 + DB ~~~~~~~~~ SCAN
Cliente 8.60 Compatível ~~~~~ SCAN
Web-Site ~~~~~~~~~~~~~ SCAN
Source e Distro
items.xml Sem itens DONATE
outfits.xml Sem os dois ADDONS
OBS: A Database que vem junto com o OTSERV é compativel com o WEB-SITE acima.
Cliente Próprio somente se for usar os itens Donate e os dois Addons que foi adicionado.
Como Rodar o Servidor + Site
-
samuel.show deu reputação a Kimoszin em Criando Spells para seu servidor!Ola gaaaaaaalera, é com muito prazer que venho trazer esse primeiro tutorial meu como Aprendiz do TibiaKing,
Spells:
Bom, spells sao as magias do nosso servidor, elas servem tanto para healar, atacar, dar suporte e etc ...
Criar magias é algo muito simples, vc mesmo poderam criar quantas magias quiserem para o seu servidor seguindo esse tutorial,
Muito bem, vamos começar ...
Spells de Curar (Healing)
Obrigado a Todos,
Estou terminando de fazer o SpellMaker para facilitar a vida de vc,
Abraços
-
samuel.show deu reputação a Wakon em [AJUDA] Resetar o servidor@zPerseu, evite reviver tópicos antigos, a não ser que seja algo relacionado ao tópico! Se você está com alguma dúvida, crie um tópico na seção de suporte.
-
samuel.show deu reputação a KotZletY em [PEDIDO] Como fazer para um item ativar Aura@samuel.show
-
samuel.show recebeu reputação de SamuelSwitter em [PEDIDO] Como fazer uma script de um NPC, para dar permissão para usar um talkactionAqui esta a Script da Aura
-- CONFIGURAÇÕES
aurastr = 25950 -- storage da aura
estr = 25951 -- storage para o exhaust
porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem
quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura)
tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar)
tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo)
efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo)
-- Função que chama a aura
function efeitosAura(i,tm,cid)
if(isCreature(cid)) then
local atual = getCreaturePosition(cid)
local posaura = {
{x=(atual.x)-1, y=(atual.y)-1, z=atual.z},
{x=atual.x, y=(atual.y)-1, z=atual.z},
{x=(atual.x)+1, y=(atual.y)-1, z=atual.z},
{x=(atual.x)+1, y=atual.y, z=atual.z},
{x=(atual.x)+1, y=(atual.y)+1, z=atual.z},
{x=atual.x, y=(atual.y)+1, z=atual.z},
{x=(atual.x)-1, y=(atual.y)+1, z=atual.z},
{x=(atual.x)-1, y=atual.y, z=atual.z},
}
local chances = math.random(100)
if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then
doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal)
if(i<=8 and i>1) then
doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, atual, tipoaura)
else
doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura)
end
doSendMagicEffect(atual, efeitocura)
end
if(i==8) then
doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura)
elseif(i<8) then
doSendDistanceShoot({x=posaura.x, y=posaura.y, z=posaura.z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura)
end
if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then
i = i+1
tm = tempo/8
return addEvent(efeitosAura,tm,i,tm,cid)
elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then
return efeitosAura(1,0,cid)
else
return TRUE
end
else
return TRUE
end
end
-- Função principal
function onSay(cid, words, param, channel)
if(param=="on") then
if getPlayerStorageValue(cid, estr) > os.time() then
doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.")
else
if(getPlayerStorageValue(cid, aurastr)==2) then
doPlayerSendCancel(cid,"Sua aura já está habilitada.")
elseif(getPlayerStorageValue(cid, aurastr)==-1) then
doPlayerSendCancel(cid,"Aura ligada!")
setPlayerStorageValue(cid, aurastr, 2)
efeitosAura(1,tempo/8,cid)
end
end
elseif(param=="off") then
if(getPlayerStorageValue(cid, aurastr)==2) then
setPlayerStorageValue(cid, estr, os.time()+2)
setPlayerStorageValue(cid, aurastr, -1)
doPlayerSendCancel(cid,"Aura desligada!")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.")
end
return TRUE
end
Queria que tivesse um npc em que de para dar a permissao para usar essa Talkaction!