Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 03/11/12 em %

  1. [Apresentação] SkyDangerous [+Novo]

    Garou e um outro reagiu a Skydangerous por uma resposta no tópico

    2 pontos
    Olá Galerinha Tkenses, irei fazer uma divulgação nova minha, atualizada para a galerinha que frequenta o fórum. Bom, sempre que vocês tiverem dúvidas pode me consultar pelo msn, por mensagem privada ou por tópicos mesmo aqui, só mandar o link que é um prazer em ajuda-lo. Vale lembrar que não sou um nerd, apenas tudo isso foi muita dedicação, muitas noites sem ir em festas, ver a mulherada. Criador de WebSite - Programador em HTML (Estudei em um curso técnico, porém nunca mais utilizei) - Programador em HTML 4 (Tempos atrás estava fazendo um curso da Microsoft, ai terminei, porém nem utilizo) - Programador em PHP (Estudei no curso técnico, uso de vez enquanto no Gesior ou para treinar) - Programador em CSS (Estudei em um curso técnico, porém nunca usei, é chato pra caramba) - Programador em MYSQL (Estudei em um curso técnico, utilizo principalmente nos otserv ) Criador de Programa: - Linguagem Python(Parei de estudar, porém meu conhecimento é bom) - Linguagem C++(Parei de estudar, porém tenho altos conhecimentos) - Lógica da Programação(Muito tempo que eu não vejo ) - Linguagem LUA(Estudando e aprimorando todos os dias, meu conhecimento é bom ) - Linguagem Pawn(Estudei para fazer plugins de cs para meus servidor) - Linguagem C(Parei de esutdar, porém tenho altos conhecimentos) - Linguagem JAVA(Estudei, fiz vários projetos com banco de dados junto, porém muito complicado desisti.) - Linguagem C#(Estudando, para criação de makers para facilitar a vida dos leigos criação de npcs,scripts e tudo mais) - Action Script 3.0 (Estudei 1 mês, para criação de um game em flash em várias plataformas as principais win e linux) em OTSERV - A mais de 2 anos sou ADMINISTRADOR de meu servidor. - Correções de todos os erros no executável. - Sei criar spells, configurar as spells, mudar os efeitos, colocar as tags, e configurar os danos. - Sei criar monsters, configurar tudo que ele possui, chances de loot, danos de magias, efeitos de magia .. tudo possível. - Sei criar novos items que já existe no tibia, porém com outros ids sem estragar o cliente - Sei criar novos items, por efeitos neles, como healar mais, tirar mais na magia, dano físico tudo mais - Sei mecher em tudo na pasta data, adicionar quest, configurar arquivos xml, adicionar novas funções - Sei compilar as sources do seu servidor tanto para windows quanto para linux - Faço mapas bem elaboradores e com muito rpg, sei configurar casas, respawn e tudo possível. - Sei adicionar novas sprites no seu servidor, e fazer funcionar 100% - Sei criar novos menus para o seu tibia, alterar o cliente e o ip dele, - Sei criar vários scripts em xml(mod) , action , spells , movements, creaturescript , globalevents .. Se você interessou, e precisar de ajuda em alguma coisa a cima, manda a ver que respondo tudo que for possível e estar ao meu alcance. Eu entro em equipes, porém teque me convencer
  2. Interactive Training Monk

    Alberess e um outro reagiu a Guilherme. por uma resposta no tópico

    2 pontos
    Isso aqui vai deixar o Training Monk um pouquinho mais 'interativo' ! Ele vai te falar uma estimativa de quanto dano você está causando por segundo. Adicione isso em creaturescripts.xml <event type="statschange" name="DPScounter" event="script" value="dpscounter.lua"/> Agora crie um arquivo .lua na pasta creaturescripts com o nome de dpscounter.lua e adicione isso local exhaust = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhaust, CONDITION_PARAM_SUBID, 82936) setConditionParam(exhaust, CONDITION_PARAM_TICKS, 10000) function getDamageDone(cid, targetpos) targetpos.x = targetpos.x - 1 if(isPlayer(cid)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Average DPS: ".. getPlayerStorageValue(cid, 82936) / 10 .."") doCreatureSay(cid, "You are currently dealing an average of ".. getPlayerStorageValue(cid, 82936) / 10 .." damage per second.", TALKTYPE_ORANGE_1, false, 0, targetpos) return setPlayerStorageValue(cid, 82936, 0) end return true end function onStatsChange(cid, attacker, type, combat, value) if(type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if(not isPlayer(attacker)) then return true end setPlayerStorageValue(attacker, 82936, getPlayerStorageValue(attacker, 82936) + value) if(getCreatureCondition(attacker, CONDITION_EXHAUST, 82936) == false) then setPlayerStorageValue(attacker, 82936, 0) addEvent(getDamageDone, 9900, attacker, getCreaturePosition(cid)) doAddCondition(attacker, exhaust) end end return true end E por último, modifique seu Training Monk, que normalmente fica na pasta monsters <?xml version="1.0" encoding="UTF-8"?> <monster name="Training Monk" nameDescription="a training monk" race="blood" experience="0" speed="210" manacost="0"> <health now="99000" max="99000"/> <look type="57" corpse="3128"/> <targetchange interval="60000" chance="0"/> <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 staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <script> <event name="DPScounter"/> </script> <attacks> <attack name="melee" interval="5000" min="0" max="-1"/> </attacks> <defenses armor="0" defense="0"> <defense name="healing" interval="10000" chance="100" min="24000" max="24000"/> </defenses> </monster> Créditos ao Shawn por todo o script
  3. [8.6] Mapa Baiak

    xainvi reagiu a MapperTibiano por uma resposta no tópico

    1 ponto
    Oque a De Diferente No Mapa ? - 1 ou 2 Novos Mostros (: - Com vip 3 - Mapa 70 % Editado Por Min - Sistema De Loteria - Novas Houses - Templo Com Novo Visual - - Novos Tp's - Novos Itens (Balanciados (: ) - Tp's Com Novo Visual - E Outros (: Dowlond - Scan - Creditos : Math 30 % e a Min 70 % _______________________________________________________________________________________________________ Print's Vip City Novos Tp's Templo Tp's Gostoo ? Daa Rep+ Aii (: Galeraa Comentaa Oque Acharam Do Mapaa (: (:
  4. [CreatureEvent] Efeito no Player

    CabralChoi reagiu a Kimoszin por uma resposta no tópico

    1 ponto
    Bom pessoal, criei esse script totalmente inutil e util para vocês, espero que gostem - Oque exatamente ele faz? Nada, ele só verifica se o player tem uma storage e se o player tiver, quando ele logar vai aparecer um efeito em um tempo configuravel, Por Exemplo, o player é VIP, ai o seu system vip tem uma storage, você adiciona essa storage no script e o player vai ficar com um efeito, ou ... Tem aquela super quest fodona em seu servidor, pq nao mostrar para os outros que aquele player conseguiu fazer? *-* - Nossa que legal, como posso ter isso no meu servidor? Simples amigo, basta você ir em \data\creaturescripts\scripts, depois adicionar um registro no login.lua e adicionar uma linha em creaturescripts.xml effect.lua local effect = 30 -- Efeito que vai usar local storage = 9994 -- Storage que o player precisa ter local tempo = 5 -- Tempo em segundos function onLogin(cid) if getPlayerStorageValue(cid, storage) == 1 then SendEffect(cid) end return TRUE end function SendEffect(cid) doSendMagicEffect(getCreaturePosition(cid), effect) addEvent(SendEffect, tempo*1000, cid) return TRUE end Agora adicione isso em login.lua registerCreatureEvent(cid, "Effect") Agora adicione esse code em creaturescripts.xml <event type="login" name="Effect" event="script" value="effect.lua"/> Uma Fotinho para ver, estou usando o efeito 30 Abraços...
  5. Forge System

    Soaresdk reagiu a Garou por uma resposta no tópico

    1 ponto
    ADVANCED FORGE SYSTEM O SISTEMA DE CRIAÇÃO DE ITENS PARA SEU SERVIDOR Creio que muitos já conhecem o sistema de forja criado por mim, acontece que o código já estava um pouco obsoleto, então resolvi reescrever ele do 0. Simplesmente consiste em um sistema de criação de itens avançado que ressuscita um pouco do RPG perdido nos servidores de hoje em dia. O jogador poderá criar itens através de forja, agindo como um verdadeiro ferreiro medieval. Adiciona itens em cima de uma bigorna previamente colocada no mapa e com um martelo cria um item totalmente novo. CARACTERÍSTICAS DA VERSÃO FINAL: - Configuração intuitiva e fácil de compreender; - Mini-tutorial auxiliando criação de novas receitas; - Receitas podem conter até 250 itens diferentes com suas respectivas quantidades; - Sistema inteligente que identifica uma receita em qualquer ordem; - Código totalmente orientado a objetos; - Possibilidade de configurar diferentes requerimentos, diferentes skills, magic level e level Há dois modos de instalar o Advanced Forge System, o primeiro é seguir os passos deste tópico e o segundo e baixar pasta data/ anexada no tópico com os arquivos em seus respectivos diretórios, precisando apenas o registro das chaves nos arquivos XML. Escolha o modo que mais convém a você. Crie um arquivo em data/lib chamado forgesystem.lua e cole o conteúdo abaixo: --[[ ADVANCED FORGE SYSTEM FINAL Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- RecipeHandler = { itemtype = 0, items = {}, level = 1, maglevel = 0, skills = {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0} } Forge = { type = nil, position = nil, magicEffect = CONST_ME_MAGIC_GREEN, messages = { class = MESSAGE_STATUS_DEFAULT, success = "You have successfully forged a %s.", needskill = "You don't have enough %s to create a %s.", needlevel = "You need level %s to create a %s.", needmaglevel = "You need magic level %s to create a %s." } } function RecipeHandler:new(itemtype, items, level, maglevel, skills) local obj = { itemtype = (itemtype or 0), items = (items or {}), level = (level or 1), maglevel = (maglevel or 0), skills = (skills or {[0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0}) } table.insert(Recipes, obj) return setmetatable(obj, {__index = self}) end function RecipeHandler:setItem(itemtype) self.itemtype = (itemtype or 0) end function RecipeHandler:setRecipe(...) self.items = {...} end function RecipeHandler:setRecipeItem(itemid, amount) table.insert(self.items, {itemid, amount}) end function RecipeHandler:setSkill(skillid, value) self.skills[skillid] = value end function RecipeHandler:setLevel(value) self.level = value end function RecipeHandler:setMagLevel(value) self.maglevel = value end function RecipeHandler:check(position) local match = false for n, item in ipairs(self.items) do local thing = getTileItemById(position, item[1]) if thing.uid > 0 and math.max(1, thing.type) >= item[2] then if n == #self.items then match = true end else break end end return match end function RecipeHandler:get(position) if self:check(position) == true then return setmetatable({type = self, position = position}, {__index = Forge}) end return false end function Forge:create(cid) if self.type.itemid == 0 then print("[FORGE SYSTEM - ERROR] ATTEMPT TO CREATE A RECIPE ITEMID 0") return end local status = true if(cid) then if getPlayerLevel(cid) < self.type.level then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needlevel:format(self.type.level, getItemNameById(self.type.itemtype))) return end if getPlayerMagLevel(cid) < self.type.maglevel then doPlayerSendTextMessage(cid, self.messages.class, self.messages.needmaglevel:format(self.type.maglevel, getItemNameById(self.type.itemtype))) return end for skillid, value in pairs(self.type.skills) do if getPlayerSkillLevel(cid, skillid) < value then status = false doPlayerSendTextMessage(cid, self.messages.class, self.messages.needskill:format(SKILL_NAMES[skillid], getItemNameById(self.type.itemtype))) break end end end if status == true then for _, item in ipairs(self.type.items) do local thing = getTileItemById(self.position, item[1]) doRemoveItem(thing.uid, item[2]) end doSendMagicEffect(self.position, self.magicEffect) doPlayerSendTextMessage(cid, self.messages.class, self.messages.success:format(getItemNameById(self.type.itemtype))) doCreateItem(self.type.itemtype, self.position) end end dofile(getDataDir() .."/lib/recipes.lua") Crie um arquivo em data/lib chamado recipes.lua e adicione o conteúdo abaixo: ---------------------------------------- -----** TUTORIAL DE CONFIGURAÇÃO **----- ---------------------------------------- --[[ O 'ADVANCED FORGE SYSTEM' é muito fácil e intuitivo de configurar, você só precisa chamar a função RecipeHandler:new(...), sendo que você já configurar os atributos da receita nela ou usar outras funções para isso. Por exemplo, quero criar uma Magic Sword que precise de 100 Gold Nuggets. RecipeHandler:new(2400, {{2157, 100}}) Ou então Magic_Sword = RecipeHandler:new() Magic_Sword:setItem(2400) Magic_Sword:setRecipe({2157, 100}) Funções do Sistema: RecipeHandler:new(itemtype, items, level, maglevel, skills) --> Cria uma nova instância de forja. RecipeHandler:setItem(itemtype) --> Atribui um certo itemid como resultado da receita. RecipeHandler:setRecipe(recipe) --> Atribui uma receita. RecipeHandler:setRecipeItem(itemid, amount) --> Adiciona um itemid e sua quantidade a receita. RecipeHandler:setSkill(skillid, value) --> Atribui um valor necessário de uma certa skill para poder criar a receita. RecipeHandler:setLevel(value) --> Atribui o level necessário para criar uma receita. RecipeHandler:setMagLevel(value) --> Atribui o magic level necessário para criar uma receita. ]]-- --[[ Este é um exemplo de receita usando algumas funções. É uma Magic Sword (ITEMID: 2400) que precisa de 100 Gold Nuggets (ITEMID: 2157), além disso, o personagem que tentar forjar, precisa ter Level 100 e Sword Fighting 50. ]]-- Recipes = {} magicsword = RecipeHandler:new() magicsword:setItem(2400) magicsword:setRecipeItem(2157, 100) magicsword:setLevel(100) magicsword:setSkill(2, 50) Agora em data/actions/scripts, crie um arquivo chamado iron_hammer.lua e adicione o conteúdo abaixo: function onUse(cid, item, fromPosition, itemEx, toPosition) local recipe = nil for _, v in ipairs(Recipes) do recipe = v:get(toPosition) if(recipe ~= false) then break end end if(recipe) then recipe:create(cid) else doPlayerSendCancel(cid, "This is not a valid recipe.") end return true end E por fim em actions.xml, adicione a seguinte linha: <action itemid="4846" event="script" value="iron_hammer.lua"/> OPCIONAL - TALKACTION A talkaction abaixo mostra ao jogadoras receitas configuradas no servidor que ele pode fazer. Em data/talkactions/scripts, crie um arquivo chamado recipes.lua e adicione o conteúdo abaixo: function onSay(cid, words, param, channel) local ret = {} local msg = " ADVANCED FORGE SYSTEM\n" for _, recipe in ipairs(Recipes) do local skills = true for skillid, value in pairs(recipe.skills) do if getPlayerSkillLevel(cid, skillid) < value then skills = false break end end if skills == true then if getPlayerLevel(cid) >= recipe.level and getPlayerMagLevel(cid) >= recipe.maglevel then table.insert(ret, {recipe, true}) else table.insert(ret, {recipe, false}) end else table.insert(ret, {recipe, false}) end end for _, recipe in ipairs(ret) do msg = msg .."\nRecipe for ".. getItemNameById(recipe[1].itemtype) ..":\n\n" if recipe[2] == true then for _, item in ipairs(recipe[1].items) do msg = msg .."* ".. getItemNameById(item[1]) .." [".. math.min(item[2], math.max(0, getPlayerItemCount(cid, item[1]))) .."/".. item[2] .."]\n" end else msg = msg .."[LOCKED]\n" end end doShowTextDialog(cid, 2555, msg) return true end Em data/talkactions/talkactions.xml, adicione a linha: <talkaction words="/recipes" event="script" value="recipes.lua"/> Siga as instruções para configuração de novas receitas. Em breve vídeo de funcionamento Advanced Forge System.rar
  6. [NPC] Bank (Igual Tibia Global)

    koyotestark reagiu a Adriano SwaTT por uma resposta no tópico

    1 ponto
    Procurei aqui pelo forum, e não achei um NPC de Bank que fosse tão perfeito como este que estou postando... Eu mesmo havia postado há alguns dias atrás um NPC de Bank, mas não é tão bom quanto este... Detalhes do NPC: Executa as funções como do Tibia Global. Deposit, Transfer, Withdraw, Change Gold, Change Platinum, Change Crystal... Funcionando perfeitamente... #Testado' Vamos ao que interessa. Crie um arquivo chamado "bank.xml" na pasta "data / npc"... Cole o código abaixo dentro do arquivo: <?xml version="1.0" encoding="UTF-8"?> <npc name="BankMan" script="data/npc/scripts/bank.lua" walkinterval="25" floorchange="0" access="5" > <health now="150" max="150"/> <look type="132" head="115" body="0" legs="114" feet="0" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Welcome |PLAYERNAME|! Here, you can {deposit}, {withdraw} or {transfer} your money from your bank account. I can change your coins too."/> <parameter key="message_alreadyfocused" value="You are drunked ? I talk with you."/> <parameter key="message_farewell" value="Goodbye. I wanna see your money... oh you again."/> </parameters> </npc> Salve e feche o arquivo. Agora vá na pasta Scripts e crie um arquivo chamado "bank.lua" e cole o código abaixo dentro do mesmo: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid --------------------MESSAGES------------------------------------------------------------------------------ if msgcontains(msg, 'deposit') then selfSay('Please tell me how much gold it is you would like to deposit.', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'withdraw') then selfSay('Please tell me how much gold you would like to withdraw.', cid) talkState[talkUser] = 3 elseif msgcontains(msg, 'transfer') then selfSay('Please tell me the amount of gold coins you would like to transfer.', cid) talkState[talkUser] = 5 elseif msgcontains(msg, 'change gold') then selfSay('How many platinum coins do you want to get?', cid) talkState[talkUser] = 8 elseif msgcontains(msg, 'change platinum') then selfSay('Do you want to change your platinum coins to gold or crystal?', cid) talkState[talkUser] = 10 elseif msgcontains(msg, 'change crystal') then selfSay('How many crystal coins do you want to change to platinum?', cid) talkState[talkUser] = 15 elseif msgcontains(msg, 'balance') then n = getPlayerBalance(cid) selfSay('Your balance are '..n..' golds.', cid) talkState[talkUser] = 0 ----------------------DEPOSIT------------------------------------------------------- elseif talkState[talkUser] == 1 then if msgcontains(msg, 'all') then n = getPlayerMoney(cid) selfSay('Do you want deposit '..n..' golds ?', cid) talkState[talkUser] = 2 else n = getNumber(msg) selfSay('Do you want deposit '..n..' golds ?', cid) talkState[talkUser] = 2 end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') then if getPlayerMoney(cid) >= n then doPlayerDepositMoney(cid,n) selfSay('Sucessfull. Now your balance account is ' ..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) end else selfSay('Ok then', cid) end ----------------------WITHDRAW------------------------------------------------------------------------------------- elseif talkState[talkUser] == 3 then if msgcontains(msg, 'all') then n = getPlayerBalance(cid) selfSay('Do you want withdraw '..n..' golds ?', cid) talkState[talkUser] = 4 else n = getNumber(msg) selfSay('Do you want withdraw '..n..' golds ?', cid) talkState[talkUser] = 4 end elseif talkState[talkUser] == 4 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) >= n then doPlayerWithdrawMoney(cid, n) selfSay('Here you are, '..n..' gold. Now your balance account is ' ..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('There is not enough gold on your account', cid) end else selfSay('Ok then', cid) end ----------------------TRANSFER---------------------------------------------------------------------------------------- elseif talkState[talkUser] == 5 then if msgcontains(msg, 'all') then n = getPlayerBalance(cid) selfSay('Who would you like transfer '..n..' gold to?', cid) talkState[talkUser] = 6 else n = getNumber(msg) selfSay('Who would you like transfer '..n..' gold to?', cid) talkState[talkUser] = 6 end elseif talkState[talkUser] == 6 then p = msg selfSay('So you would like to transfer '..n..' gold to '..p..'?', cid) talkState[talkUser] = 7 elseif talkState[talkUser] == 7 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) >= n then if doPlayerTransferMoneyTo(cid, p, n) == TRUE then selfSay('You have transferred '..n..' gold to '..p..' and your account balance is '..getPlayerBalance(cid)..' golds.', cid) talkState[talkUser] = 0 else selfSay('This player does not exist. Please tell me a valid name!', cid) talkState[talkUser] = 0 end else selfSay('There is not enough gold on your account', cid) talkState[talkUser] = 0 end else selfSay('Ok then', cid) talkState[talkUser] = 0 end ----------------------CHANGE GOLD--------------------------------------------------------------------------------- elseif talkState[talkUser] == 8 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..b..' of your gold coins to '..n..' platinum coins for you?', cid) talkState[talkUser] = 9 elseif talkState[talkUser] == 9 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2148, b) == TRUE then doPlayerAddItem(cid, 2152, n) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end ---------------------CHANGE PLATINUM------------------------------------------------------------------------- elseif talkState[talkUser] == 10 then if msgcontains(msg, 'gold') then selfSay('How many platinum coins do you want to change to gold?', cid) talkState[talkUser] = 11 elseif msgcontains(msg, 'crystal') then selfSay('How many crystal coins do you want to get?', cid) talkState[talkUser] = 13 end elseif talkState[talkUser] == 11 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..n..' of your platinum coins to '..b..' gold coins for you?', cid) talkState[talkUser] = 12 elseif talkState[talkUser] == 12 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, n) == TRUE then doPlayerAddItem(cid, 2148, b) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 13 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..b..' of your platinum coins to '..n..' crystal coins for you?', cid) talkState[talkUser] = 14 elseif talkState[talkUser] == 14 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2152, b) == TRUE then doPlayerAddItem(cid, 2160, n) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end ---------------------CHANGE CRYSTAL------------------------------------------------------------------------------- elseif talkState[talkUser] == 15 then n = getNumber(msg) b = n * 100 selfSay('So I should change '..n..' of your crystal coins to '..b..' platinum coins for you?', cid) talkState[talkUser] = 16 elseif talkState[talkUser] == 16 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 2160, n) == TRUE then doPlayerAddItem(cid, 2152, b) talkState[talkUser] = 0 else selfSay('You don\'t have money.', cid) talkState[talkUser] = 0 end else selfSay('Ok. We cancel.', cid) talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -- function maded by Gesior-- function getNumber(txt) --return number if its number and is > 0, else return 0 x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x > 0 then return x else return 0 end end Salve o arquivo e feche-o. Agora seu NPC está pronto, basta adicioná-lo ao seu mapa usando o Map Editor. Espero que seja de utilidade de alguém... Créditos: Tibiaa4e (outro forum) Pequeno Tuto: Adriano Swatt Testado em: Versões do Client: 8.54 e 8.60. Versões da Distro: TFS 3.4.5, TFS 0.4 e Alissow 0.4.1. Espero que seja útil. Abraços'
  7. TibiaBot NG Return

    rodlam reagiu a Mek Fiuchem por uma resposta no tópico

    1 ponto
    Bom galera la estava eu em tpforums , quando vi um nome de um usuario "LordOfWar" ai reconheci o nome desse usuario que era o criador de TibiaBot NG , bom entrei no site do tibiabot dizendo seguinte mensagem: PT-BR: estava tambem olhando em screenshoot nova theme do tibiabotng que nao era as mesma de antes e igual do "GhostNG Bot" ScreenShoots: e a versao do bot tambem foi mudada para TibiaBot NG 0.2.5 e antigamente a versao era 5.1.0. Em seu forum LordOfWar deixo uma seguinte pergunta "What's going on?" Traduçao : O que está acontecendo?
  8. Gráficos do JoOH

    CorvoAnarcoPunk reagiu a Jooh Pereira por uma resposta no tópico

    1 ponto
  9. Nao testei, fiz na logica local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 10, 12) function onCastSpell(cid, var) local config = { min = 50, max = 100, health = {2.60, 2.6}, } local x = getPlayerLevel(cid) local min_, max_ = config.min, config.max local health = config.health if health then local hp = math.ceil(math.random(health[1] * x, health[2] * x)) if hp < min_ then hp = math.random(min_, max_) elseif hp > max_ then hp = math.random(max_, max_ + 100) end doCreatureAddHealth(cid, hp) end return doCombat(cid, combat, var) end
  10. Você diz que não gosta de funk..

    ferlations reagiu a Lyaaan por uma resposta no tópico

    1 ponto
    Pra mim, isso foi uma frase de poser (:. Não confunda essas meninas dançando com rock, por favor né! Desculpe, mas eu n sinto atração por 'mulheres' assim..
  11. Você diz que não gosta de funk..

    Private Sub Teste reagiu a Kimoszin por uma resposta no tópico

    1 ponto
    Eu gosta da mulher dançando, eu botei no mudo e bote um rockzinho. PRA MIM ela tava dançando assim um rock.
  12. Você diz que não gosta de funk..

    ferlations reagiu a Lyaaan por uma resposta no tópico

    1 ponto
    Não
  13. [Problema]Não segue os bixos

    yourtobaa reagiu a Kimoszin por uma resposta no tópico

    1 ponto
    Sim, pode Para ir atras do bixo, você deve ir no Tibia -> Options -> General e desmarcar a opção Auto Chase Off Depois só selecionar a opção Chase Opponent e seja feliz.
  14. Como criar um site para seu servidor!

    skidrow2 reagiu a gpedro por uma resposta no tópico

    1 ponto
    Bom, o tutorial está bom, mais creio que você limitou o xampp, pode ser qualquer versão, é só saber corrigir os erros no php.ini. Alguns erros cometidos, como FileZilla, porque você irá ativar e deixar com senha padrão, entram no ftp e pegam seu site inteiro, foda né. E o webdav que você acessar e já coloca uma shell e invade o dedicado, servidor, pega tudo. GG filhão. Não precisa remover todas as linhas com "dois tracinhos", é só remover alguns caracteres nas linhas que tem "dois tracinhos" no começo, nem o TAB no começo das configurações. é questão de organização. sqlFile não precisa ser editado, pode deixar do jeito que está que não vai afetar nada. Tutorial bem de leve, mais faltou muitos pontos na parte de segurança. Tutorial raso mesmo.
  15. Seu Último Trabalho

    3visan reagiu a ElderDark por uma resposta no tópico

    0 pontos
    Poucos sabem mais alem de "Mapper" sou "Spriter" tambem, porem faço apenas monstros e alguns pisos. Primeiro monstro (O melhor) Monstro do Lago Ness Haken (Créditos ao Landfear) Sprites Magic World ATS OBS : Magic World ATR é um antigo projeto meu.
  16. Projecto RPG

    Kimoszin reagiu a Iago Felipe por uma resposta no tópico

    -1 pontos
    e essa tradução fudida ai? vai toma no seu cu mlk, ta tiranu meu, poe certo essa porra ai, falta de coerencia do caralho, da p entende nada meu, arrombado
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo