Líderes
-
-
Junior Lopes
MembroPontos100Total de itens -
-
viniciusvasconcellos
MembroPontos25Total de itens
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 12/13/12 em todas áreas
-
Spell Exclusiva
Spell Exclusiva
Luis Matheus e 3 outros reagiu a Junior Lopes por uma resposta no tópico
4 pontosSpell exclusiva! Tibia 8.6 Join! • Menu: ├ Informações; ├ Compatibilidade; ├ Tutorial; ├ Explicação; ├ ScreenShots; └ Créditos. •Informações; Fala galera do TibiaKing. Tudo na paz? Então, hoje estou aqui para postar meu PRIMEIRO TÓPICO no TK. Vou ensina-los a como fazer uma spell exclusivamente MINHA. COMENTEM POR FAVOR... MESMO QUE FOR PARA FALAR MAL OU FALAR BEM. E agora vocês vão me ver explicando... ou não. •Compatibilidade; -Windows Xp: OK! -Windows 7: OK! -Testado Somente em Alissow OT 8.6 •Tutorial; Estou aqui para mostra-los e ensina-los a colocar uma spell que Eu criei! Bom, para começo de conversa, vá na PastaDoSeuServer/Data/Spells/Scripts . E lá , você cria um arquivo ( ou copie e cole um arquivo já existente ) e renomeie ele para: "Vip Spelling" Depois de ter feito isso, abra-o e coloque isto dentro do arquivo: Bom, feito isso, 50% da sua nova spell já está criada! Agora vamos voltar; vá na PastaDoSeuServer/Data/Spells , abra o arquivo chamado Spell.xml ( é o único arquivo editável )! Acrescente isso na linha abaixo de ATTACK SPELLS : <instant name="Vip Spelling" words="Exevo Vip Power" lvl="20000" mana="5500" prem="1" exhaustion="1500" needlearn="0" event="script" value="Vip Spelling.lua"> <vocation name="Druid"/> <vocation name="Knight"/> <vocation name="Paladin"/> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> <vocation name="Elder Druid"/> <vocation name="Elite Knight"/> <vocation name="Royal Paladin"/> </instant> •Explicação; Vip Spelling: isso é o nome da spell que eu falei pra copiar um arquivo já existente e renomear para Vip Spelling ( caso colocou outro nome, escreva o nome que colocou no lugar de Vip Spelling. ) Exevo Vip Power: Isso é o que o player irá falar para que a spell seja conjurada! ( isso é totalmente editável, pode mudar o quanto quiser.) Lvl="20000" = O 20000 é o level mínimo que o player terá que ter para usar a spell, se for abaixo que isso, não poderá usar. ( isso também é totalmente editável. ) Mana="5500" = É a Mana que irá gastar após conjurar a spell. (Totalmente editável, também.) prem="1" = É se o player precisará ser premium para usar a spell, no meu caso, como a spell é para VIP's, eu coloquei sim. (0=não 1=sim) value="Vip Spelling.lua"= Isso é o nome do arquivo que você teve que criar lá no começo do Tutorial. ( Totalmente editável, coloque de acordo com o nome da spell lá no começo do tutorial.) setCombatFormula(combat4, COMBAT_FORMULA_SKILL, 0, -600, 6.0, -650): em rosa é o hit que irá dar. ( Totalmente editável.) O resto eu não recomendo editar, pois irá fazer a spell ficar diferente. Bom, é isso pessoal, espero que tenham gostado. •ScreenShot; •Créditos; 100% Meu, por criar a magia e o tópico.4 pontos -
Tutorial Básico Creaturescripts
Tutorial Básico Creaturescripts
Kyosen e um outro reagiu a Markin por uma resposta no tópico
2 pontosVim trazer hoje um tutorial bem útil para quem esta aprendendo a linguagem lua. Com a autorização do grande Jhon vou postar aqui um tópico desenvolvido por ele. Tutorial Básico sobre CreatureScripts CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são: onDeath(cid, corpse, killer)-- que é executada ao morrer. onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath. onAttack(cid, target) -- executa ao atacar. onCombat(cid, target) -- semelhante ao onAttack. onLogin(cid) -- executa ao logar. onLook(cid, thing, position, lookDistance) -- executa ao dar look. onAdvance(cid, skill, oldLevel, newLevel) -- executa ao upar skills/levels. onStatsChange(cid, attacker, type, combat, value) -- executa ao perder ou ganhar life/mana/condições. onLogout(cid) -- executa ao deslogar. onKill(cid, target, lastHit) -- executa ao matar. onThink(cid, interval) -- executa em determinado tempo. onJoinChannel(cid, channelId, users) -- executa ao entrar em um chat. onReceiveMail(cid, sender, item, openBox) -- executa ao receber um parcel/carta. onReportBug(cid, comment) -- executa ao reportar bug. Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado"; Agora você vai determinar que função você vai precisar para criação do seu script. Para exemplo vou usar a função "onAdvance"(ao upar). Neste exemplo, quando o player upar level 100 ele irá ganhar 1kk: 1 function onAdvance(cid, skill, oldLevel, newLevel) 2 if (getPlayerLevel(cid) == 100) then 3 doPlayerAddItem(cid, 2160, 100) 4 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabéns, você ganhou 1kk por atingir level 100!") 5 doSendMagicEffect(getCreaturePosition(cid), 30) 6 end 7 return true 8 end Numerei as linhas para melhor entendimento, nos seus scripts vocês não devem numerar. linha 1 = Inicio da função onAdvance, essa linha recebe algumas informações do player que upou, como seu cid, seus skills o velho level e o novo level. Obs: cid = creature id, numero de identificação do player/monstro. linha 2 = Inicia-se um if onde verifica se o level do player é igual a 100. Se for verdadeiro, o script executa as linhas 3,4 e 5, senão pula direto a linha 6. linha 3 = Adiciona 100 itens com o id 2160 ao player. linha 4 = Manda uma mensagem parabenizando o player. linha 5 = Solta o efeito de numero 30, na posição em que o player esta. linha 6 = Finaliza a verificação do if. linha 7 = Retorna verdadeiro. Obs: sempre é necessario ela linha no final de seu código. linha 8 = Finaliza a função onAdvance. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Por fim para funcionamento do seu script é necessario adicionar 2 tags: 1º- No "data/creaturescripts/creaturescripts.xml" 2º- No arquivo "data/creaturescripts/scripts/login.lua", Obs: se o script que você for fazer for de função onLogin, não precisa adicionar a segunda tag. 1º Tag: Vai em data/creaturescripts/creaturescripts.xml e cole a tag: <event type="advance" name="QualquerNome" event="script" value="nomedesejado.lua"/> O type="" , será o nome da função de seu script após a palavra "on" e sempre tudo em minusculo. O name="", use qualquer nome porem esse nome vai ser usado para registrar no script onLogin na tag2. O value="", é o nome com qual você salvou seu script. Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true: registerCreatureEvent(cid, "QualquerNome") QualquerNome é o name que você adicionou na tag1 do creaturescripts.xml. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Acho que é isso aew, espero ter ajudado a galera que esta iniciando. Dica para criação de scripts: Para melhor edição e organização use Notepad++: http://www.baixaki.c...ad/notepad-.htm Sempre usar uma lista de funções como apoio: http://tibiaking.com...funcoes-em-lua/ E sempre pesquise por scripts prontos e tutoriais para ter uma base. CREDITOS: JHON pelo tutorial completo! Anne por trazer ao TK.2 pontos -
[NPC] Trocar item por X item
[NPC] Trocar item por X item
Edilson1 e um outro reagiu a luuuck por uma resposta no tópico
2 pontosFala galera, andei dando uma olhada aqui em uns NPC's mas não consegui fazer Tipo, queria que o NPC trocasse por exemplo 10 Major Crystalline Token (ID: 18423), por um Prismatic Helmet (ID: 18403), o item é fácil configurar, porem olhando os NPC's não achei nenhuma parte do script o id 2160 que é do crystal coin's, se tivesse dava para trocar o id pelo do token Alguem poderia me informar como mudo de crystal coin para o token? EDIT@ CONSEGUI.2 pontos -
[Resolvido] Matar um dog e ser teleportado para x lugar
[Resolvido] Matar um dog e ser teleportado para x lugar
lucas.bobby13 e um outro reagiu a Onii por uma resposta no tópico
2 pontosNão testei aqui mas creio que funcione.. data/creaturescripts cria um arquivo .lua "cachorroquest.lua": function onDeath(cid, corpse, killer) local Ppos = {x = 340, y = 840, z = 15} -- posicao para onde ele vai ir local monstName = "Pythius The Rotten" -- nome do monstro if isMonster(cid) then if string.lower(getCreatureName(cid)) == string.lower(monstName) then doTeleportThing(killer[1], Ppos) end end return TRUE end em creaturescript.xml adicione a tag: <event type="death" name="Teleportquest" event="script" value="cachorroquest.lua"/> no arquivo xml do monstro adiciona: <script> <event name="Teleportquest"/> </script>2 pontos -
[Resolvido] Script que adiciona Storages.
[Resolvido] Script que adiciona Storages.
12Bryan12 e um outro reagiu a Skyforever por uma resposta no tópico
2 pontosMals errei as posições. function onUse(cid, item) local Msg = "Você ganhou acesso a todas áreas vip's parabéns." local storages = {13701, 13702, 13703, 7527, 7528, 7529, 7530, 7525, 7520, 5722, 5721} for T = 1, #storages do if getPlayerStorageValue(cid, storages[T]) < 1 then setPlayerStorageValue(cid, storages[T], 1) end end doPlayerSendTextMessage(cid, 27, Msg) doRemoveItem(item.uid, 1) return true end2 pontos -
[PROBLEMA] Evento rodando
[PROBLEMA] Evento rodando
kembely e um outro reagiu a luuuck por uma resposta no tópico
2 pontosGalera, por favor me ajudem '-' Um evento aqui bugou... E pior não da para fechar, todos players estão salvos porem não tem como iniciar o evento denovo... Quando tento inicia-lo denovo da isso >>> 21:36 Biohazard is already running. PS: Já reiniciei o server e o dedicado para ver e da mesma coisa!!!2 pontos -
Aulas de Scripting Lua
Aulas de Scripting Lua
unf4ced reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoQuer aprender a programar em Lua? Sugiro que você comece olhando esses tutoriais escritos por Urso Mock, Suricato Notorious e Raposa Skyen Hasus. Já leu todas as aulas anteriores e acha que você já está apto a criar seus próprios Scripts? Boa! Agora é hora de por suas habilidades em prática. Leia esses tutoriais: Outros Tutoriais: Avançado:1 ponto -
new marriage system
1 pontoMulizeu/Latoy são a msm pessoa Na sua db execute: CREATE TABLE marriage_system ( id INTEGER NOT NULL, player_id INTEGER NOT NULL, partner VARCHAR( 255 ) NOT NULL, marriage_date INTEGER NOT NULL, PRIMARY KEY ( id ) ); Mods MarriageSystem.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="MarriageSystem" version="1.0" author="Mulizeu" contact="tibiaking.com" enabled="yes"> <config name="marry_func"><![CDATA[ marry_config = { Premium = false, OnlyDifferentSex = false, Marry_Price = 300000, Divorce_Price = 100000, Level = 50, MaxSqm = 7 -- to up system and win bonus } Marry_stage = { [0] = {exp = 350000, marry_percent = 50, player_experience = 0}, [1] = {exp = 700000, marry_percent = 45, player_experience = 2}, [2] = {exp = 1050000, marry_percent = 40, player_experience = 4}, [3] = {exp = 1400000, marry_percent = 35, player_experience = 6}, [4] = {exp = 1750000, marry_percent = 30, player_experience = 8}, [5] = {exp = 2100000, marry_percent = 25, player_experience = 10}, [6] = {exp = 2450000, marry_percent = 20, player_experience = 12}, [7] = {exp = 2800000, marry_percent = 15, player_experience = 14}, [8] = {exp = 3150000, marry_percent = 10, player_experience = 16}, [9] = {exp = 3500000, marry_percent = 5, player_experience = 18}, [10] = {exp = 0, marry_percent = 0, player_experience = 20} } marriage_tabble = {exp = 350250,level = 340200} function isMarried(cid) local m = db.getResult("SELECT `player_id` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") if(m:getID() == -1) then local e = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `partner` = '"..getPlayerGUID(cid).."';") if(e:getID() == -1) then return false end end return true end function isPatner(cid) local p = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") if(p:getID() == -1) then return true end return false end function isMarryOnline(cid) if not getPlayerByNameWildcard(getPartner(cid)) then return false end return true end function getPartner(cid) if isPatner(cid) then a = db.getResult("SELECT `player_id` FROM `marriage_system` WHERE `partner` = '"..getPlayerGUID(cid).."';") b = "player_id" else a = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") b = "partner" end local query = a return getPlayerNameByGUID(query:getDataString(b)) end function doMarry(cid, patner) return db.executeQuery("INSERT INTO `marriage_system` (`player_id`, `partner`, `marriage_date`) VALUES ('".. getPlayerGUID(cid) .."', '"..patner.."', '".. os.time() .."');") end function doDivorcePlayer(cid) if isPatner(cid) then pid,player = getPlayerGUIDByName(getPartner(cid)),getPlayerByNameWildcard(getPartner(cid)) else pid,player = getPlayerGUID(cid),cid end if(not player or isPlayerGhost(player)) then db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = " .. pid .. " AND `key` = " .. marriage_tabble.level .. ";") db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = " .. pid .. " AND `key` = " .. marriage_tabble.exp .. ";") else setPlayerStorageValue(player, marriage_tabble.level,0) setPlayerStorageValue(player, marriage_tabble.exp,0) end return db.executeQuery("DELETE FROM `marriage_system` WHERE `player_id` = '" .. pid .. "';") end function getMarryStatus(cid, status) player = isPatner(cid) and getPlayerByNameWildcard(getPartner(cid)) or cid return getPlayerStorageValue(player,status == "level" and marriage_tabble.level or marriage_tabble.exp) < 0 and 0 or getPlayerStorageValue(player, status == "level" and marriage_tabble.level or marriage_tabble.exp) end function setMarryStatus(cid, status, amount) player = isPatner(cid) and getPlayerByNameWildcard(getPartner(cid)) or cid return setPlayerStorageValue(player, status == "level" and marriage_tabble.level or marriage_tabble.exp, getMarryStatus(player, status)+amount) end function getMarryExp(cid) return getMarryStatus(cid, "exp") end function addMarryExp(cid, amount) return setMarryStatus(cid, "exp", amount) end function addMarryLevel(cid, amount) return setMarryStatus(cid, "level", amount) end function getMarryLevel(cid) return getMarryStatus(cid, "level") end function getMarryDate(cid) local player = isPatner(cid) and getPlayerGUIDByName(getPartner(cid)) or getPlayerGUID(cid) local date = db.getResult("SELECT `marriage_date` FROM `marriage_system` WHERE `player_id` = '"..player.."';") return os.date("%d %B %Y %X ", date:getDataInt("marriage_date")) end ]]></config> <talkaction words="/marriage;!marriage;!divorce;/divorce" event="buffer"><![CDATA[ domodlib('marry_func') config = {TimeAccept = 30, sqm = 3, storage1 = 873438, storage2 = 532579} if words =="!marriage" or words =="/marriage" then param = string.lower(param) if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"invalid command, for more information enter !marriage info") elseif(param == "info") then msg = "Marriage Info".."\n\nLevel Minimum: "..marry_config.Level.."\nMarriage Cost: "..marry_config.Marry_Price.."\nDivorce Cost: "..marry_config.Divorce_Price.."\n\nMarried Players have a bonus exp as a wedding gift given by the union".."\n\nThis bonus is only given if the married players are nearby.\n\nTo marry use the command:\n!marriage NAME" doShowTextDialog(cid,2160,msg) elseif(param == "status") then if isMarried(cid) then msg = "Marriage Status".."\n\nMarried with: ["..getPartner(cid).."]\n\nMarry Experience: "..(getMarryLevel(cid) ~= 10 and "["..getMarryExp(cid).."/"..Marry_stage[getMarryLevel(cid)].exp.."]" or "[Max]").."\n\nMarry Level: "..(getMarryLevel(cid) ~= 10 and "["..getMarryLevel(cid).."]" or "[Max]").."\n" else msg = "you are not married" end doPlayerPopupFYI(cid, msg) elseif (param =="date") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,""..(isMarried(cid) and "The date of his marriage with "..getPartner(cid).." was: "..getMarryDate(cid).."." or "you are not married.").."") elseif (param =="accept") then player = getPlayerStorageValue(cid, config.storage2) if getPlayerStorageValue(cid, config.storage1) >= os.time() then if not isMarried(cid) then if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(player)) <= config.sqm then doMarry(cid, getPlayerGUID(player)) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE,"Congratulations! "..getCreatureName(cid).." accepted his marriage proposal.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Congratulations! you married with "..getCreatureName(player)) doSendMagicEffect(getCreaturePosition(cid), 35) doSendMagicEffect(getCreaturePosition(player), 35) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "you're far away from her suitor.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are not married.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you do not received none wedding invitation.") end elseif (param =="reject") then if getPlayerStorageValue(cid, config.storage1) >= os.time() then if not isMarried(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"You just refuse the wedding invitation from player "..getCreatureName(getPlayerStorageValue(cid, config.storage2))) doPlayerSendTextMessage(getPlayerStorageValue(cid, config.storage2), MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid).." rejected his marriage proposal.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are already married.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you do not received none wedding invitation.") end else local player = getPlayerByNameWildcard(param) if(not player)then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param.." is offline or does not exist.") return true elseif isMarried(cid) or isMarried(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, ""..(isMarried(cid) and "you" or "he").." already is wedded.") return true elseif marry_config.Premium == true then if not isPremium(cid) or not isPremium(Player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "players must be premium") end return true elseif getPlayerLevel(cid) < marry_config.Level or getPlayerLevel(player) < marry_config.Level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "players must to be level "..marry_config.Level) return true elseif getPlayerStorageValue(player, config.storage1) >= os.time() then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param.." already have a wedding invitation, wait.") return true elseif getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(player)) > config.sqm then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "you are far away from each other to get married.") return true elseif marry_config.OnlyDifferentSex and getPlayerSex(cid) == getPlayerSex(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "you can only marry the opposite sex") return true elseif not doPlayerRemoveMoney(cid, marry_config.Marry_Price) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, but you do not have "..marry_config.Marry_Price.." gp(s) to ask "..param.." in marriage.") return true end setPlayerStorageValue(player, config.storage1,os.time()+config.TimeAccept) setPlayerStorageValue(player, config.storage2, cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you asked "..param.." in marriage, wait a answer!") doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE,getCreatureName(cid).." asked you in marriage, enter !marriage accept or !marriage reject") end elseif words =="!divorce" or words =="/divorce" then if isMarried(cid) then if doPlayerRemoveMoney(cid, marry_config.Divorce_Price) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Congratulations, you end up divorcing from player: "..getPartner(cid)) doDivorcePlayer(cid) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Sorry, you do not have "..marry_config.Divorce_Price.." gp(s).") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are not married.") end end return true ]]></talkaction> <event type="login" name="MarryRegister" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "ExpMarry") registerCreatureEvent(cid, "MarryLook") registerCreatureEvent(cid, "MarryStats") registerCreatureEvent(cid, "MarryNoAttack") return true end]]></event> <event type="look" name="MarryLook" event="script"><![CDATA[ domodlib('marry_func') function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and isMarried(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\nMarried with "..getPartner(thing.uid).." - [Nv: " .. getMarryLevel(thing.uid) .."]\n") end return true end]]></event> <event type="combat" name="MarryNoAttack" event="script"><![CDATA[ domodlib('marry_func') if isPlayer(cid) and isPlayer(target) and isMarried(cid) and isMarried(target) then if (getCreatureName(target) == getPartner(cid))then doPlayerSendCancel(cid, "You may not attack this player.") return false end end return true ]]></event> <event type="kill" name="ExpMarry" event="script"><![CDATA[ domodlib('marry_func') function onKill(cid, target, lastHit) if isMonster(target) then conta = getMonsterInfo(string.lower(getCreatureName(target))).experience if isMarried(cid) and isMarryOnline(cid) and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(getPlayerByNameWildcard(getPartner(cid)))) <= marry_config.MaxSqm then if getMarryLevel(cid) ~= 10 then mexp = math.ceil((conta*Marry_stage[getMarryLevel(cid)].marry_percent)/100) addMarryExp(cid, mexp) if isMarryOnline(cid) then doPlayerSendTextMessage(getPlayerByNameWildcard(getPartner(cid)),MESSAGE_STATUS_SMALL,"Marry exp + "..mexp) end doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"Marry exp + "..mexp) if getMarryExp(cid) >= Marry_stage[getMarryLevel(cid)].exp then addMarryLevel(cid, 1) if isMarryOnline(cid) then doPlayerSendTextMessage(getPlayerByNameWildcard(getPartner(cid)), MESSAGE_STATUS_CONSOLE_RED,"[Marriage System] Level Up! [Nv: "..getMarryLevel(cid).."].") doSendMagicEffect(getCreaturePosition(getPlayerByNameWildcard(getPartner(cid))), 35) end doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_RED,"[Marriage System] Level Up! [Nv: "..getMarryLevel(cid).."].") doSendMagicEffect(getCreaturePosition(cid), 35) end end local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = math.ceil(((getMonsterInfo(string.lower(getCreatureName(target))).experience*exp)*Marry_stage[getMarryLevel(cid)].player_experience)/100) doPlayerAddExperience(cid, count) end end return true end]]></event> <event type="statschange" name="MarryStats" event="script"><![CDATA[ domodlib('marry_func') Damage_percent = 50 -- metade n mexa Chance = 25 -- chance de conseguir o reflect ou couple damage if isMonster(attacker) and type == STATSCHANGE_HEALTHLOSS then if isMarried(cid) and isMarryOnline(cid) and getPlayerByNameWildcard(getPartner(cid)) and getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(getPlayerByNameWildcard(getPartner(cid)))) <= marry_config.MaxSqm then if (Chance > math.random(1, 100)) then damage = math.ceil((value*Damage_percent)/100) if (50 > math.random(1, 100)) then doTargetCombatHealth(cid, attacker, COMBAT_PHYSICALDAMAGE, -damage, -damage, CONST_ME_HOLYDAMAGE) doSendAnimatedText(getCreaturePosition(cid), "REFLECT!", 140) else doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HEARTS) doSendAnimatedText(getCreaturePosition(cid), "Love!", 200) doCreatureAddHealth(cid, damage) if isMarryOnline(cid) then doSendMagicEffect(getCreaturePosition(getPlayerByNameWildcard(getPartner(cid))), CONST_ME_HEARTS) doSendAnimatedText(getCreaturePosition(getPlayerByNameWildcard(getPartner(cid))), "Love!", 200) doCreatureAddHealth(getPlayerByNameWildcard(getPartner(cid)), -damage) end end end end end return true ]]></event> </mod> Configuração: CREDITOS : 25% Ao vodkart pela lib e 75% ao mulizeu(eu) Pelos demais scripts1 ponto
-
[8.54] Pokemon xD by Rafael Marinho
[8.54] Pokemon xD by Rafael Marinho
Jonathan alcino reagiu a RafaaxD por uma resposta no tópico
1 pontoE ai pessoal primeiro topic e post aqui no TibiaKing ... [ Caso esteja algo errado , área ou algo do tipo mova por favor ? ] Eu ( RafaaxD ) tenho varios servers de tudo quanto é tipo de game e AMO editar , depois eu posto alguns aqui hihi , acabei de criar conta aqui e por falta de tempo e dinheiro pra um dedicado venho postar meu server de pokemon [ POKEMON xD ] que editei sozinho, a base é o pokemon dash mas tá muuuito editado ,Server está muito bom na minha opinião.. espero ver muitos daqui usando este server hein .. rs BUGS ? Sim , tem bugs como todos servers .. maaas são todos simples de resolver mas enche o saco .. sacomé ? então qualquer duvida pode postar aqui que talvez eu arrume e sim vou ajudar quem precisar .. eu tenho esse server aqui faz um tempinho vou formatar meu pc, mas antes vou ver se acho meu documento que fiz com a lista de uns bugs com as soluções já por etapa é que tinha preguiça kkkk. Alguns Systems : Level System , Tv System , Dive System , Fly System , Surf System , Ride System , Carro,Moto e bike system , varias quests pelo mapa , milotic quest ,rary cand quest , game boy box quest .. aah tem varios véi ..(: Algumas SS : [Alguns pokes em frente ao templo de 3 andares ? .. ps : isso que estou usando é uma outfit ] [ Item que pode ser vendido no shop, ele te transforma num carro com Super velocidade] [ Item que pode ser vendido no shop, ele te transforma numa moto com Super velocidade²] [ Item que pode ser vendido no shop, ele te transforma numa bike com Super velocidade³] [ Rare candy , Game boy box , Mega ball (vendida no shop cada por 1 real ela da 100% de catch) VIP outfit e a bike ] É isso ae pessoal espero que gostem ? .. Ps: Comentem sobre o post como ficou tbm ? valeu , qualquer coisa que faltar ou quiserem dou um @EDIT aqui .. POSTADO UNICAMENTE PARA O TIBIAKING , NÃO QUERO QUE POSTEM NO tibiaking POR MOTIVOS PESSOAIS , CASO VOCÊ QUEIRA LEVAR MEU SERVER PARA BLOG OU ALGO DO TIPO POR FAVOR CRÉDITOS A RAFAEL MARINHO ! THANKS. Download SERVER (SPEEDYSHARE) // Download SERVER (MEDIAFIRE BY MATHEUS) // Download CLIENT (SPEEDYSHARE) // Download CLIENT (MEDIAFIRE BY ...); [ BAIXOU COMENTA E DA +REP ? PLS ] [ SE FOR USAR P/ DEDICADO ME CHAMA PRA JOGAR TBM xD ] Scan Do Server // Scan do Client @EDIT Pessoal lembra que eu falei que tinha uma lista de bug e metas para fazer no server e que eu não fiz ? Então Achei , ta ai UPDATE VINDO AE .. AGUARDEM ! @edit UPDATE CANCELADO ! MOTIVO : PLAGIO1 ponto -
Tutorial MageBot! [Completo]
1 pontoTutorial MageBot! Não sabe usar o MageBot? Não? Não tem problema, com este tutorial você vai aprender rapidinho! Antes disso, se você ainda não tem o MageBot, clique aqui e visite o tópico de download. Antes, vejamos uma imagem da interface do MageBot: Ok, agora vamos para a parte de Healing: Aqui temos: Light: Aqui será uma magia (de healing) usada quando você tiver com bastante life (vida). No caso, quase sempre é utilizado magias mais fracas como o "Exura", mas você pode modificar. Você pode escolher a porcentagem ao lado para que quando sua vida tiver em por exemplo "80%" ele usará a magia selecionada e também tem o MP, que se encontra ao lado da porcentagem e ali você terá que indicar o quanto de mana será usado, como o "Exura" é usado "20" de mana. Heavy: Aqui será a magia (de healing) usada quando você tiver com menos life (vida). No caso, quase sempre é utilizado magias mais fortes como o "Exura Gran" ou então até mesmo o "Exura Vita". Você pode escolher a porcentagem ao lado para que quando sua vida tiver em por exemplo "60%" ele usará a magia selecionada e também tem o MP, que se encontra ao lado da porcentagem e ali você terá que indicar o quanto de mana será usado, como o "Exura Gran" é usado "70" de mana. Mana Potion: Primeiramente você colocará a porcentagem, no caso da mana, para usar a "Potion" e depois o "tipo de potion". Health Potion: Primeiramente você colocará a porcentagem, no caso da life (vida), para usar a "Potion" e depois o "tipo de potion" ou então uma runa, como a "UH". Depois de configurar do seu jeito, aperte em "Save Settings". Passamos agora para a parte das Hotkeys, que são as teclas/botões que ativam um comando. Abaixo, qual é a função de cada hotkey: O que ta entre aspas (".") é o que você poderá modificar... Terão "idaqui" que significa que você terá que colocar o ID de tal coisa que você irá usar, ali, entre outros. Você usa o que estiver em negrito, nas barras brancas das hotkeys, como você quiser configurar. Passamos agora para a parte de CaveBot: Como fazer um script para a Cave? Bem fácil e simples, apenas clique em RECORD, que localiza-se na parte superior esquerda, depois disso, faça seu "circuito", quando finalizar o mesmo, aperte em SAVE, salve arquivo como nome.sav, onde "nome" será o nome que você quiser, exemplo o nome da cave/lugar, como você quiser e achar melhor. Existe alguns atalhos para facilitar um pouco que são o "Alt" que começa a gravar seu percurso/circuito e o "Home" que salva seu percurso/circuito. Como usar o script feito? Bom, simplesmente você terá que apertar o LOAD, escolher o arquivo nome.sav e apertar no START, para então ele começar o percurso/circuito. O que significa? Agora, passamos para o Loot Manager: Auto-Loot: Pega automaticamente o loot, que foi usado na sua lista de itens. AutoOpenCorpse: Abre automaticamente os corpos dos monstros para pegar o loot de cada um. AutoAtack: Ataca automaticamente os monstros. Refill Arrow: Coloca automaticamente, munições (para paladins) para uso. Agora, Team Server: Passamos agora para Enemy Target ou Heal Friend: Enemy Target: Caso você queira atacar um team inimigo, um inimigo, alguém de outfit diferente, etc.. Heal Friend: Caso você queira healar um amigo. Agora, Rune Maker: Caso você queira que seu personagem fique runando, você poderá também colocar para ele comer automaticamente e além de não deixa-lo deslogar. Passamos agora para, Specialty: Caso queira que seu personagem use uma magia automaticamente como o "Utamo Vita" ou então "Utani Hur", entre outras. Última parte é o Remote Control: Aqui você colocará o nome de algum personagem, e o mesmo receberá as mensagens que te mandarem, além disso poderá controlar o que o char deve fazer. Isso é apenas uma breve explicação, pois me recordo muito bem disso também. Peço desculpas, por não saber tudo, pois não foi eu que criei.. Espero que gostem e aproveitem. Agradeço ao fórum Tibia Brasil, tive uma ajuda de lá, na parte de Team Server!1 ponto
-
Centurion V4
1 pontocom os pokes da 3 geração full. Os bugs que Cacaiu arrumo foram esses : ScreenShots V4: Centurion V3 Centurion V3.1 Centurion V3.2- [Recomendado] Centurion V3.3 Centurion V4 Executável Sem Bug de Catch sé ajudei Rep+ pra mim !!!1 ponto
-
Adicionando comando !spells
Adicionando comando !spells
uesleirodrigues reagiu a MonsterOt por uma resposta no tópico
1 pontoIsso serve para os players do seu ot saberem as magias. abra: data/talkactions/script/ copie cole renomei para spells e cole isso: agora em talkactions.xml bote: <talkaction words="!spells" event="script" value="spells.lua"/> agora voce cria um bloco de notas com o nome "spells" na pasta do seu ot, bem aonde ta o seu config.lua, seu loader.. ai vc edita do jeito q quiser, e quando alguem falar !spells no ot ira aparecer oq vc escreveu no bloco de notas se te ajudei rep+1 ponto -
[Aula 1] Introdução
[Aula 1] Introdução
jhonathan wendrell reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoIntrodução Aula 1 O que é scripting? Do modo mais simples possível: scripting é o ato de programar. O nome scripting vem do nome "script". O que é um script? De um modo geral, um script é um bloco de código escrito em uma linguagem de programação interpretada, ou seja, ele precisa que alguma coisa leia ele e possa "traduzir" seu conteúdo. Lembre-se de que "script" não é um termo específico de Open Tibia Servers. O que é uma linguagem de programação interpretada? Os brasileiros falam português, ingleses falam inglês e chineses falam mandarim, e com isso o mundo é composto por várias línguas. No mundo da programação não é diferente. Existem várias línguas que podem ser usadas, cada uma com uma característica e modo de escrever diferente (Assim como o português é diferente do inglês). Entre estas linguagens, existem 2 tipos: as linguagens interpretadas e as linguagens compiladas (Não-interpretadas). Podemos fazer uma comparação tosca com a vida real: o português seria uma linguagem interpretada (Nosso cérebro precisa "traduzir" a mensagem), e os desenhos seriam a língua compilada (Nosso cérebro reconhece automaticamente a "mensagem" do desenho). As linguagens compiladas são aquelas que não precisam ser lidas por nenhum programa, pois "conversam" diretamente com o computador, enquando a linguagem interpretada não consegue se comunicar com o computador, então a linguagem compilada recebe a mensagem do codigo interpretado e traduz numa linguagem que o computador entenda, dai a linguagem interpretada pode conversar com o computador (Desde que alguém traduza suas mensagens). Voltando para a parte de Open Tibia Servers, a linguagem compilada é a linguagem usada no seu servidor: o .exe no Windows, por exemplo, e a linguagem interpretada são os scripts .lua. O seu servidor compilado vai ler os scripts .lua e traduzir o conteúdo deles para que o computador possa executar o que o script manda. Se os scripts são escritos em linguagens interpretadas, qual é a linguagem dos script usados nos Open Tibia Servers? Os Open Tibia Servers usam uma linguagem de programação (Interpretada) chamada Lua, que foi feita aqui no Brasil mesmo. Características da linguagem de programação Lua: Linguagem de Programação Interpretada Linguagem de Programação Imperativa ou Programação Procedural Linguagem de Scripts ou Linguagem de Extensão Pequena, Fácil, Leve e Eficiente " Lua foi criada por um time de desenvolvedores do Tecgraf da PUC-Rio, a princípio, para ser usada em um projeto da Petrobras. Devido à sua eficiência, clareza e facilidade de aprendizado, passou a ser usada em diversos ramos da programação, como no desenvolvimento de jogos (a LucasArts, por exemplo, usou a linguagem no jogo Escape from Monkey Island), controle de robôs, processamento de texto, etc. Também é freqüentemente usada como uma linguagem de propósito geral. " Wikipédia - Lua (Linguagem de Programação) O que eu preciso para aprender Lua e começar a produzir meus scripts? Paciência (Embora seja de fácil aprendizado, você vai levar algum tempo para aprender a linguagem) Humildade (Nunca se sinta o melhor, nem ridicularize aqueles que tiverem um conhecimento menor que o seu) Vontade (Não adianta fazer as coisas sem o menor interesse, você não chegará a lugar nenhum sem vontade) Criatividade (O principal para produzir um script é ter a idéia do que você vai fazer) Conhecer a Lógica da Programação (Não se preocupe, eu vou ensinar a Lógica da Programação nas próximas aulas.) Interpretador Lua (Para testar seus scripts, claro. Você pode usar o seu OTServer para testar, e ainda usar um interpretador Lua para testar seus scripts simples fora do OTServer) Editor Lua (Não é realmente necessário, uma vez que você pode usar um editor de textos qualquer, como o bloco de notas, mas ter um Editor Lua vai ajudar muito, e alguns até vêm com um Interpretador Lua junto!) Pagar uma taxa de R$ 700,00, afinal, não estou escrevendo estas aulas de graça! (OK, não precisa pagar nada, mas no mínimo poste seus scripts aqui e ajude a seção a crescer ) Onde posso encontrar um Interpretador e/ou Editor Lua? Como interpretador (No caso de produzir scripts para Open Tibia Servers) você deve usar um servidor próprio, pessoal somente para testar os scripts que você fez, e pode usar também um Interpretador Lua geral, para testar seus scripts fora dos OTServers. Como Editor Lua você pode usar qualquer editor de textos, mas eu recomendo usar um editor que seja próprio para a linguagem Lua. Existem dois editores que já vem com um Interpretador Lua "embutido". São eles: OTScript Live! [Download] e SciTE (Scintilla) [Download]. Exercício-Tarefa: Pesquise mais na internet sobre a linguagem Lua, Scripts, etc... Somente dúvidas serão aceitas aqui! Comentários que não forem dúvidas serão apagados e os autores serão reportados! Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele. Aula 2 - Lógica da programação >> Script Live By colex.rar1 ponto -
Importância de um Comentário
Importância de um Comentário
diegocereza reagiu a Gustavo Ferreira por uma resposta no tópico
1 pontoImportância de um comentário. O fórum é uma comunidade sobre tibia, otserv e bots voltado para todos, muitos usuários se esforçam para trazer conteúdo para comunidade, algo de díficil sem nenhuma vantagem. Por incrível que pareça um comentário em um tópico pode incentivar muito esse usuário a cada dia mais trazer mais e mais conteúdo aumentando assim a interatividade do nosso fórum, é muito gratificante um autor ver seu tópico movimentado! Mesmo que seja para criticar, discordar, reclamar, enfim, qualquer um é válido, apenas comente! Quando for montar seu comentário deve ficar bastante atento para não descumpri nenhuma regra do fórum ou ofender alguém, procure fazer comentários construtivos. Um dos grandes problemas que vem ocorrendo em nossa comunidade é que muitos usuários visualizam o tópico e não deixa sua critica ou sugestão, ate em emissoras de televisão já existe maneiras de interagir. Por que comentar? Comentando em um tópico você mostra sua personalidade e pode ganhar confiança e respeito de outros usuários, deixa de ser mais um cadastrado no fórum e passa a ganhar espaço para exposição de suas idéias. Além de deixar o fórum mais animado e divertido. Vamos todos tornar o Tibia King um lugar mais agradável. Leia Com Atenção: Bom a partir da hora que você expõe um conteúdo saiba aceitar as críticas dele e sugestões, Não leve pro lado ignorante, espero que com esse tópico todos membros do Tk se concientizem e nos ajude a fazer o fórum cada vez melhor! Atenciosamente: Equipe Tibia King Intro Gustavo e Kardek1 ponto -
[SHOW OFF]Joaovitor
[SHOW OFF]Joaovitor
BrunaGaldino169 reagiu a joaovitorjoia por uma resposta no tópico
1 pontoIaew galera hj vou mostrar todos os meus mapas ja feitos entre esses 2 meses que eu voltei a mappear.1 ponto -
Temple, 8.60
Temple, 8.60
juliok500 reagiu a kaiquegabriel por uma resposta no tópico
1 pontoBom, estava atoa e resolvi abrir o meu map editor, saiu um temple nature, pouco estranho, seilá, segue as imagens. Na segunda imagem existe um bug ali perto da cachoeira, grudado com o telhado mas eu já arrumei, só fiquei com preguiça de tirar print e upar no imageshack de novo.. Download. Obrigado.1 ponto -
[Resolvido] Mana Rune e Life Rune que encha X quantidade
[Resolvido] Mana Rune e Life Rune que encha X quantidade
markim1986 reagiu a Junior Lopes por uma resposta no tópico
1 pontoNo PastaDoSeuServer/Data/Spells/Scripts/Healing; Tente assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN) setCombatParam(combat, COMBAT_PARAM_EFFECT, 1) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, 900, 0, 900) function onCastSpell(cid, var) doPlayerAddItem(cid, ID DO ITEM) doSendAnimatedText(getPlayerPosition(cid), "mana", math.random(1, 255)) return doCombat(cid, combat, var) end e em spells.xml, procure pelo script da runa e em ' charges ' você coloca ' charges = "1" ' . Att, Júnior.1 ponto -
[Resolvido] Como alterar o spawntime
[Resolvido] Como alterar o spawntime
markim1986 reagiu a Junior Lopes por uma resposta no tópico
1 pontoAli em cima, na sua dúvida, tenta aumentar para outro valor. Se der algum erro no distro, tira uma screenshot, upa em algum site de imagens, e posta aqui. Att, Júnior.1 ponto -
Fazendo Quest pelo RME
1 pontoDesculpem a enrolação, erros de fala, mas acho que to pegando jeito nisso de vídeo-aula, suahsuhasuahus Contato ae Skype = leo.araujo39 E podem fazer pedidos se eu puder ajudar eu faço a vídeo aula1 ponto
-
Modificação no Script de Weapons
Modificação no Script de Weapons
Tulacala reagiu a Fabiano Alberto por uma resposta no tópico
1 pontoTente1 ponto -
Pedido ( Rotworm e Carrion Worm leste de venore)
Pedido ( Rotworm e Carrion Worm leste de venore)
Fido reagiu a EdsonJunior por uma resposta no tópico
1 pontoPosta como chegar ae, com essa mudança de venore, to perdido u_U1 ponto -
Tibia api 9.80
1 pontoOs endereços ficam nesta parta das sources http://code.google.com/p/tibiaapi/source/browse/branches/tibiaapi-current/trunk/tibiaapi/Addresses/Versions/Version9_7_1_0.cs mais é necessário modificar aqui também para a versão mais nova http://code.google.com/p/tibiaapi/source/browse/branches/tibiaapi-current/trunk/tibiaapi/Addresses/Versions/Version.cs E para baixar as sources, utilize este tutorial http://code.google.com/p/tibiaapi/wiki/SVNSetup mais no item 4, utilize este link http://tibiaapi.googlecode.com/svn/branches/tibiaapi-current/trunk/1 ponto
-
BandMaster Tibia
1 pontoParabéns pela criatividade. Tente apenas ter seriedade para levar o projeto até o fim. Se completo, certamente será um sucesso.1 ponto
-
Tutorial luz passando no texto
Tutorial luz passando no texto
xWhiteWolf reagiu a Markin por uma resposta no tópico
1 pontoBom, tava vendo que a sessão estava muito parada e resolvi fazer um tutorial, deu um erro, o ponteiro do mouse sumiu quando salvei o video, tentei fazer outros mais também sumia, não sei como resolver isso gravei com Cantasia Studio 7. Mais bem, é um efeito bem simples não saiu muito bom mais é só pra ter uma base e botar em pratica, ta sem o mouse mais da pra entender eu acho. http://www.youtube.com/watch?v=O_1mUlz0Kwk OBS: é igual ao efeito de minha assinatura. OBS²: PARA SE SALVAR GIF(MOVIMENTO) NÃO SE CLICA EM SAVE AS... E SIM EM Save for Web & Devices...!1 ponto -
Soul System
1 pontoSem comentários para esse script! eu já testei ele aqui e ta muito fácil de configurar e funcional fora que a idéia foi brilhante, rep++1 ponto
-
Adicionando comando !spells
Adicionando comando !spells
viniciusvasconcellos reagiu a MonsterOt por uma resposta no tópico
1 pontoq creditos meu? eu q botei esse script no meu ot1 ponto -
PUSHMAX MAGEBOT
PUSHMAX MAGEBOT
Crackzn reagiu a maconheiros por uma resposta no tópico
1 pontoAAAAAAAAAH QUERO SABE COMO USA UM VI UM CARA COLOCANO UM MONTE DE COISA NO CHAOOO. E PEGANO ,, ELE ME DISSE QUE É UMA HTK DO ELFBOT MAI JA PROCUREI DE CABO A RABO NA NET.. SE ALGUEM SABE USA PUSHMAX DO MAGEBOT ME FALA PF... OU HTK DO ELF :( !!!1 ponto -
[Show OFF] Vampira
-1 pontosOlha! essa montanha tambem tem arvores-1 pontos
-
FRAGS BUG
FRAGS BUG
Gustavo Ferreira reagiu a JaTemEsseLoguin por uma resposta no tópico
-1 pontosestou com o mesmo erro =/-1 pontos -
[AJUDA] OTSERV WINDOWS 64 BITES
-1 pontoscomo faço para copilar ? este link deve te ajuda NÂO POSTE LINK DE OUTROS FÓRUNS-1 pontos