Líderes
-
-
Gustavo Ferreira
MembroPontos1151Total de itens -
Bruno Carvalho
HéroiPontos2394Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/05/16 em todas áreas
-
Baiak Titanica 8.60, Com Donate Configurada e Items!
Baiak Titanica 8.60, Com Donate Configurada e Items!
Yassuo e um outro reagiu a Gustavo Ferreira por uma resposta no tópico
2 pontosOlá Galerinha do TK... Vou Apresentar para vocês meu projeto, Foi um otserver meu que abri em Março deste ano, Ele é um mapa baiak feito cuidadosamente por mim, Com base no do Rael undead's .. Ficou online por 1 mes, Chegou a 100 Players , Então chega de papo e vamos as Features do Server.. Features Baiak Titanica 8.60 By GuH~ Quem Não gosta de um baiak né? Ultimamente você coloca um baiak online e consegui atingir uma boa quantidade de players com facilidade, Bom depende do seu projeto né.. Porem em um baiak os players procuram diversão e Opção de Teleportes e novos monstros,Items etc... Então resolvo postar aki exclusivo ao TK o meu mapa Baiak.. Templo DePoT Teleportes Free Area Vip Teleportes Items Vips Configurados e Balanceados Então Pessoal eh isso ai, Como veem na imagem, Foram Adicionados novos teleportes na area vip 2, Que funcionava como donate no meu Baiak, e também os items vips que estão balanceados, Tanto para exp 999x,500x,400x.. Ai Vocês escolhem, Vamos Pros Downloads?? Downloads Baiak Titanica e Scan BY GuH~ è isso ae pessoal espero que gostem, Se gostou da REP não custa nada! Creditos : 20% Daniloca (Por disponibilizar o server Base) 20% GabrielSv (Editar o mapa) 40% MatheusVidaLoka (Tirar bug's e fazer scripts) 20% GuStavo Ferreira (Reedição e correção de alguns Bugs)2 pontos -
Códigos const.h,tools.cpp,000-constant prontos do 0 ao 700
Versão 8.54 version 0.3.6 (Crying Damson) Ae galera estou compartilhando com vocês o código para quem for aumentar o limite de magic effects no servidor é trabalhoso então para ajudar a galera a não ficar horas fazendo resolvi trazer os códigos prontos xD Tópico atualizado 04/08/2018 as 23:57 # Atualização Códigos atualizados do 427 para o 700 const.h Tools.cpp 000-constant.lua Espero que ajude alguém xD1 ponto
-
Anél de Experiência' [Exp Ring]
Anél de Experiência' [Exp Ring]
HaragOT reagiu a Adriano SwaTT por uma resposta no tópico
1 pontoEu tentei achar aqui no TibiaKing o Anél de Experiência (Ring of Experience ou Exp Ring), e só achei um tutorial, mas está meio imcompleto e confuso... No entanto decidi postar este que criei há alguns meses. Como o nome diz, é um anél que aumenta a experiência de sua caçada' (configurável) \o/ Vamos lá... 1º Passo 2º Passo <movevent type="Equip" itemid="7697" slot="ring" event="script" value="exp_ring.lua"/> <movevent type="DeEquip" itemid="7697" slot="ring" event="script" value="exp_ring.lua"/> <movevent type="Equip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/> <movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/> Pronto, em "movements.xml" é só. 3º Passo Aqui, temos duas opções... O Exp Ring Tradicional é para server com Experiência fixa, ou seja, a EXP é sempre a mesma.. Já o Exp Ring por Stages é para server que a Experiência varia de acordo com o level do player. Clique no Spoiler referente ao seu server. EXP RING Tradicional: function onEquip(cid, item, slot) doTransformItem(item.uid, 7697, 1) doPlayerSendTextMessage(cid, 22, 'Agora ganha 2x mais experiencia!') doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*0.2) return TRUE end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 7708, 1) doPlayerSendTextMessage(cid, 22, 'Experiencia extra cancelada.') doPlayerSetExperienceRate(cid, 1) return TRUE end EXP RING por Stages: function onEquip(cid, item, slot) local rate = {} if getPlayerLevel(cid) <= 200 then rate = 1.3 elseif getPlayerLevel(cid) > 200 and getPlayerLevel(cid) <= 280 then rate = 1.15 elseif getPlayerLevel(cid) > 280 then rate = 1.05 end doTransformItem(item.uid, 7697, 1) doPlayerSendTextMessage(cid, 22, "Sua experiencia foi aumentada em "..((rate - 1)*100).." %.") doPlayerSetExperienceRate(cid, rate) return TRUE end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 7708, 1) doPlayerSendTextMessage(cid, 22, "Sua experiencia esta de volta ao normal.") doPlayerSetExperienceRate(cid, 1.0) return TRUE end Salve-o e feche o arquivo. Para aprender configurar a rate do Script clique no spoiler abaixo: Azul: É o valor em vezes que aumentará a experiência. Ex: Onde está o "2" no código, você pode substituir por quantas vezes que que seja a multiplicação da EXP' (2 é igual a 2x mais Exp)... Ou pode por em porcentagens usando como está abaixo: 1.5 = 50% 1.2 = 20% E assim sucessivamente. Se quer um Anel de Experiencia Recarregável (como soft boots), clique no Spoiler abaixo. Configurações do NPC: Recolhe: "broken experience ring" Custo: "50k" Devolte: "Brand-New Experience Ring" 5º Passo É, acho que é isso... Qualquer coisa postem aqui para resolvermos juntos. Eu editei o Script, criei o NPC e criei o Tutorial. Créditos pelo tutorial: AdrianoSwaTT Créditos pelo Exp Ring Stages: Vodkart Créditos pelo Script: OTLand Abraços, espero que seja útil' 2º Passo <movevent type="Equip" itemid="7697" slot="ring" event="script" value="exp_ring.lua"/> <movevent type="DeEquip" itemid="7697" slot="ring" event="script" value="exp_ring.lua"/> <movevent type="Equip" itemid="7708" slot="ring" event="script" value="exp_ring.lua"/> <movevent type="DeEquip" itemid="7708" slot="ring" event="script" value="exp_ring.lua/"> Pronto, em "movements.xml" é só. 3º Passo function onEquip(cid, item, slot) doTransformItem(item.uid, 7697, 1) doPlayerSendTextMessage(cid, 22, 'Agora ganha 2x mais experiencia!') doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*0.2) return TRUE end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 7708, 1) doPlayerSendTextMessage(cid, 22, 'Experiencia extra cancelada.') doPlayerSetExperienceRate(cid, 1) return TRUE end 4º Passo <!--?xml version="1.0" encoding="UTF-8"?--> <npc name="Joalheiro" script="data/npc/scripts/Sell/ring_repair.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"> <look type="128" head="40" body="37" legs="116" feet="95" addons="0"> <parameters> <parameter key="message_greet" value="Just great, another ... 'customer'. Hello, |PLAYERNAME|. If you want to trade, let's get it over with."> <parameter key="message_farewell" value="That's music in my ears."> <parameter key="message_walkaway" value="Yeah, get lost."> <parameter key="message_onsendtrade" value="Yeah, buy something."> <parameter key="module_shop" value="1"> </parameters> </npc> Salve e feche. Agora vá na pasta ( Data / NPC / Scripts / Sell ) e crie um arquivo com o nome "ring_repair.lua" (pode copiar um arquivo existente e renomeá-lo). Após fazer isto, abra este arquivo (ring_repair.lua) e cole o código abaixo dentro. Obs: se tiver algo escrito do arquivo, apague-o e deixe somente o código abaixo. 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 if(msgcontains(msg, 'ring') or msgcontains(msg, 'experience')) then selfSay('Do you want to repair your experience ring for 50000 gold coins?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerItemCount(cid, 2122) >= 1) then if(doPlayerRemoveMoney(cid, 50000) == TRUE) then doPlayerRemoveItem(cid, 2122, 1) doPlayerAddItem(cid, 7697) selfSay('Here you are.', cid) else selfSay('Sorry, you don\'t have enough gold.', cid) end else selfSay('Sorry, you don\'t have the item.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ok then.', cid) return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Salve e feche.1 ponto -
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 -
[ANTI-CLONE] 100% NOVO [O MELHOR]
[ANTI-CLONE] 100% NOVO [O MELHOR]
Jeff Delay reagiu a Absolute por uma resposta no tópico
1 pontoFala galera do TK! Trago hoje a vocês um sistema que desenvolvi sob uma base de shop com meu parceiro Thales Valentim do pokemonbr.com.br a alguns meses, pós vários testes e visando que funcionou perfeitamente trago para vocês! Como funciona? Toda vez que um ItemVIP ou qualquer Item comprado no SHOP do seu site, quando ele for entregar ao player, irá ficar; COMPRADOR POR:, ou seja; irá adicionar uma "KEY" algo que realmente saiu direto do seu SHOP, pois quando o item é disparado para o player ele vai entregar normal com a função "doCreateItemEx" e então adicionar a descrição no mesmo com a função "doItemSetAttribute". E como evitará os clones Absolute? Você terá uma QUERY para executar no seu banco de dados, fazendo uma checagem dos items VIPS que não possuem esse SERIAL KEY (o script também já faz a checagem), ou seja; os que não tiverem a KEY foram clonados (não saíram do SHOP), e então vocês poderão deleta-los manualmente caso necessário. É muito simples, apenas um script e a QUERY de checagem. Vamos a instalação? Em data/globalevents/scripts substitua o seu arquivo shop.lua por este: -- ### CONFIG ### -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 19 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 -- ### END OF CONFIG ### function onThink(interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';") if(result_plr:getID() ~= -1) then while(true) do id = tonumber(result_plr:getDataInt("id")) action = tostring(result_plr:getDataString("action")) delete = tonumber(result_plr:getDataInt("delete_it")) cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) == TRUE then local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local container_id = tonumber(result_plr:getDataInt("param3")) local container_count = tonumber(result_plr:getDataInt("param4")) local add_item_type = tostring(result_plr:getDataString("param5")) local add_item_name = tostring(result_plr:getDataString("param6")) local received_item = 0 local full_weight = 0 if add_item_type == 'container' then container_weight = getItemWeightById(container_id, 1) if isItemRune(itemtogive_id) == TRUE then items_weight = container_count * getItemWeightById(itemtogive_id, 1) else items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) if isItemRune(itemtogive_id) == TRUE then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then if add_item_type == 'container' then local new_container = doCreateItemEx(container_id, 1) doItemSetAttribute(new_container, "description", 'Bought by ' .. getCreatureName(cid) .. ' [ID:' .. id .. '].') local iter = 0 while iter ~= container_count do local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) doItemSetAttribute(new_item, "description", 'Bought by ' .. getCreatureName(cid) .. ' [ID:' .. id .. '].') doAddContainerItemEx(new_container, new_item) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) doItemSetAttribute(new_item, "description", 'Bought by ' .. getCreatureName(cid) .. ' [ID:' .. id .. '].') received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.') doPlayerSave(cid) db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end if not(result_plr:next()) then break end end result_plr:free() end return TRUE end Confira se no seu globalevents.xml já possui a tag: <globalevent name="shop" interval="30000" script="shop.lua"/> PRONTO, VOCÊ ESTÁ LIVRE DE CLONES! TÃO SIMPLES NÃO? Para fazer a checagem se há items clonados, abra o seu phpmyadmin e execute a seguinte query: ------------------- COMANDO SQL BY ABSOLUTE PARA VERIFICAR A TABELA PLAYER_DEPOTITEMS---------------------- SELECT `player_id`,`pid`,`sid`,CONVERT( `attributes` USING latin1 ) FROM `player_depotitems` WHERE CONVERT( `attributes` USING latin1 ) LIKE '%description%' ------------------- COMANDO SQL BY ABSOLUTE PARA VERIFICAR A TABELA PLAYER_ITEMS---------------------- SELECT `player_id`,`pid`,`sid`,CONVERT( `attributes` USING latin1 ) FROM `player_items` WHERE CONVERT( `attributes` USING latin1 ) LIKE '%description%' OBSERVAÇÃO IMPORTANTE: Caso seu servidor já esteja online e já possua vendas no seu SHOP, você terá que adicionar a "KEY" em todos os items ou reseta-los. OUTRA OBSERVAÇÃO: Nunca crie items VIP com o ADMIN e de aos jogadores, pois eles ficaram sem a "KEY" e poderão ser deletados. ESTE SCRIPT FUNCIONA PERFEITAMENTE NAS REVS 0.3.6 e 0_4, caso necessário passo para a 1.x. S IMPLES, PRATICO E PERFEITO NÃO? Quero vê-los usando, espero ter ajudado. :D Até a próxima! Absolute.1 ponto -
[TFS 0.4/0.3.6] Aviso de bless ao sair da zona de proteção.
[TFS 0.4/0.3.6] Aviso de bless ao sair da zona de proteção.
bagulhoescroto reagiu a Wakon por uma resposta no tópico
1 pontoFiz esse script a bastante tempo a pedido de um membro e resolvi postar para vocês . Versão testada: 8.60 TFS: 0.4 / 0.3.6 Função: Ao sair de uma zona de proteção, caso o player esteja sem bless, ele manda uma mensagem na tela avisando que está sem bless. Em "Data/creaturescripts/scripts", copie e cole um arquivo.LUA e renomeie para checkBless.lua, apague tudo e cole: function onThink(cid, lastExecution, thinkInterval) if(getTilePzInfo(getCreaturePosition(cid))) == false and getPlayerStorageValue(cid, 23333) <= 0 then for b = 1,5 do if getPlayerBlessing(cid, b) == false then setPlayerStorageValue(cid, 23333, 1) return doPlayerSendTextMessage(cid, 22, "Você não tem todas as bless, tome cuidado.") end end elseif (getTilePzInfo(getCreaturePosition(cid))) == true and getPlayerStorageValue(cid, 23333) == 1 then setPlayerStorageValue(cid, 23333, -1) end return true end Em "Data/creaturescripts", abra o creaturescripts.xml e adicione: <event type="think" name="checkBless" event="script" value="checkBless.lua"/> Novamente em "Data/creaturescripts/scripts", abra o arquivo login.lua e adicione: registerCreatureEvent(cid, "checkBless") Espero que gostem , caso dê algum erro, me avise! Créditos: Wakon - Script ScythePanthom -- Pela idéia.1 ponto -
Sprites Poketibia
Sprites Poketibia
Maxwell743 reagiu a skyziinxxd por uma resposta no tópico
1 pontoBom, vi muita gente pedindo sprites para poketibia de 4ª, 5ª e 6ª geração, segue aqui um download de sprites de pokes da 3ª, 4ª, 5ª e mais tarde a 6ª (infelizmente sem as portraits e as corpses, desculpem ) Sprites: Arceus, Cresselia, Darklugia, Darkrai, Dialga, Giant Karp, Giratina, Glaceon, Leafeon, Golurk, Groudon, Rayquaza, Shiny Rayquaza, Riolu, Lucario, Mismagius, Palkia, Manaphy, Heatran, Zekrom, Reshiram e Primal Dialga https://www.mediafire.com/?aib4802i04f8yw3 Sprites: Jirachi, Mega Alakazam, Mega Gengar, Mega Charizard(X e Y), Mega Blastoise, Mega Lucario, Mega Tyranitar, Mega Blaziken, Shiny Mega Lucario, Shiny Mega Gengar, Shiny Mega Alakazam, Shiny Mega Blastoise, e Shiny Mega Blaziken https://www.mediafire.com/?p320tdoxoiwaskz Se eu estiver na área errada porfavor me mova para a correta. Obrigado, Se Ajudei REP+ Eu não sei muito bem como colocar scan, se alguem colocar para mim eu agradeceria... Creditos para os criadores da base: Pokemon Dash Advanced Online (2015) - Aberos - Gristony - Gabrieltxu - NextBR -Valaquinhas - Sukito - TFS Team1 ponto -
[Evento] Defend The King - A monarquia do REI
[Evento] Defend The King - A monarquia do REI
Carlos Henrique II reagiu a Gustavo Ferreira por uma resposta no tópico
1 pontoBom sem mais nem menos tá ai o Defend The King, Evento Atualmente vendido por empresas de Otserver! Pack Contém: Todos Scripts do Evento + Mapa Download: http://www.mediafire...7p2jkly4hv5y9om Descrição: É um sistema de WAR, onde 2 grupos ( atacantes e defensores ) se confrontam entre si em um castle, com os seguintes objetivos: Atacantes: Matar o The King ( o rei ), que fica dentro do castelo defendidos pelos Defensores Defensores: Defender o The King durante um determinado tempo pré definido. #Extras: - Respawn to back: Se um player morrer no evento, tera de esperar 5segundos * (vezes) o numeros de mortes naquela rodada. - The Gate: um gate é sumonado no mapa para impedir temporariamente a entrada dos atacantes ao castelo. - The King: Summon que pode ser paralizado ou nao, para se esconder dos atacantes. Existe somente um summon durante a rodad .1 ponto -
Procuro Equipe
Procuro Equipe
FidelixMonte reagiu a Vodkart por uma resposta no tópico
1 pontoCargo: Scripter Procuro equipe que tenha um projeto legal, não precisa ser global nem nada... mas que a exp seja razoavelmente na media, que gostem de criar QUEST,EVENTS, SISTEMAS, etc... pode ser um baikao mesmo da hora a versão vária de 8.6 até tfs 1.2(mas prefiro 8.6)1 ponto -
Sistema de Upgrade Bronson Server (refinar)
Este é um sistema de refinar itens feito com base no do Bronson Server. Para refinar, o jogador precisa ter uma certa quantidade de Iron Ores (dependendo do level do item) e de um Iron Hammer. Somente equipamentos e armas podem ser refinados. crie Killua Upgrading System.lua em data/actions/scripts e coloque: --- Sistema de Upgrade de itens feito por Killua. --- Sistema feito com base no do Bronson Server. local vocations = {1, 2, 4, 5, 6, 7, 8} -- Vocações que podem refinar itens local ids_bloqueados = {2160, 5706, 2463} -- Itens que não podem ser refinados local controle = { {level = 0, quantOre = 1, chance = 100}, -- Level do item, quantidade de Iron Ore necessaria, chance de sucesso {level = 1, quantOre = 2, chance = 90}, {level = 2, quantOre = 3, chance = 80}, {level = 3, quantOre = 4, chance = 70}, {level = 4, quantOre = 5, chance = 60}, {level = 5, quantOre = 6, chance = 50}, {level = 6, quantOre = 7, chance = 40}, {level = 7, quantOre = 8, chance = 30}, {level = 8, quantOre = 9, chance = 20}, {level = 9, quantOre = 10, chance = 10} } function getItemLevel(uid) if uid > 0 then return getItemAttribute(uid, "lvl") or 0 end return false end function doItemAddLevel(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) + count) end return false end function onUse(cid, item, fromPosition, itemEx, toPosition) if not isInArray(vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Sua vocacao nao pode refinar.") elseif isInArray(ids_bloqueados, itemEx.uid) then return doPlayerSendCancel(cid, "Este item nao pode ser refinado.") end if getItemInfo(itemEx.itemid).attack > 0 or getItemInfo(itemEx.itemid).defense > 0 or getItemInfo(itemEx.itemid).armor > 0 then for _, upgrade in pairs(controle) do local atk = getItemAttribute(itemEx.uid, "attack") or getItemInfo(itemEx.itemid).attack local def = getItemAttribute(itemEx.uid, "defense") or getItemInfo(itemEx.itemid).defense local arm = getItemAttribute(itemEx.uid, "armor") or getItemInfo(itemEx.itemid).armor local chance = math.random(1, 100) if getItemLevel(itemEx.uid) == upgrade.level then if doPlayerRemoveItem(cid, 5880, upgrade.quantOre) then doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS) if chance <= upgrade.chance then if getItemLevel(itemEx.uid) == 0 then doItemSetAttribute(itemEx.uid, "description", "Esse item foi refinado por" ..getCreatureName(cid)) end doItemAddLevel(itemEx.uid, 1) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).. " + " ..getItemLevel(itemEx.uid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce refinou com sucesso! Agora seu "..getItemNameById(itemEx.itemid).." eh level " ..getItemLevel(itemEx.uid)) if getItemInfo(itemEx.itemid).attack > 0 then doItemSetAttribute(itemEx.uid, "attack", atk + 1) return true elseif getItemInfo(itemEx.itemid).armor > 0 then doItemSetAttribute(itemEx.uid, "armor", arm + 1) return true elseif getItemInfo(itemEx.itemid).defense > 0 and getItemInfo(itemEx.itemid).attack <= 0 then doItemSetAttribute(itemEx.uid, "defense", def + 1) return true end else doTransformItem(itemEx.uid, 2256) doItemSetAttribute(itemEx.uid, 'name', "metal trash") doItemSetAttribute(itemEx.uid, 'attack', 0) doItemSetAttribute(itemEx.uid, 'armor', 0) doItemSetAttribute(itemEx.uid, 'defense', 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.") return true end else doPlayerSendCancel(cid, "Voce nao tem iron ores o suficiente. Voce precisa de "..upgrade.quantOre.." iron ores.") end end end else doPlayerSendCancel(cid, "Esse item nao pode ser refinado.") end return true end Em data/actions/actions.xml coloque essa TAG: <action itemid="2422" event="script" value="Killua Upgradin System.lua"/> Para configurar, leia meus comentários dentro do código.1 ponto
-
erro script
1 pontoCRIEI UMA SCRIPT QUE ESTA DANDO ERRO MOVEMENTS/SCRIPT NAO SEI CUAL ERRO PQ QUANDO COLOCO ESSA SCRIPT EM UM PORTAL ACTION ID E O PLAYER PASSA PRA VOLTAR PARA O LOCAL QUE ELE USOU A SPELL ELE NAO VOLTA ALGUEM PODE AJUDAR JA TOU 4 DIAS TENTANDO ARRUMAR CRIEI A CONTA PRA ALGUEM PODER AJUDAR SOU NOVO MAS SEI USAR JA SEI DAR REP ETC SE ALGUEM PUDER AJUDAR REP+ VLW --Creditos-- @Talesigorvr ajudou numa parte do script quando meu amigo @zPerseu teve um pequeno erro1 ponto
-
Morrer não perder ml
1 pontofunction onDeath(cid, corpse, deathList) if isPlayer(cid) then doPlayerSetLossPercent(cid, PLAYERLOSS_MANA, 0) end return true end creaturescript.xml <event type="death" name="ProtectMl" event="script" value="nome do seu script.lua"/> creaturescript/script/login.lua adicione: registerCreatureEvent(cid, "ProtectMl")1 ponto
-
SCRIPT NAO ESTA FUNCIONANDO
SCRIPT NAO ESTA FUNCIONANDO
FidelixMonte reagiu a Vodkart por uma resposta no tópico
1 ponto<movevent type="StepIn" actionid="ID ESCOLHIDO" event="script" value="nome do seu script.lua"/>1 ponto -
SCRIPT NAO ESTA FUNCIONANDO
1 pontojá deixei certo, o script que mandei ta funcionando...1 ponto
-
SCRIPT NAO ESTA FUNCIONANDO
1 pontoentão ok no forum tens uns tutorias legal1 ponto
-
(Resolvido)Erro ao puxa a lavancar(Quest Anihi)
local t = { lvl = 100, entrada = { {x = 710, y = 1420, z = 5}, -- pos players {x = 709, y = 1420, z = 5}, {x = 708, y = 1420, z = 5}, {x = 707, y = 1420, z = 5} }, saida = { {x = 710, y = 1420, z = 6}, -- pos para onde eles irão {x = 709, y = 1420, z = 6}, {x = 708, y = 1420, z = 6}, {x = 707, y = 1420, z = 6} }, monstros = { {{x = 707, y = 1418, z = 6}, "Demon"}, -- defina pos dos montros e nomes {{x = 709, y = 1418, z = 6}, "Demon"}, {{x = 708, y = 1422, z = 6}, "Demon"}, {{x = 710, y = 1422, z = 6}, "Demon"}, {{x = 712, y = 1420, z = 6}, "Hellfire Fighter"}, {{x = 713, y = 1420, z = 6}, "Hellfire Fighter"}, {{x = 711, y = 1420, z = 6}, "Ghazbaran"} } } function onUse(cid, item, fromPosition, itemEx, toPosition) local check = {} for _, k in ipairs(t.entrada) do local x = getTopCreature(k).uid if(x == 0 or not isPlayer(x) or getPlayerLevel(x) < t.lvl) then doPlayerSendCancel(cid, 'Está faltando player ou alguém não possui level '..t.lvl..' ou mais.') return true end table.insert(check, x) end for _, summon in pairs(t.monstros) do local creature = getTopCreature(summon[1]).uid if(creature > 0 and not isPlayer(creature)) then doRemoveCreature(creature) end doCleanTile(summon[1]) doCreateMonster(summon[2], summon[1]) end for i, tid in ipairs(check) do doSendMagicEffect(t.entrada[i], CONST_ME_POFF) doTeleportThing(tid, t.saida[i], false) doSendMagicEffect(t.saida[i], CONST_ME_ENERGYAREA) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) return true end1 ponto
-
(Resolvido)Erro Onsay
(Resolvido)Erro Onsay
johnconolly reagiu a Vodkart por uma resposta no tópico
1 pontovc está chamando a função de pegar a posição do jogador mesmo sem saber se ele está lá... function onSay(cid, words, param) local config = { seconds = 5, storage = 19, msg = "Você não consegue fazer na velocidade 5." } function useAgain(cid) return setPlayerStorageValue(cid, config.storage, 2) end local playerPos = getCreaturePosition(cid) if getPlayerLookDir(cid) == 0 then position = {x = playerPos.x, y = playerPos.y-1, z = playerPos.z, stackpos = 253} elseif getPlayerLookDir(cid) == 1 then position = {x = playerPos.x+1, y = playerPos.y, z = playerPos.z, stackpos = 253} elseif getPlayerLookDir(cid) == 2 then position = {x = playerPos.x, y = playerPos.y+1, z = playerPos.z, stackpos = 253} elseif getPlayerLookDir(cid) == 3 then position = {x = playerPos.x-1, y = playerPos.y, z = playerPos.z, stackpos = 253} end local alvo = getThingfromPos(position) local direcself = getPlayerLookDir(cid) if isPlayer(alvo.uid) then local direcalvo = getPlayerLookDir(alvo.uid) if direcself == direcalvo then if getPlayerStorageValue(cid, config.storage) == -1 then setPlayerStorageValue(cid, config.storage, os.time()-config.seconds) end if config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)) > 0 then doPlayerSendCancel(cid, string.format(config.msg, config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)))) return true end setPlayerStorageValue(cid, config.storage, os.time()) doSendAnimatedText(getPlayerPosition(cid), "CREEEU!", TEXTCOLOR_RED) doSendAnimatedText(getPlayerPosition(alvo.uid), "AII!", TEXTCOLOR_ORANGE) return true else doPlayerSendCancel(cid, "Precisa estar de costas para você.") return true end else doPlayerSendCancel(cid, "Não tem nenhum player na sua frente.") return true end return true end1 ponto -
SCRIPT NAO ESTA FUNCIONANDO
1 pontoé simples cara, cada o cid da função? meu deus! function getMarkPos(cid) return {x=getPlayerStorageValue(cid, 19000), y=getPlayerStorageValue(cid, 19001), z=getPlayerStorageValue(cid, 19002)} end function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) and getMarkPos(cid).x > 0 then doTeleportThing (cid, getMarkPos(cid)) end return true end OBS: para vc que não sabe o que é 'cid', significa CREATURE ID por favor, aprendam o básico de LUA omg1 ponto
-
Bau Promote
1 pontofunction onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid,13542) > 0 then doPlayerSendTextMessage(cid,22,"Você já pegou sua recompensa.") else doTeleportThing(cid, getPlayerMasterPos(cid)) setPlayerPromotionLevel(cid, 2) doPlayerPopupFYI(cid, "Você tem uma nova promotion!\nAproveite!.") setPlayerStorageValue(cid,13542,1) end return true end Registra no actions.xml e põem o actionid registrado no baú.1 ponto
-
[MOD] Partner System
1 pontoPartner System! #Descrição: Sistema totalmente inovador e que possui um incrível ponto positivo que, sem sombra de dúvida, é lembrado pelo player ao escolher um servidor para jogar: a cada novo player convidado por um outro player, cujo número é limitado, este ganhará uma certa quantia de experiência definida pelo dono do servidor a cada monstro que o player convidado matar. Portanto, os players irão convidar o maior número possível de amigos. Quando os players convidados atingirem certo level serão retirados da lista de convidados. #O que possui? -Script feito em Mods apenas um arquivos, super fácil instalação. -Area de configuração, te permite editar todas as variáveis do script.. créditos: Duda Lima ChaitoSoft Te ajudei +REP!1 ponto
-
[pedido] Regen Stamina Trainer
[pedido] Regen Stamina Trainer
ZoR reagiu a Bodak Reborn por uma resposta no tópico
1 pontoNos SQMs dos trainers, coloque um action id data/movements/scripts nome_arquivo addSta = {} local config = { timeToAdd = 3, -- intervalo de tempo para adicionar. addTime = 5, -- quanto vai adicionar. } local function addStamina(cid) if not isPlayer(cid) then addSta[cid] = nil return true end doPlayerSetStamina(cid, getPlayerStamina(cid) + config.addTime) doPlayerSendTextMessage(cid, 25, "Você recebeu "..config.addTime.." minutos de stamina.") addSta[cid] = addEvent(addStamina, config.timeToAdd * 60 * 1000, cid) end function onStepIn(cid) if isPlayer(cid) then addSta[cid] = addEvent(addStamina, config.timeToAdd * 60 * 1000, cid) end return true end function onStepOut(cid) if isPlayer(cid) then stopEvent(addSta[cid]) addSta[cid] = nil end return true end movements.xml <movevent type="StepIn" actionid="actiond_id" event="script" value="nome_arquivo.lua" /> Adaptei o script do Elwyn.1 ponto -
Dat Editor [8.54~8.60]
1 pontoDat Editor (Tutorial Outfits) Olá galera vim hoje disponibilizar para você um dat editor que funciona nas seguintes versões, 8.54 e 8.60, algums não sabem para que serve ele de certo, o dat editor é uma forma rapida, de trocar suas sprites, e editar as funções dos items. Download Anexado: Link Direto Scan: aqui1 ponto
-
PVP DEDINHO, Foxworld, with crosshair
Olá galera do TK vim trazer um script que muitos pediram aqui no forum e falaram que era apenas nas source para colocar em seu OTServ é muito facil vou dar um exemplo Exemplo: Vá até o script da SD que fica em "Data/spells/scripts", no arquivo suddendeath.lua e após a function onCastSpell, adicione: if isPlayer(getCreatureTarget(cid)) == TRUE and getCreatureTarget(cid) ~= getTopCreature(variantToPosition(var)).uid then doPlayerSendCancel(cid, "You can not shoot this directly on players.") return FALSE end if isPlayer(variantToNumber(var)) == TRUE then doPlayerSendCancel(cid, "You can not shoot this directly on players.") return FALSE end Pronto seu PVP dedinho está feito se quiser em todas as runas basta adicionar nos script. não sou bom para criar topicos caso a moderação queira pode editar. Creditos: Limos OTLAND.1 ponto
-
Broadcast System 100%
Broadcast System 100%
Miragem reagiu a xWhiteWolf por uma resposta no tópico
1 pontoFala galera do TK, hoje vim trazer um script que eu já fiz a algum tempo prum cara no suporte, é nada mais e nada menos doque um sistema de broadcast onde players maiores que um determinado level pagam um determinado valor de gp's para soltarem uma mensagem para o server todo. talkactions\scripts\broadcast22.lua: local config = { storage = 19400, -- storage em que será salvo o tempo cor = "advance", -- de acordo com o constant.lua da lib tempo = 2, -- em minutos price = 1000, -- preço pra usar o broadcast level = 100 -- level pra poder utilizar o broadcast } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveMoney(cid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) doBroadcastMessage("[BROADCAST] "..getCreatureName(cid)..": "..param.."", config.cor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.") return false else doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.") return false end else doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.") return false end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end e em talkactions.xml adicione essa linha: <talkaction log="yes" words="/all" event="script" value="broadcast22.lua"/> Da forma que tá configurado os players nv 100 ou mais poderão digitar /all Mensagem e por apenas 1000 gp's eles falarão a mensagem para o server inteiro, feito isso ele terá que esperar 2 minutos para mandar outro broadcast. Se você quiser mudar a cor é só ir no constant.lib e procurar algo parecido com isso daqui: MESSAGE_TYPES = { ["advance"] = MESSAGE_EVENT_ADVANCE, ["event"] = MESSAGE_EVENT_DEFAULT, ["white"] = MESSAGE_EVENT_DEFAULT, ["orange"] = MESSAGE_STATUS_CONSOLE_ORANGE, ["info"] = MESSAGE_INFO_DESCR, ["green"] = MESSAGE_INFO_DESCR, ["small"] = MESSAGE_STATUS_SMALL, ["blue"] = MESSAGE_STATUS_CONSOLE_BLUE, ["red"] = MESSAGE_STATUS_CONSOLE_RED, ["warning"] = MESSAGE_STATUS_WARNING, ["status"] = MESSAGE_STATUS_DEFAULT } Uma imagem pra vcs verem como é:1 ponto -
[Talkaction] Rainbow Outfit
[Talkaction] Rainbow Outfit
Gabrielx17 reagiu a Kamii por uma resposta no tópico
1 pontoFala TK beleza? hoje venho aqui compartilhar um Script meio antigo porém funcional "Rainbow Outfit" para quem já jogou OT'S 8.40 sabe o que é isso Bom vamos lá. Para quem não sabe o que esse Script faz ele fica trocando de cor aleatoriamente assim que o Player ativa o comando como no vídeo abaixo. https://vid.me/O1hJ Para fazer a instalação vá em Data/Talkactions/Scripts Depois copie e cole qualquer arquivo .LUA Renomeie o arquivo para rainbow copie e cole tudo que está abaixo la dentro. Agora vá para Data/Talkactions E abra o aquivo Talkactions.XML Depois copie e cole o que está logo abaixo la dentro do Talkactions.XML !rainbow on = Ligar o Rainbow Outfit !rainbow off = Desligar o Rainbow Outfit1 ponto -
Criando uma Hunt Com Imagens
Criando uma Hunt Com Imagens
Cat reagiu a AndreAzevedo por uma resposta no tópico
1 pontoOlá galerinha do TK. Eu só venho pedindo ajuda, hehehe decidi ajudar também. MapEditor: RME - 2.2 Tibia: V8.6 Então galerinha, eu vou mais é dar umas dicas de como você pode editar ou criar do zero uma Hunt, "Esta hunt é para ot 8.6 e não tem download." pois é mais umas dicas pro pessoal que quer ter mais noção em fazer seu mapa próprio e não baixar nada da internet... Vamos lá! Primeiro passo, escolher o que quer fazer, eu hoje estarei fazendo uma hunt para meu servidor, para uma area vip donate. e o mob que escolhi foi Dragon, Dragon Lord, e seus babys, com portal. Escolha a area que deseja fazer a sua hunt. Não deve ser muito grande e nem muito pequena, eu gosto de fazer área que ao menos 3 players consigam upar sem ter que ficar brigando pelo local. e não pode ser muito grande para que haja uns conflitos também né se não perde a graça. Então fiz isto em uma parte qualquer do meu mapa. Depois que escolhi o formato da minha hunt, vem o chão. Eu estou fazendo uma caverna, este mapa terá dois andares. Vamos para o Primeiro andar. vamos agora apenas Detalhar o "GROUND" o Chão. Fazendo inúmeras possibilidades vendo em consideração que o animal que viverá no Local será os Dragons de "Fire". PARTE 1 - Chão/Ground Agora vem a Parte na qual é um pouco mais detalhada. Agora vem as Rochas. para dar mais detalhe ao chão. PARTE 2 - ROCHAS/DETALHES/FIELDS PARTE 3 - Derredor da Floresta/Arvores/Pequenas Montanhas. Tudo para ocupar o Espaço e dar os detalhes. Parte 4 - Faça da Mesma forma que a Parte 1. Irei postar as Fotos sequencialmente, mas são os mesmos passos da Parte 1. Espero ter ajudado alguém, e se quiserem mais algum outro tutorial pode pedir comentando. Vlw Galerinha. Créditos: Andre Felipe De Azev1 ponto -
Item q Troca a outfit do player
1 pontofunction onUse(cid) local values = { [1] = {male = {lookType = 10, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 11, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, [2] = {male = {lookType = 20, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 21, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, [3] = {male = {lookType = 30, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 31, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, [4] = {male = {lookType = 40, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 41, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, [5] = {male = {lookType = 50, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 51, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, [6] = {male = {lookType = 60, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 61, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, [7] = {male = {lookType = 70, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 71, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, [8] = {male = {lookType = 80, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, female = {lookType = 81, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0} }, } if getPlayerSex(cid) == 0 then doCreatureChangeOutfit(cid, values[getPlayerVocation(cid)].female) else doCreatureChangeOutfit(cid, values[getPlayerVocation(cid)].male) end return true end1 ponto
-
(Resolvido)[AJUDA] Monster morre e nasce TP
"data/creaturescripts/scripts/tpmonster.lua" : local config = { message = "Parabens voce derrotou o Azerus. Foi criado um Teleport no corpo do Azerus !!", timeToRemove = 20, -- seconds teleportId = 1387, bosses = { ["Azerus"] = { x = 576, y = 644, z = 7 }, } } local function removal(position) doRemoveThing(getTileItemById(position, config.teleportId).uid, 1) return TRUE end function onDeath(cid, corpse, killer) registerCreatureEvent(cid, "teleportmonster") local position = getCreaturePosition(cid) for name, pos in pairs(config.bosses) do if name == getCreatureName(cid) then teleport = doCreateTeleport(config.teleportId, pos, position) doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1) addEvent(removal, config.timeToRemove * 1000, position) doSendMagicEffect(position,10) end end return TRUE end "data/creaturescripts/creaturescripts.xml" : <event type="death" name="teleportmonster" script="tpmonster.lua"/> No scripts do Azerus você coloca essa tag no final do scripts do monster : <script> <event name="teleportmonster"/> </script> Um exemplo, caso você for usar o Troll como o monster :1 ponto
-
Script newsnoticies
Script newsnoticies
Astral Sword reagiu a GOD Vitor por uma resposta no tópico
1 pontoCriando Primeiro passo-crie uma pasta .lua em data/talkactions/scripts renomeie ela para "!newsnotices" cole isso dentro dela: function onSay(cid, words) local msg = [[ --------- Fique atento,toda vez que logar use o sistema !newsnotices,para se manter informado. --------- ••Galera,bom daqui 3 meses o update 9.1 vai estar disponivel! ••Novos Shinys Adicionados,Shiny Cacnea,Shiny Scizor,Shiny Tyranitar,Shiny Magmar etc. ••Se a nossa pagina do facebook,chegar as 500 curtidas,eu Dungeon 13,vou fazer um mega evento!. ••Para clarear em sua volta diga !luz ••Novos Sistemas,afk on,afk off,etc. ••Para saber sobre o sistema de Reputacão diga: !reputacao ••Master Ball,vai ser concertada em breve! ••Novo Sistema Leilao! ••Novo Sistema Rep! ••A Equipe Rocket,esta aprontando alguma,dia 25 do 12,vai ter uma caça imperdivel,e o que achar a equipe rocket,vai ganhar um pergaminho de exp,e uma Boost Stone! ••para saber sobre o sistema de rep diga !reputacao ••Diga !save para salvar seu char. --By [ADM]Dungeon 13 ->> Adiministrador!-- ]] doPlayerPopupFYI(cid, msg) return true end Segundo passo-abra a pasta Talkactions.XML Cole isso dentro dela:<talkaction words="!newsnotices" event="script" value="!newsnotices.lua"/> Obs:você pode editar as mensagens. Print:1 ponto -
[NPC] Que teletransporta
[NPC] Que teletransporta
uesleirodrigues reagiu a Nogard por uma resposta no tópico
1 pontoxml: lua:1 ponto -
Problemas com FRAG!
Problemas com FRAG!
amora murder reagiu a grafit por uma resposta no tópico
1 pontoAntes de tudo eu queria pedir desculpas por estar revivendo o tópico mas eu estive com o mesmo problema e não achei em lugar algum a solução.. Depois de muito procurar pelo fix desse bug eu achei a solução. No seu config.lua a deathlist está desativada -- Deathlist deathListEnabled = "no" deathListRequiredTime = 1 * 60 * 1000 deathAssistCount = 20 maxDeathRecords = 5 Ative essa função e o problema será resolvido! -- Deathlist deathListEnabled = "yes" deathListRequiredTime = 1 * 60 * 1000 deathAssistCount = 20 maxDeathRecords = 51 ponto -
[Resolvido] {PEDIDO}Anti Nuker..
[Resolvido] {PEDIDO}Anti Nuker..
Denner02 reagiu a Bruno Carvalho por uma resposta no tópico
1 pontoSim, o nuker entra no computador como se fosse em um site, dai começa a mandar peso nas portas e esse arquivo irá bloquear o acesso. Como se fosse em um site.1 ponto -
[Resolvido] {PEDIDO}Anti Nuker..
[Resolvido] {PEDIDO}Anti Nuker..
Denner02 reagiu a Bruno Carvalho por uma resposta no tópico
1 pontoNão e bem um ant nuker, ele passou no teste alissow server de segurança. Se tu não confia nele sem scan não baixa. Não estou obrigando ninguém. Ele faz o nuker ficar sem acesso somente.1 ponto