Líderes
-
-
-
-
xWhiteWolf
HéroiPontos3605Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 05/03/16 em %
-
Mostrar o tempo da Magic Wall
Mostrar o tempo da Magic Wall
xlx reagiu a xWhiteWolf por uma resposta no tópico
1 pontoEae galera, hoje vou fazer uma pequena demonstração de como usar a função doShowTimeByPos, uma das mais novas funções adicionadas na New Lib, que agora está em versão 1.2. A função: Se seu server for 0.3.6/0.4 você só vai precisar adicionar essa linha marcada: do contrário, se ele for das revs mais novas como 1.0 você irá adicionar essa linha: Esses valores são a duração (20 segundos que é o tempo de duração da magic wall) e 20/35 é o TALKTYPE do tipo monster (cor laranja), seguindo a tabela do data\lib\constant.lua: TALKTYPE_FIRST = 1 TALKTYPE_WHISPER = 2 TALKTYPE_YELL = 3 TALKTYPE_PRIVATE_PN = 4 TALKTYPE_PRIVATE_NP = 5 TALKTYPE_PRIVATE = 6 TALKTYPE_CHANNEL_Y = 7 TALKTYPE_CHANNEL_W = 8 TALKTYPE_RVR_CHANNEL = 9 TALKTYPE_RVR_ANSWER = 10 TALKTYPE_RVR_CONTINUE = 11 TALKTYPE_BROADCAST = 12 TALKTYPE_CHANNEL_RN = 13 TALKTYPE_PRIVATE_RED = 14 TALKTYPE_CHANNEL_O = 15 TALKTYPE_CHANNEL_RA = 17 TALKTYPE_MONSTER = 19 TALKTYPE_MONSTER_YELL = 20 Aqui tem uma imagem de como fica no server. Note que eu fiz pra magic wall mas vale pra qualquer item que tenha duration, pra quests, pra contar tempo de invencibilidade de alguma spell ou oque você quiser, use a criatividade e explore o máximo dessa função. Abraços.1 ponto -
[8.54] PokeCyan [ Editado By Senhor] Atualizado 3.0 2016
Boa Noite , Boa Tarde ou Bom Dia TK's não sei a hora que vocês vão ver o Tópico Estava com meu Projeto do "Pokemon H" Fiz várias Ediçoes no Servidor Que Baixei aqui no Tibia King Mesmo e vim disponibilizá-los para vocês. Então bora ao que interessa né? • Menu: ├ Informações; ├ Edições; ├ Erros; ├ Prints; ├ Mapa ├ Download; ├ Atualização; ├ Utilitários; └ Créditos. • Informações Básicas • • Edições / Ajustes • • Erros do Servidor • • Prints• • MAPA • • Downloads • Cliente * MediaFire e Scan Servidor * MediaFire e Scan • Download Atualização 2.0 • Download: https://www.mediafire.com/?ik211gku2hdqz2t Scan : • Download Atualização 3.0 • 2016 OBS: NÃO TERÁ MAIS EDIÇÕES. • Utilitários • Remeres que usei pra editar: AQUI • Créditos • Brun Por Criar o Servidor Slicer Por Editar o Servidor Mulurka (pelas out) Stylo pelo tuto do ícone system noninhu por ajudar em alguns spells tem 2 caras tbm eu eskeci o nome deles agora que ajudaram 1 com as insignias na barra de skill e o outrio pelas scripts da liga pokemon dandanrvb pelas scripts do icone system erondino por algumas caves ih é só bjundão a all Vudi (Eu) Por editar o resto do servidor e trazer as novidades Tioj Pelas edições e Por fazer eu copiar a organização do tópico dele kk obg Kuuhaku pela cave dos geot . Held Itens By Gabriel Sales Gabriel Sales AnnaFeeh pelo script do ditto system pxg Obs: Se Está faltando algum crédito me avise pra mim colocar ( Não sei se está faltando algum) Obs: Qualquer Outra Duvida Estarei de Suporte no Tópico Obs: SENHA GOD/GOD OBS : Se Pegar o Servidor e Postar em Outro Fórum sem as minhas permissão vou pedir para o dono do forum ou site retirar o conteúdo . (Esse Conteúdo é exclusivo do TibiaKing obrigado) Se ajudei Já sabe né1 ponto
-
Magnus Challenger
Magnus Challenger
bagulhoescroto reagiu a xWhiteWolf por uma resposta no tópico
1 pontoFala galera, hoje vim trazer o projeto pronto do Magnus Challenger pra vocês instalarem no servidor de vocês! Pra quem não conhece é um sistema de Tasks baseado no Zezenia onde você pode escolher entre tasks de matar monstros ou de coletar certos items para o npc Magnus, um guerreiro famoso da cidade que está atolado de tarefas e precisa da sua ajuda! Peguei os aspectos que eu julguei serem os principais do modelo do Zezenia e editei com algumas coisas que eu achei que ficariam melhores. Quem quiser pode ver um vídeo comentado de como o sistema funciona: Dito isso vou ensinar vocês como instalar isso no server: Pra começar vá em data\creaturescripts\scripts e procure login.lua, agora vá até o final do arquivo e antes do último return true coloque essas linhas abaixo ainda em creaturescripts procure creaturescripts.xml e adicione essa linha junto com as outras que já estão lá (seguindo o padrão) <!-- TASK SYSTEM --> <event type="kill" name="tasksystem" script="tasksystem.lua"/> Agora crie um arquivo em creaturescripts\scripts com o nome de tasksystem.lua e adicione o seguinte à ele: Terminada a parte da contagem de kill vamos ao NPC em si. Crie um arquivo chamado Magnus.xml em data\npc e coloque isso dentro dele: Agora em data\npc\scripts crie um arquivo chamado zezeniaa.lua e adicione esse conteúdo dentro do arquivo: ~~~~~~~~~~~~~~~~ FEITO ISSO ESTÁ TERMINADO ~~~~~~~~~~~~~~~~~~ Agora aprendendo a configurar: No tasksystem vc pode editar isso daqui: Eu fiz um sistema onde se vc estiver em party com alguém e a pessoa matar os bixos conta como se você tivesse matado; Assim incentiva o pessoal a ir numa cave de Dragon e ao invés de matar quem está lá pra ficar sozinho na cave, eles vão chamar party pra fazerem a task juntos.. assim fazer amigos fica mais fácil e com maiores laços é maior a chance do povo não abandonar o seu server. Apenas digite "true" ou "false" pra ativar/desativar esse sistema e em baixo temos a distancia máxima pro monstro estar do cara que está fazendo a task pra contar o kill. Se a distancia entre o monstro e a pessoa for maior que 7 não vai contar pra ele a kill. No zezeniaa.lua as coisas que dão pra configurar são maiores mas são igualmente simples: Toda vez que vc pedir uma task short (curta) vc vai ter de 100 a 400 monstros pra matar, ele gera um número de 0 a 6 e multiplica por 5 e soma com os 100 iniciais.. o mesmo vale pra todos os outros valores. levelcollect é o level mínimo pra fazer tasks do tipo collect. time é o tempo em segundos que você vai ficar sem poder falar com o npc caso desista de alguma task, o padrão é 8 * 60 * 60 (8 horas) bonus é por quanto vai multiplicar caso vc permita que o npc escolha aleatoriamente entre todas as opções.. o padrão é 20% de bonus (1.2) multiplicador é uma coisa que eu adicionei pra ficar mais fácil mexer na fórmula sem cometer cagadas, se vc tá ganhando 10% de exp e quer ganhar 80% é só colocar 8 no multiplicador. Isso daqui é o banco de dados principal do sistema de kill, toda vez que vc escolher uma task do tipo fácil, médio, dificil ele vai acessar essas tabelas contendo o nome das criaturas.. vc pode facilmente adicionar novos nomes, o npc já está programado pra lidar com isso, apenas siga o padrão e mantenha sempre o último sem vírgula! Ex: adicionando Morgaroth na tabela de hard local hard = { [1] = "Giant Spider", [2] = "Dragon Lord", [3] = "Grim Reaper", [4] = "Demon", [5] = "Crystal Spider", [6] = "Demon Skeleton", [7] = "Juggernaut", [8] = "Destroyer", [9] = "Hand of Cursed Fate", [10] = "Morgaroth" } atente-se também pra não repetir o número no index.. se o anterior era [9] use [10]. O restante das tabelas são separadas para o banco de dados das tasks de collect: segue a mesma lógica da de kill só que aqui você tem o id dos itens que serão usados... aquela count não tem nada a ver com o item pois ele vai gerar tanto o item aleatoriamente quanto à count; Ex: [1] = {id = 5880, count = 20}, -- iron ore isso não significa que se cair iron ore (id 5880) irá cair sempre 20.. até porque eu poderia escolher uma task long e easy e pegar a task de trazer até 50 iron ores, apenas tente manter os padrões que são os intervalos definidos. No easy ele varia de 10 a 20, no medium ele varia de 20 a 35 e no hard de 40 a 50. Espero que vocês tenham curtido, é um sistema grande mas bem simples de se mexer... se tiverem quaisquer problemas podem comentar aqui. Deu trabalho fazer isso então se você gostou deixe o seu comentário aí e o seu "Gostei" que vai me incentivar a trazer mais coisas desse tipo pra cá. Abraços do lobo. PS: Pra sumonar o npc digite com o GOD: /n Magnus ou coloque ele pelo map editor.1 ponto -
[Link Quebrado] [Link Quebrado]Remere's Map Editor ( Versão Cliente Estendida/Extended)
[Link Quebrado] [Link Quebrado]Remere's Map Editor ( Versão Cliente Estendida/Extended)
ewertoon911 reagiu a vudi por uma resposta no tópico
1 pontoBoa Tarde Tk's . Bom como já vi varios reclamando que não consegue abrir o remeres map editor para Clientes versão extended , estarei postando para ajudar vocês. Customized Remere's Map Editor Suporta Versão: 7.6 - 10.37 Features: * Suporte para extended clients. * Support for transparency (Menu File > Preferences > Client Version) Visual C++ Redistributable Packages (Required installation) GitHub Instalando: 1º Basta baixar a versão normal do Remere's Map Editor no Site do Remeres e instalar em seu computador. 2º Depois Baixa a versão que postei pra download. 3º Terceiro Extraia a versão que postei pra download na pasta aonde o Remere's Map Editor foi instalado. 4º Substitui todos os arquivos quando pedir , sempre clicando em subistituir , Sim , Ok. 5º Abre o Remere's Map Editor e vai em Menu File > Preferences > Cliente Version , Clique em Extended e Selecione a pasta do cliente do pokemon ou que você deseja. 6º Basta Fechar o Remere's Map Editor e abrir novamente e selecionar o mapa que deseja editar. Obs: Os clientes regulares não apoiará dados com transparência e / ou opção Extended. Obs: Já esta configurado para versão do Servidor e do cliente que postei do Cyan By Senhor Extended Download : http://www.4shared.com/rar/YPgAc2hAce/Remeres_Map_Editor.html Scan : Clique Aqui Extended Download By Senhor : https://www.mediafire.com/?fyklwfdwcawxepv Scan : Clique aqui OBS: Coloquei Dois Download , Um que ta configurado para versão do meu Servidor e do Meu cliente estendido e o Outro está configurado para versão normal dos clientes estendidos. Créditos : Hjnilsson (RME) MartyX - Ajudou a compilar Comedinha (Bruno Carvalho) EdMignari Pessoal do TPForums Vudi por postar. Outros1 ponto -
[10.90] LKing OT {Reward Chest, Battlefield Event, 3 VIP}
[10.90] LKing OT {Reward Chest, Battlefield Event, 3 VIP}
Nerivalhs reagiu a LukazGiovanni por uma resposta no tópico
1 pontoFala galerinha! Criei e arrumei o servidor para que todos possa colocar online e fazer um ótimo uso do mesmo. Coloquei ele online por umas semanas e fui arrumando tudo, agora creio eu que está em 70% o projeto. Porfavor, ninguém publique esse servidor em algum outro fórum a não ser que venha me pedir permissão. Vamos ao que interessa. LKing OT TFS 1.2 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* • King Itens Quest • King Set (Vendida no Npc) • Divine Itens Quest • Super Divine Itens Quest • Epic Divine Itens Quest ~#~ VIP I, II e III (Quest) ~#~ Pits Of Inferno (POI) Anihi Demon Oak Yalahari Quest Firewalker Boots Quest Warzone I, II e III *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ♦ Cast System (!cast on // !cast off) ♦ Reward Chest ♦ Critical e Dodge System ♦ War System ♦ Battlefield Event ♦ Zombie Event ♦ Bank System ♦ Market System ♦ Training Offline ♦ All Mounts 10.90 (Só com Mount Doll, vendida no npc) ♦ All Addons 10.90 (Só com Addon Doll, vendida no npc) ♦ Mágias modificadas (retirado um pouco do exhausted) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* Fuon City (Cidade principal) 3 Cidades VIP Roshamuul Grey Island Gnomebase (Warzone I, II e III) ~#~ +15 Quests +25 Teleports (com monstros editados) *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ◄ IMAGENS ► Minimap Templo (+sub solo) Depot Teleports Quests (1 e 2) Entrada Área Vip I, II e III *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ◄ DOWNLOAD ► Servidor + Mapa + Executável 64bits ~ Clique aqui Executável 32bits ~ Clique aqui Vírus Total ~ Clique aqui ~#~ Sources ~ Clique aqui Vírus Total ~ Clique aqui ~#~ Website Gesior Acc + Database ~ Clique aqui Vírus Total ~ Clique aqui ~#~ LKing - Remere's Map Editor 10.90 ~ Clique aqui *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ◄ CRÉDITOS ► Executável 10.90 ~ Marco Oliveira Mapa, npcs, quests, teleports, vip, itens, magias.. 80% do Servidor ~ Lukaz Giovanni (EU ) Espero que vocês goste do servidor. Se eu ver que a galera curtiu e quer mais atualizações, vou modificando e publicando atualizações sempre.1 ponto -
SISTEMA DE ADDON COMPLETO
SISTEMA DE ADDON COMPLETO
Angellgreen reagiu a Viny 13 por uma resposta no tópico
1 pontoBom gente esses dias o @Ceetros postou um sistema de Addon, que funciona no fly, ride e surf Só vou repostar aqui pra vocês, pois ele só postou no outro forum Vá em actions/scripts e crie um arquivo chamado addon.lua. Adicione isso lá: function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [ID DO ITEM] = {pokemon= "NOME DO POKEMON" , looktype = LOOKTYPE NORMAL, fly = FLY, SE NÃO TIVER PONHA 0, ride = RIDE, SE NÃO TIVER PONHA 0, surf = SE NÃO TIVER SURF PONHA 0}, } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local addon = addons[item.itemid].looktype local fly = addons[item.itemid].fly local ride = addons[item.itemid].ride local surf = addons[item.itemid].surf local pb = getPlayerSlotItem(cid, 8).uid local pk = addons[item.itemid].pokemon if getItemAttribute(pb,"poke") ~= pk then doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.") return false end if getItemAttribute(pb,"addon") >= 0 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",addon) doSetItemAttribute(pb,"addonfly",fly) doSetItemAttribute(pb,"addonride",ride) doSetItemAttribute(pb,"addonsurf",surf) return true end return true end Em actions.xml adicione: <action itemid="ID;ID;ID" event="script" value="addon.lua"/> Agora em actions/goback.lua antes de: else doPlayerSendCancel(cid, "This pokemon is fainted.") end return true end Adicione: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) end Em lib/order.lua encontre: local pokemon = flys[getPokemonName(getCreatureSummons(cid)[1])] doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.") doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 500 + PlayerSpeed/5 + getSpeed(sid) * 6 * speedRate doChangeSpeed(cid, speed) setPlayerStorageValue(cid, 54844, speed) doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1])) doRemoveCreature(getCreatureSummons(cid)[1]) setPlayerStorageValue(cid, 17000, 1) Abaixo adicione: local addonfly= getPlayerSlotItem(cid, 8).uid local addofly = getItemAttribute(addonfly,"addonfly") if not addofly then doSetItemAttribute(addonfly,"addonfly",0) end if addofly > 0 then doSetCreatureOutfit(cid, {lookType = addofly}, -1) end Continuando em order.lua Encontre: local pokemon = rides[getPokemonName(getCreatureSummons(cid)[1])] doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 150 + PlayerSpeed + getSpeed(sid) * 5 * speedRate doChangeSpeed(cid, speed) setPlayerStorageValue(cid, 54844, speed) doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1])) doRemoveCreature(getCreatureSummons(cid)[1]) setPlayerStorageValue(cid, 17001, 1) Em baixo adicione: local addonride = getPlayerSlotItem(cid, 8).uid local addoride = getItemAttribute(addonride,"addonride") if not addoride then doSetItemAttribute(addonride,"addonride",0) end if addoride > 0 then doSetCreatureOutfit(cid, {lookType = addoride}, -1) end Agora em movements/surf.lua encontre: doSetCreatureOutfit(cid, {lookType = surfs[getPokemonName(getCreatureSummons(cid)[1])].lookType + 351}, -1) doCreatureSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", lets surf!", 1) doChangeSpeed(cid, -(getCreatureSpeed(cid))) E troque por: local addonsurf = getPlayerSlotItem(cid, 8).uid local addosurf = getItemAttribute(addonsurf,"addonsurf") if not addosurf then doSetItemAttribute(addonsurf,"addonsurf",0) doSetCreatureOutfit(cid, {lookType = surfs[getPokemonName(getCreatureSummons(cid)[1])].lookType + 351}, -1) end if addosurf > 0 then doSetCreatureOutfit(cid, {lookType = addosurf}, -1) end doCreatureSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", lets surf!", 1) doChangeSpeed(cid, -(getCreatureSpeed(cid))) No mesmo arquivo ache: doSummonMonster(cid, pokemon) Logo abaixo adicione: local pk = getCreatureSummons(cid)[1] local balla = getPlayerSlotItem(cid, 8).uid local balladdon = getItemAttribute(balla,"addon") if not balladdon then doSetItemAttribute(balla,"addon",0) end if balladdon > 0 then doSetCreatureOutfit(pk, {lookType = balladdon}, -1) end Por ultimo em actions/order.lua encontre: doPlayerSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", let me get down!", 1) doRegainSpeed(cid) --alterado v1.7 doRemoveCondition(cid, CONDITION_OUTFIT) Abaixo adicione: local pkjg = getCreatureSummons(cid)[1] local pkza = getPlayerSlotItem(cid, 8).uid local pkxd = getItemAttribute(pkjg,"addon") if not pkxd then doSetItemAttribute(pkza,"addon",0) elseif pkxd > 0 then doSetCreatureOutfit(pkjg, {lookType = pkxd}, -1) end Caso não tenha addon box vá data/actions/scripts e adicione isso: Explicando: local addons = {12803,12804,12805,12806,12807,2135,2136,2137,2138,2139,2142} ( Onde tá os numeros é o id da sua addon ) onde tá 12802 ( é o id da addon box ) Onde tá (1, 11 ) é a quantidade de items que tem na box,sempre que for adicionar uma aumente o numero pois pode falhar. EM DATA/ACTIONS/ACTIONS.XML ADICIONE ESTA TAG : <action itemid="ID DA SUA ADDON BOX" event="script" value="addon box.lua"/> Pra finalizar Vá em creaturescripts/scripts/login.lua Troque tudo por:1 ponto -
Remere's Map Editor 10.90
Remere's Map Editor 10.90
Samuel Cstr reagiu a Bruno Minervino por uma resposta no tópico
1 pontoChangelog Versão 10.90 Suporte para versões 10.10+ Live casts Ultima versão do projeto oficial Download Mediafire Items.otb (atualizado) Scan Créditos Colaboradores - Projeto Oficial Bruno Minervino1 ponto -
Pyrus OT, 1.5
1 pontoPokemon Pyrus ot Antes de tudo por favor, leia abaixo: Leiam aqui plx Informações: Imagens: Creditos: Scan Extras: REP + Novidades da 1.5 Download: http://www.mediafire.com/download/d2kcwj61kwrt6gk/PYRUS_OT.rar UTILIZEI PARA EDITAR passa na page do projeto que to trabalhando pra dar aquela força https://www.facebook.com/PokemonImperiumPI/?fref=nf1 ponto
-
[Wono 1.2] World of Naruto Online
[Wono 1.2] World of Naruto Online
Gnomano reagiu a Ken Kaneki por uma resposta no tópico
1 pontoCréditos: Wono Team, Pozdro Servidor do WONO (World of Naruto Online) na versão 1.2 O Servidor possui tudo do Wono 1.2 dentre vocações Jutsus e tudo mais, encontrei a datapack em um site polônes, creio que pode haver versões atualizadas espalhadas por ai, enfim, baixem e aproveitem o conteúdo ______________________________________________________________________________________________ • Info • 14 Transformações todos os personagens • Spells de acordo com anime • Jutsus e transformações novas Imagens ______________________________________________________________________________________________ OBS: Recomendo apenas utilizarem scripts etc, não recomendo por online. Download: Mega, Zippyshare Scan: Virustotal Caso não consiga baixar pelo mega baixe pelo zippyshare que o Storm Night disponibilizou.1 ponto -
[LAYOUT Gesior] Dbo Global
[LAYOUT Gesior] Dbo Global
Lincoln123123 reagiu a Thiago Rulexz por uma resposta no tópico
1 pontoDBO GLOBAL LAYOUT (GESIOR) Bom galera ja fáz um tempo que parei de entrar no TK esses dias me mandaram um site de um server de dbo que continha a msm aparência do Dbo Global, decidi trazer a vocês Print Download: Scan : https://www.virustotal.com/pt/file/bfb8f7ad70c03f1c09907676b5a5402df7a99175b79bcdf2be674ef6e24efd42/analysis/1457465655/1 ponto -
[Official] XenoBot (Tibia 10.92) [PANDORIUMX]
[Official] XenoBot (Tibia 10.92) [PANDORIUMX]
Hanezin reagiu a correagui14 por uma resposta no tópico
1 pontoXENOBOT STANDALONE Versão : 10.92 Instruções: Baixar Extrair a pasta .Zip e executar 'Xenobot.exe' Colocar seu login e senha do PandoriumX ( Site que crackeia e disponibiliza, obrigatório se cadastrar lá : https://www.pandoriumx.com) Aproveitar! Link do Download (Retirado do Pandoriumx) ; E O SCAN TAMBEM , eu utilizo e nunca fui roubado! Faça sua escolha , pois nao é de minha autoria o recurso! DOWNLOAD SCAN1 ponto -
[PDA] Piso Por storange
[PDA] Piso Por storange
victor0707 reagiu a MaXwEllDeN por uma resposta no tópico
1 pontolocal config = { msgDenied = "Para passar aqui voce precisa completar as tasks nescessarias", msgWelcome = "Sua passagem esta liberada!!.", storage = 50000, } function onStepIn(cid, itemid, position, fromPosition) if getPlayerStorageValue(cid, config.storage) < 1 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) end return true end1 ponto -
[Ajuda] Dat Editor
1 pontoBom o link do último release está aqui. É igual ao DatEditor para usar. Fiz uma imagem com algumas coisas básicas, se quiser algo mais concreto pode procurar no youtube, tenho certeza que existem vídeos sobre como utilizar o Object Builder. Imagem:1 ponto
-
[Ajuda] Dat Editor
1 pontoBom, eu sempre tive problemas com o DatEditor por incompatibilidades de versão. Já tentou utilizar o Object Builder?1 ponto
-
[HELP] worldType: "pvp"??
[HELP] worldType: "pvp"??
canaldextiger reagiu a Cellu por uma resposta no tópico
1 ponto@canaldextiger Na TFS 0.4 (REV 3777) o "OPEN" entra no lugar do "PVP". Só trocar o "PVP" por "OPEN", que vai continuar pvp normal =]1 ponto -
[HELP] worldType: "pvp"??
[HELP] worldType: "pvp"??
canaldextiger reagiu a Rusherzin por uma resposta no tópico
1 pontoUsa "open" ao invés de "pvp". Em algumas versões do tfs "open" é o equivalente ao "pvp".1 ponto -
Servidor em manutenção
Servidor em manutenção
Justiceiro reagiu a karlkalvin por uma resposta no tópico
1 pontoshutdownAtGlobalSave = true é só colocar false ali mesmo, remova o save do globalevents, causa lag.1 ponto -
Servidor em manutenção
Servidor em manutenção
Justiceiro reagiu a Enzo Caue por uma resposta no tópico
1 pontoProcure o script save.lua dentro da pasta scripts em globalevents e cole aqui.1 ponto -
[SCRIPT] Crystal Coin -> Gold Ingot
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.1 ponto
-
BASE NARUTO SEAL WAR
BASE NARUTO SEAL WAR
Yazka reagiu a eduardo021321 por uma resposta no tópico
1 pontoObrigado Amigo por Essa base, Tem bugs mas nao é complicado de "arrumar" +Rep1 ponto -
Glossário - Pixel Art/Sprites
Glossário - Pixel Art/Sprites
Omanacleto reagiu a 3visan por uma resposta no tópico
1 pontoGlossário - Pixel Art/Sprites Significado dos termos Isso é meio que uma guia para iniciantes em Sprites, muitos não entenden os termos então aqui vou explicar cada significado. Glossario: Anti-Aliasing (AA): Efeito utilizado pra deixar o sprite com um ar menos serrilhado, suavizando as cores. A falta de AA é muito comum em sprites de novatos. Backside: Termo usado pra denominar determinado sprite de "costas". Normalmente usado em outfits de players e monstros. Contraste: É o efeito de deixar uma cor mais evidente deixando ela perto de outra que "não combine". Por exemplo deixar cores escuras perto de claras sem uma cor intermédiaria pra suavizar. Pode-se dizer que é o contrário de AA e Pillow Shadding. A Golden Armor do Tibia mostra bem isso: Lineart: Termo não muito usado, refere-se as linhas do sprite. Podem estar muito grossas, sujas, etc. Acontece de errar muito quando se trata de spriters preguiçosos que simplismente arrastam o mouse pelo espaço e fazem linhas quadradas, sem capricho. Aqui vai um exemplo disso e do lado a correção, eliminando os pixels indevidos e deixando a curva mais natural: Mask: São máscaras que cobrem seu outfit pra dar cor a ele quando adicionado ao cliente. Non-sense: Sem sentido. É utilizado quando você faz algo anormal, que não pode ser utilizado na prática. Uma espada de fogo congelado, por exemplo (lol). Outline: As linhas de fora do sprite, que formam sua estrutura. Normalmente são pretas, mas pode variar em certos casos. Na imagem abaixo o exemplo da outline de uma espada: Paint: Programa pra edição de imagens. Normalmente é mais utilizado por novatos, por já acompanhar o Windows. Como não tem muitos efeitos, é tudo feito de maneira muito natural. É mais trabalhoso, mas pode deixar seu trabalho mais valioso. Embora seja considerado por muitos simples demais, também é o preferido de grandes spriters. Paint.net: Programa pra edição de imagens. Perspectiva: É a direção com que o sprite é visto. No Tibia utilizamos a perspectiva em 45º inclinado pra esquerda. Exemplo da evolução de um rascunho fora da perspectiva. Pic (Tibia.pic): Arquivo que acompanha o cliente do Tibia. Nele estão as imagens do cliente, como aquela principal (de abertura), a cor do fundo, a barra de HP/Mana e outros. Pillow Shadding: Efeito que aparece quando se utiliza AA demais, dando suavidade em excesso nas transições de cores (sem contraste). Note no exemplo abaixo a quantidade de camadas de cinza até variar do claro pro escuro: Pixel: Cada "quadradinho" do sprite. Esse termo é utilizado pra descrever tamanho, como por exemplo "32x32 pixels" (32 quadrados de largura e 32 de altura) e pode ser abreviado como "px". Na imagem abaixo, o ponto branco central compreende a 1 pixel. Pixel Art: Estilo de arte que valoriza os pixels ao máximo. Por ser muito detalhista normalmente é feito de imagens pequenas, mas alguns artistas chegam a construir cidades só com pequenos pontos. É um estilo promissor, já que pode ser usado pra ilustrar diferentes áreas (inclusive jogos). Exemplo de Pixel Art feito por Jojow. Ripping: Nessa seção é o ato de postar um sprite que não foi feito por você sem a autorização do verdadeiro criador. É ilegal e está sujeito a punição. Serrilhado: Efeito comum pra novatos. Acontece quando o sprite não está muito "suave" nos seus traços, precisando adicionar AA. Em uma espada, acontece quando está com as laterais sem corte. Lembrando que em alguns casos é necessário deixar serrilhado, quando você quer fazer ums espada gasta, por exemplo. Smooth: Quando aplicado num sprite significa deixa-lo mais limpo, suave. Isso pode ser feito utilizando menos tons de cores e aumentando o contraste. Exemplo: Sprite muito poluído e depois mais limpo. Sombreado: Fase da pintura onde são adicionadas sombras no sprite. Elas dão forma e volume, realçando os detalhes e deixando sua criação mais natural. Exemplo: Na primeira imagem não da ver os detalhes do vestido, por exemplo. Depois de sombreado, pode-se notar os lugares onde tem mais e menos relevo. Sprite: Imagens que construem o gráfico dentro do jogo. Os itens, as casas, as árvores, os monstros... tudo é composto pelos sprites. Spriter: Pessoa que faz os sprites. Textura: É o aspecto visual que o material de determinado sprite passa. Quando tocamos ou olhamos para um objeto ou superfície sentimos se a sua pele é lisa, rugosa, macia, áspera ou ondulada... ou seja, a sua textura. Tibia.dat (dat): Arquivo que acompanha o cliente do Tibia. Nele ficam as informações que 'organizam' as sprites do arquivo Tibia.spr para que o cliente entenda. Tibia.spr (spr): Arquivo onde ficam compiladas todas as sprites do Tibia. Trabalha em conjunto com o Tibia.dat. Observações: - Muitos termos podem ser óbvios para uns, mas para outros pode ser algo esclarecedor. - É difícil lembrar de todos os termos, portanto não coloquei muitos... quem quiser dar uma sugestão de um termo desconhecido, fique avontade. Creditos: 99% K r e x | pelo glossário | 1% Vittu | por trazer para o forum e pela organização |1 ponto -
Mostrar o tempo da Magic Wall
1 pontotenta assim spells > scripts > support magic wall rune.lua local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) function onCastSpell(cid, var) function MagicWallTime(pos, delay) doSendAnimatedText(pos, delay, 145) if delay ~= 1 then addEvent(MagicWallTime, 1000, pos, delay -1) end end local pos,duration = variantToPosition(var),20 MagicWallTime(pos,duration) return doCombat(cid, combat, var) end1 ponto
-
[PEDIDO] Como Extender Client OLD/NTO
[PEDIDO] Como Extender Client OLD/NTO
Noach Kerman reagiu a gabrielzika por uma resposta no tópico
1 pontoAi man se vc usa new client só me mandar o Seu client que eu deixo Old1 ponto -
Talkaction !promotion
Talkaction !promotion
Death Claw reagiu a poko360 por uma resposta no tópico
1 pontolocal config = { promotion = 1, -- promotion level, default = 1 . Ignore if you don't have new vocations. minLevel = 20, -- Level needed to buy promotion cost = 20000, -- Promotion cost in gp premium = "yes" -- is premium needed to buy promotion? } local disabledVocations = {0} config.premium = getBooleanFromString(config.premium) function onSay(cid, words, param) if(isInArray(disabledVocations, getPlayerVocation(cid)) == TRUE) then doPlayerSendCancel(cid, "Your vocation cannot buy promotion.") elseif(config.premium == TRUE and isPremium(cid) == FALSE) then doPlayerSendCancel(cid, "Voce precisa ser donate para comprar promotion.") elseif(getPlayerPromotionLevel(cid) >= config.promotion) then doPlayerSendCancel(cid, "You are already promoted.") elseif(getPlayerLevel(cid) < config.minLevel) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You need level " .. config.minLevel .. " to get promotion.") elseif(doPlayerRemoveMoney(cid, config.cost) ~= TRUE) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You do not have enought money! (Promotion cost " .. config.cost .. " gp.") else setPlayerPromotionLevel(cid, config.promotion) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have been succesful promoted to " .. getVocationInfo(getPlayerVocation(cid)).name .. ".") end return TRUE end1 ponto -
Dat e Spr Otnaruto
Dat e Spr Otnaruto
Matheus Reis reagiu a Nanewolf por uma resposta no tópico
1 pontoOla Primeirmente. Eu Trago A Dat e a Spr Do Ot Naruto.. Pelo Oque Eu Vi No Meu Object Builder Não Tem Nenhum Personagem Ou Sprite Nova Bugada.. Estão Todas Corretas... Desculpe Me Se Jah Tiver Outro Post Igual a Este. Desculpe Me Se Postei Isto Na Area Errada Mais Se Estiver Porfavor Mande Devolta Para a Area Correta. Para Quem Não Conheçe o OtNaruto Aki Esta o Site Dele Otnaruto.com Dowload Da Spr e Da Dat Aki Em Baixo ... Dat e Spr RAR; https://www.mediafire.com/?kx8fl554ejzpy22 Client Version; 8.54 Scan; Se Alguem Me Dizer Um Site Eu Ficaria Grato Client Compativel; Nto Atarashi V2 Se Eu Ajudei Deixe Seu Rep + Bom e So Isso Galera Fui . A e Para Quem Não Tem o Object Builder Baixa Nesse Post Aki; http://www.tibiaking.com/forum/topic/30624-object-builder/ Prints1 ponto -
(Resolvido)TSF 1.0 NPC BANK {BUG}
Tente trocar seu script por este : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local Topic, count, transfer = {}, {}, {} 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 function getCount(s) local b, e = s:find('%d+') return b and e and math.min(4294967295, tonumber(s:sub(b, e))) or -1 end local function findPlayer(name) local q = db.getResult('SELECT name FROM players WHERE name=' .. db.escapeString(name) .. ' LIMIT 1'), nil if q:getID() == -1 then return end local r = q:getDataString('name') q:free() return r end function greet(cid) Topic[cid], count[cid], transfer[cid] = nil, nil, nil return true end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false elseif msgcontains(msg, 'balance') then npcHandler:say('Your account balance is ' .. getPlayerBalance(cid) .. ' gold.', cid) Topic[cid] = nil elseif msgcontains(msg, 'deposit') and msgcontains(msg, 'all') then if getPlayerMoney(cid) == 0 then npcHandler:say('You don\'t have any gold with you.', cid) Topic[cid] = nil else count[cid] = getPlayerMoney(cid) npcHandler:say('Would you really like to deposit ' .. count[cid] .. ' gold?', cid) Topic[cid] = 2 end elseif msgcontains(msg, 'deposit') then if getCount(msg) == 0 then npcHandler:say('You are joking, aren\'t you??', cid) Topic[cid] = nil elseif getCount(msg) ~= -1 then if getPlayerMoney(cid) >= getCount(msg) then count[cid] = getCount(msg) npcHandler:say('Would you really like to deposit ' .. count[cid] .. ' gold?', cid) Topic[cid] = 2 else npcHandler:say('You do not have enough gold.', cid) Topic[cid] = nil end elseif getPlayerMoney(cid) == 0 then npcHandler:say('You don\'t have any gold with you.', cid) Topic[cid] = nil else npcHandler:say('Please tell me how much gold it is you would like to deposit.', cid) Topic[cid] = 1 end elseif Topic[cid] == 1 then if getCount(msg) == -1 then npcHandler:say('Please tell me how much gold it is you would like to deposit.', cid) Topic[cid] = 1 elseif getPlayerMoney(cid) >= getCount(msg) then count[cid] = getCount(msg) npcHandler:say('Would you really like to deposit ' .. count[cid] .. ' gold?', cid) Topic[cid] = 2 else npcHandler:say('You do not have enough gold.', cid) Topic[cid] = nil end elseif msgcontains(msg, 'yes') and Topic[cid] == 2 then if doPlayerRemoveMoney(cid, count[cid]) then doPlayerSetBalance(cid, getPlayerBalance(cid) + count[cid]) npcHandler:say('Alright, we have added the amount of ' .. count[cid] .. ' gold to your balance. You can withdraw your money anytime you want to.', cid) else npcHandler:say('I am inconsolable, but it seems you have lost your gold. I hope you get it back.', cid) end Topic[cid] = nil elseif msgcontains(msg, 'no') and Topic[cid] == 2 then npcHandler:say('As you wish. Is there something else I can do for you?', cid) Topic[cid] = nil elseif msgcontains(msg, 'withdraw') then if getCount(msg) == 0 then npcHandler:say('Sure, you want nothing you get nothing!', cid) Topic[cid] = nil elseif getCount(msg) ~= -1 then if getPlayerBalance(cid) >= getCount(msg) then count[cid] = getCount(msg) npcHandler:say('Are you sure you wish to withdraw ' .. count[cid] .. ' gold from your bank account?', cid) Topic[cid] = 4 else npcHandler:say('There is not enough gold on your account.', cid) Topic[cid] = nil end elseif getPlayerBalance(cid) == 0 then npcHandler:say('You don\'t have any money on your bank account.', cid) Topic[cid] = nil else npcHandler:say('Please tell me how much gold you would like to withdraw.', cid) Topic[cid] = 3 end elseif Topic[cid] == 3 then if getCount(msg) == -1 then npcHandler:say('Please tell me how much gold you would like to withdraw.', cid) Topic[cid] = 3 elseif getPlayerBalance(cid) >= getCount(msg) then count[cid] = getCount(msg) npcHandler:say('Are you sure you wish to withdraw ' .. count[cid] .. ' gold from your bank account?', cid) Topic[cid] = 4 else npcHandler:say('There is not enough gold on your account.', cid) Topic[cid] = nil end elseif msgcontains(msg, 'yes') and Topic[cid] == 4 then if getPlayerBalance(cid) >= count[cid] then doPlayerAddMoney(cid, count[cid]) doPlayerSetBalance(cid, getPlayerBalance(cid) - count[cid]) npcHandler:say('Here you are, ' .. count[cid] .. ' gold. Please let me know if there is something else I can do for you.', cid) else npcHandler:say('There is not enough gold on your account.', cid) end Topic[cid] = nil elseif msgcontains(msg, 'no') and Topic[cid] == 4 then npcHandler:say('The customer is king! Come back anytime you want to if you wish to withdraw your money.', cid) Topic[cid] = nil elseif msgcontains(msg, 'transfer') then if getCount(msg) == 0 then npcHandler:say('Please think about it. Okay?', cid) Topic[cid] = nil elseif getCount(msg) ~= -1 then count[cid] = getCount(msg) if getPlayerBalance(cid) >= count[cid] then npcHandler:say('Who would you like to transfer ' .. count[cid] .. ' gold to?', cid) Topic[cid] = 6 else npcHandler:say('There is not enough gold on your account.', cid) Topic[cid] = nil end else npcHandler:say('Please tell me the amount of gold you would like to transfer.', cid) Topic[cid] = 5 end elseif Topic[cid] == 5 then if getCount(msg) == -1 then npcHandler:say('Please tell me the amount of gold you would like to transfer.', cid) Topic[cid] = 5 else count[cid] = getCount(msg) if getPlayerBalance(cid) >= count[cid] then npcHandler:say('Who would you like to transfer ' .. count[cid] .. ' gold to?', cid) Topic[cid] = 6 else npcHandler:say('There is not enough gold on your account.', cid) Topic[cid] = nil end end elseif Topic[cid] == 6 then local v = getPlayerByName(msg) if getPlayerBalance(cid) >= count[cid] then if v then transfer[cid] = msg npcHandler:say('Would you really like to transfer ' .. count[cid] .. ' gold to ' .. getPlayerName(v) .. '?', cid) Topic[cid] = 7 elseif findPlayer(msg):lower() == msg:lower() then transfer[cid] = msg npcHandler:say('Would you really like to transfer ' .. count[cid] .. ' gold to ' .. findPlayer(msg) .. '?', cid) Topic[cid] = 7 else npcHandler:say('This player does not exist.', cid) Topic[cid] = nil end else npcHandler:say('There is not enough gold on your account.', cid) Topic[cid] = nil end elseif Topic[cid] == 7 and msgcontains(msg, 'yes') then if getPlayerBalance(cid) >= count[cid] then local v = getPlayerByName(transfer[cid]) if v then doPlayerSetBalance(cid, getPlayerBalance(cid) - count[cid]) doPlayerSetBalance(v, getPlayerBalance(v) + count[cid]) npcHandler:say('Very well. You have transferred ' .. count[cid] .. ' gold to ' .. getPlayerName(v) .. '.', cid) elseif findPlayer(transfer[cid]):lower() == transfer[cid]:lower() then doPlayerSetBalance(cid, getPlayerBalance(cid) - count[cid]) db.executeQuery('UPDATE players SET balance=balance+' .. count[cid] .. ' WHERE name=' .. db.escapeString(transfer[cid]) .. ' LIMIT 1') npcHandler:say('Very well. You have transferred ' .. count[cid] .. ' gold to ' .. findPlayer(transfer[cid]) .. '.', cid) else npcHandler:say('This player does not exist.', cid) end else npcHandler:say('There is not enough gold on your account.', cid) end Topic[cid] = nil elseif Topic[cid] == 7 and msgcontains(msg, 'no') then npcHandler:say('Alright, is there something else I can do for you?', cid) Topic[cid] = nil elseif msgcontains(msg, 'change gold') then npcHandler:say('How many platinum coins would you like to get?', cid) Topic[cid] = 8 elseif Topic[cid] == 8 then if getCount(msg) < 1 then npcHandler:say('Hmm, can I help you with something else?', cid) Topic[cid] = nil else count[cid] = math.min(500, getCount(msg)) npcHandler:say('So you would like me to change ' .. count[cid] * 100 .. ' of your gold coins into ' .. count[cid] .. ' platinum coins?', cid) Topic[cid] = 9 end elseif Topic[cid] == 9 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2148, count[cid] * 100) then npcHandler:say('Here you are.', cid) doPlayerAddItem(cid, 2152, count[cid]) else npcHandler:say('Sorry, you do not have enough gold coins.', cid) end else npcHandler:say('Well, can I help you with something else?', cid) end Topic[cid] = nil elseif msgcontains(msg, 'change platinum') then npcHandler:say('Would you like to change your platinum coins into gold or crystal?', cid) Topic[cid] = 10 elseif Topic[cid] == 10 then if msgcontains(msg, 'gold') then npcHandler:say('How many platinum coins would you like to change into gold?', cid) Topic[cid] = 11 elseif msgcontains(msg, 'crystal') then npcHandler:say('How many crystal coins would you like to get?', cid) Topic[cid] = 13 else npcHandler:say('Well, can I help you with something else?', cid) Topic[cid] = nil end elseif Topic[cid] == 11 then if getCount(msg) < 1 then npcHandler:say('Hmm, can I help you with something else?', cid) Topic[cid] = nil else count[cid] = math.min(500, getCount(msg)) npcHandler:say('So you would like me to change ' .. count[cid] .. ' of your platinum coins into ' .. count[cid] * 100 .. ' gold coins for you?', cid) Topic[cid] = 12 end elseif Topic[cid] == 12 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, count[cid]) then npcHandler:say('Here you are.', cid) doPlayerAddItem(cid, 2148, count[cid] * 100) else npcHandler:say('Sorry, you do not have enough platinum coins.', cid) end else npcHandler:say('Well, can I help you with something else?', cid) end Topic[cid] = nil elseif Topic[cid] == 13 then if getCount(msg) < 1 then npcHandler:say('Hmm, can I help you with something else?', cid) Topic[cid] = nil else count[cid] = math.min(500, getCount(msg)) npcHandler:say('So you would like me to change ' .. count[cid] * 100 .. ' of your platinum coins into ' .. count[cid] .. ' crystal coins for you?', cid) Topic[cid] = 14 end elseif Topic[cid] == 14 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, count[cid] * 100) then npcHandler:say('Here you are.', cid) doPlayerAddItem(cid, 2160, count[cid]) else npcHandler:say('Sorry, you do not have enough platinum coins.', cid) end else npcHandler:say('Well, can I help you with something else?', cid) end Topic[cid] = nil elseif msgcontains(msg, 'change crystal') then npcHandler:say('How many crystal coins would you like to change into platinum?', cid) Topic[cid] = 15 elseif Topic[cid] == 15 then if getCount(msg) == -1 or getCount(msg) == 0 then npcHandler:say('Hmm, can I help you with something else?', cid) Topic[cid] = nil else count[cid] = math.min(500, getCount(msg)) npcHandler:say('So you would like me to change ' .. count[cid] .. ' of your crystal coins into ' .. count[cid] * 100 .. ' platinum coins for you?', cid) Topic[cid] = 16 end elseif Topic[cid] == 16 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2160, count[cid]) then npcHandler:say('Here you are.', cid) doPlayerAddItem(cid, 2152, count[cid] * 100) else npcHandler:say('Sorry, you do not have enough crystal coins.', cid) end else npcHandler:say('Well, can I help you with something else?', cid) end Topic[cid] = nil elseif msgcontains(msg, 'change') then npcHandler:say('There are three different coin types in Tibia: 100 gold coins equal 1 platinum coin, 100 platinum coins equal 1 crystal coin. So if you\'d like to change 100 gold into 1 platinum, simply say \'{change gold}\' and then \'1 platinum\'.', cid) Topic[cid] = nil elseif msgcontains(msg, 'bank') then npcHandler:say('We can change money for you. You can also access your bank account.', cid) Topic[cid] = nil end return true end npcHandler:setCallback(CALLBACK_GREET, greet) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())1 ponto
-
Fazendo a Base
1 ponto[Vídeo - Iniciantes] Fazendo Base de Montanha Passo 1: Faça a base já com a estrutura da montanha, como você é um iniciante, já faça com autoboarder e depois abra caminhos com o chão de montanha. Faça vários andares, quantos quiser. Fiz uma montanha pequena por ser um tutorial de exemplo. Como está em base preta, parte das bordas da montanha já estarão prontas e sempre que você for fazer em base de grama ou outro ground, tente imitar elas como estão. Essas bordas eu vou ensinar a colocar sem ter que usar o raw e perder tempo com bobagens, já que você é um iniciante! Imagem para o Passo 2 Passo 2: Agora, você apertará no botão marcado na imagem acima e irá apertar na frente do local onde você quer colocar sua borda de montanha. Assim, aparecerá a borda. Acompanhe com atenção no vídeo. E, assim, vai minha principal dica para fazer uma boa montanha e bonita. Evite colocar nas pontas, como postarei na imagem abaixo. Sem usar essas bordas, sua montanha ficará simples e também bonita. Se você ficar experiente em mapping, você pode também continuar usando esse atalho, pois poupa muito tempo e fica muito bom do mesmo jeito! Imagem da Dica - NãO USE ESSAS BORDAS NO SEU MAPA Resultado Vídeo Espero que tenham gostado do tutorial!1 ponto