Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 08/05/15 em todas áreas
-
[Encerrado]Nebula - Rei Johian
Felipe Moraes e 6 outros reagiu a Administrador por um tópico no fórum
Uma cidade esquecida pelo tempo. O lar do Rei é revelado, junto às criaturas que causaram seu desaparecimento. Estará Johian morto?7 pontos -
Nova seção para Projetos OpenTibia
Avuenja e um outro reagiu a Administrador por um tópico no fórum
Fala galera, venho anunciar a nova seção do xtibia. Alguns membros estavam reclamando da má organização a respeito de show off de projetos. Pois então, foi criado a seção Projetos OpenTibia. A seção já está em andamento e os projetos já podem ser postados. Regras Da seção • Você pode postar apenas um tópico por projeto nesta seção. Este, deve conter informações sobre seu projeto em desenvolvimento. • Tópicos inativos por 30 à 60 dias serão movidos para a lixeira pública. • É proibido referências à formação de equipe. Para isto, utilize a seção Formação de Equipes. • Caso seu projeto seja um servidor e ele já esteja online, você pode continuar atualizando o tópico deste com novos updates do servidor. • Evite a divulgação direta do servidor nesta seção, para isto, utilize a seção Anúncio de OTServers. • Todos os tópicos serão avaliados antes de serem aprovados. Crie já seu tópico e mostre à comunidade o que você está desenvolvendo. Quem sabe consegue um incentivo maior... Comentem, abraços!2 pontos -
local config = { name = "monster_name", --Nome do monstro. medal = xxx, --ID da medalha. damagePrizes = { --[{minDamage, maxDamage}] = {{itemid, count}, {itemid, count}, {itemid, count}, ...}, [{1, 1000}] = {{9281, 1}, {2160, 50}}, [{1001, 2000}] = {{9281, 1}, {2160, 50}, {2191, 100}, {9282, 1}}, }, storage = 91828, } function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and isMonster(cid) and getCreatureName(cid) == config.name and type == STATSCHANGE_HEALTHLOSS then local damage = getPlayerStorageValue(attacker, config.storage) < 1 and 0 or getPlayerStorageValue(attacker, config.storage) setPlayerStorageValue(attacker, config.storage, damage + value) end return true end function onDeath(cid, corpse, deathList) for _, pid in pairs(deathList) do local damage, prizes = getPlayerStorageValue(pid, config.storage), {} for dmg, items in pairs(config.damagePrizes) do if damage >= dmg[1] and damage <= dmg[2] then prizes = items break end end if #prizes > 0 then local prize = prizes[math.random(#prizes)] doPlayerSendTextMessage(pid, 27, "For helping killing "..config.name..", you received a medal and "..prize[2].."x "..getItemNameById(prize[1])..".") doPlayerAddItem(pid, prize[1], prize[2]) doItemSetAttribute(doPlayerAddItem(pid, config.medal, 1), "description", "Medalha de honra ganha por "..getCreatureName(pid).." por ajudar a derrotar o "..config.name.." no dia "..os.date("%D")..".") setPlayerStorageValue(pid, config.storage, -1) end end db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = "..config.storage) return true end2 pontos
-
Show! Parabéns ekz!2 pontos
-
Explicação: É o sistema de casamento conhecido, porém foi reformulado para funcionar em versões mais recentes. Descrição: O sistema conta com: Item: Os jogadores que se casar receberão um Wedding ring com seus nomes e data do casamento. Outfit: jogadores que se casam recebem outfit, caso se divorciem, perder as outfits. Look: o look mostra com quem é casado Combate: Os jogador não pode atacar seu patner Comandos: /marriage info -- mostra em uma janela o preço do casamento/divórcio e o level minimo para casar. /marriage status -- mostra com quem é casado e a data do casamento Outra coisa bem importante é que os dois jogadores NÃO precisam estar online para se divorciarem, exemplo: JOÃO e casado com MARIA, JOÃO vai até o npc e paga um preço para de divorciar, só quem pede o divorcio que paga a taxa, logo MARIA não precisa pagar nada pois seu Ex-Patner JOÃO já pagou. O que ela precisa fazer é "assinar" com o npc o seu divorcio também. Como casar? Player1: Player2: 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 ) ); Caso você ter a outfit Husband e Wife(de casamento) no seu servidor abra o spoiler: Mods: Npc: Configuração:1 ponto
-
Teleport Scroll
UntFrc reagiu a Animal Pak por um tópico no fórum
Em actions/actions.xml adicione: <action itemid="8189" script="tpscroll.lua" /> Em actions/scripts crie um arquivo tpscroll.lua e dentro coloque: function onUse(cid, item,frompos, item2, topos) templo = getPlayerMasterPos(cid) posicion = getCreaturePosition(cid) if item.itemid == 8189 then if (getCreatureCondition(cid, CONDITION_INFIGHT) == FALSE) then getThingfromPos(posicion) doSendMagicEffect(getCreaturePosition(cid), 36) doTeleportThing(cid, templo, TRUE) doRemoveItem(item.uid,1) doSendMagicEffect(getCreaturePosition(cid), 36) return true else doPlayerSendCancel(cid,"Não pode se teletransportar durante o battle.") doSendMagicEffect(getCreaturePosition(cid), 2) end end end Créditos: boniyasha1 ponto -
SoftCores é um servidor para quem e apaixonado por Tibia 7.4, com um desejo de relembrar velhos e bons momentos e fornecer muita diversão para os nossos jogadores. Este projeto é totalmente baseado na versão antiga, mas com alguns ajustes para o melhor desempenho e divertido para todos os jogadores. Algumas mudanças para melhora o aspecto in-game foram feitos como . Port Hope Demon OaK Quest Pitsof inferno Quest Task System Svargrond Por enquanto somente isso em breve teremos novas mudanças e melhorias para mais detalhes acesse nosso site www.softcores.net Equipe MitSuig - Administrado/Scripter Icaro - WebDesigner/Mapper Show Off1 ponto
-
mudar esse sistema de onThink para onTime
leandrozera reagiu a zipter98 por uma questão
local monsters = {"Demon", "Frost Dragon", "Hydra", "Dragon Lord", "Dragon"} local time_min, max = 25, 60 local premios, gold = {{2160, 10}, {2157, 5}}, 10000 function winMonsterEvent() local max_sto, winner = 0, 0 local monster = getGlobalStorageValue(1919211) for _, pid in pairs(getPlayersOnline()) do local sto = getPlayerStorageValue(pid, 1814210) if sto > max_sto then max_sto = sto winner = pid end end if isPlayer(winner) then local artigo = getPlayerSex(winner) == 0 and "A jogadora" or "O jogador" doBroadcastMessage(artigo.." "..getCreatureName(winner).." matou "..getPlayerStorageValue(winner, 1814210).." "..monster.."s e venceu o evento, parabens!") for _, prize in pairs(premios) do doPlayerAddItem(winner, prize[1], prize[2]) end doPlayerAddMoney(winner, gold) else doBroadcastMessage("O evento terminou e nao houve nenhum vencedor.") end setGlobalStorageValue(1919211, 0) end function onTime() local random = math.random(1, #monsters) local time = math.random(time_min, max) for _, pid in pairs(getPlayersOnline()) do doPlayerSetStorageValue(pid, 1814210, 0) end setGlobalStorageValue(1919211, monsters[random]) doBroadcastMessage("O evento comecou e vai durar "..time.." minuto. O monstro sorteado foi "..monsters[random].."! Quem matar mais deles ate o fim sera o vencedor!") addEvent(winMonsterEvent, time*1000*60) return true end Tags: <globalevent name="Evento1" time="13:00" event="script" value="nome_do_arquivo.lua"/> <globalevent name="Evento2" time="17:00" event="script" value="nome_do_arquivo.lua"/> <globalevent name="Evento3" time="23:00" event="script" value="nome_do_arquivo.lua"/>1 ponto -
[Encerrado]Nebula - Rei Johian
Administrador reagiu a Danihcv por um tópico no fórum
Como sempre ne... sauhsauhsahu Aposto que eu sou a fonte de inspiração destas obras... u.u1 ponto -
Action: local config = { reflectBonus = 2, --Bônus de reflect, em %. failChance = 50, --Chance de falhar, em porcentagem. types = {"armor", "legs", "helmet", "boots"}, noReflect = {1, 2, 3, 5, 6} --Tipos de armamento bloqueados (valores podem ser conferidos em 000-constant.lua, data/lib) } function onUse(cid, item, fromPos, itemEx, toPos) if itemEx.itemid < 100 then return doPlayerSendCancel(cid, "Use this in valid itens.") elseif isInArray(config.noReflect, getItemWeaponType(itemEx.uid)) then return doPlayerSendCancel(cid, "Use this in valid itens.") elseif getItemAttribute(itemEx.uid, "reflect") then return doPlayerSendCancel(cid, "This item has already a reflect bonus.") elseif math.random(1, 100) > config.failChance then return doPlayerSendTextMessage(cid, 27, "Sorry, your item didn't get a reflect bonus. Good luck at the next try! =]"), doRemoveItem(item.uid, 1) end local checkItemName for i = 1, #config.types do if getItemNameById(itemEx.itemid):find(config.types[i]) then checkItemName = true break end end if not checkItemName then return doPlayerSendCancel(cid, "Use this in valid itens.") end doPlayerSendTextMessage(cid, 27, "Congratulations, now your item has a reflect bonus of "..config.reflectBonus.."%!") doItemSetAttribute(itemEx.uid, "reflect", config.reflectBonus) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).." ref "..config.reflectBonus.."%") doRemoveItem(item.uid, 1) return true end Creaturescript (não se esqueça de registrar o evento em login.lua): function onStatsChange(cid, attacker, type, combat, value) if isPlayer(cid) and isCreature(attacker) and type == STATSCHANGE_HEALTHLOSS then local bonusReflect = 0 for i = 1, 10 do local item = getPlayerSlotItem(cid, i).uid if item > 0 and getItemAttribute(item, "reflect") then bonusReflect = bonusReflect + getItemAttribute(item, "reflect") end end if bonusReflect > 0 then local damage = value * bonusReflect / 100 doSendAnimatedText(getThingPos(attacker), -damage, COLOR_RED) doCreatureAddHealth(attacker, -damage) end end return true end1 ponto
-
[Encerrado]UntraxBR - A nova era. Junte-se a nos!
Lumus reagiu a SkyDangerous por um tópico no fórum
Algum mapa ai tu pegou lá no meu servidor da otland? hahah ficou muito foda o projeto, se tiver on eu vou dar uma jogada adoro 10.78 tao usando o tfs 1.2 ou 1.1?1 ponto -
[Encerrado]Nebula - Rei Johian
Administrador reagiu a FelipeXT por um tópico no fórum
Que lindo cara o seu mapa!, eu quero estas sprites no meu 7.92 ;/1 ponto -
1 ponto
-
Loteria
Bruninho Santos reagiu a SkyLigh por uma questão
http://www.xtibia.com/forum/topic/232949-tfs-04-new-lottery-system/1 ponto -
Lgv HosT ou ServerCore ?
Administrador reagiu a Tibira18 por uma questão
uso e recomendo ServerSoft.! estou a 5 meses com ela e ate hj nao tive problemas...1 ponto -
1 ponto
-
[Encerrado]SoftCores RPG Server 7.4
Qwizer reagiu a Administrador por um tópico no fórum
Aprovadíssimo. Ótimo projeto Mitsuig, como esperado vindo de você.1 ponto -
[Encerrado]UntraxBR - A nova era.
Lumus reagiu a Administrador por um tópico no fórum
Parabéns, seu projeto foi aprovado. Caso necessite da remoção deste tópico solicite à equipe. Espero que o projeto tenha futuro, estarei acompanhando.1 ponto -
Nova seção para Projetos OpenTibia
SkyLigh reagiu a Administrador por um tópico no fórum
Vou avaliar isso, obrigado pelo feedback ^^1 ponto -
Nova seção para Projetos OpenTibia
Administrador reagiu a Marco Oliveira por um tópico no fórum
Foi uma boa implementação no fórum que vai ajudar muito na organização. Agora só ficou faltando uma box prós tópicos fixos =). Nunca da pra saber se o tópico é fixo ou não pois ficam todos juntos hauahauaha1 ponto -
setPlayerStorageValue
DeCarvalho reagiu a zipter98 por uma questão
Tente esse e informe se alguma coisa é imprimida no console (1/2): local tpId = 1387 local tps = { ["Little Corym Charlatan"] = {pos = {x=414, y=91, z=11}, toPos = {x=409, y=93, z=11}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onKill(cid, target) print(1) local tp = tps[getCreatureName(target)] if isPlayer(cid) and isMonster(target) and tp then print(2) doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(target, "A teleport appeared near and will disappear in "..tp.time.." seconds.", TALKTYPE_ORANGE_1) doCreatureSay(target, "You have killed the disorder and proved be trustworthy", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, 21321, 1) addEvent(removeTp, tp.time*1000, tp) end return true end1 ponto -
setPlayerStorageValue
DeCarvalho reagiu a zipter98 por uma questão
Ah sim, esqueci de modificar o parâmetro. Bem lembrado. Sobre o uso de metamétodos e afins do TFS 1.x+, não adaptei pois, como o autor mesmo disse, o problema era só na storage.1 ponto -
setPlayerStorageValue
DeCarvalho reagiu a zipter98 por uma questão
Uma opção é converter o código para outro callback, como, por exemplo, onKill. local tpId = 1387 local tps = { ["Little Corym Charlatan"] = {pos = {x=414, y=91, z=11}, toPos = {x=409, y=93, z=11}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onKill(cid, target) local tp = tps[getCreatureName(target)] if isPlayer(cid) and isMonster(target) and tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(target, "A teleport appeared near and will disappear in "..tp.time.." seconds.", TALKTYPE_ORANGE_1) doCreatureSay(target, "You have killed the disorder and proved be trustworthy", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, 21321, 1) addEvent(removeTp, tp.time*1000, tp) end return true end É possível fazer por onStatsChange também.1 ponto -
Colocar restrições no teleporte
Bruninho Santos reagiu a SkyLigh por uma questão
function onSay(cid, words, param) if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendTextMessage(cid, 22, "Você precisa está sem batte para cê teleportado") return true end pos = {x=220, y=451, z=7} doSendMagicEffect(getPlayerPosition(cid),53) doPlayerSendCancel(cid,"Teleportado!") doTeleportThing(cid,pos) end Movido para seção de resolvidos.1 ponto -
Quase em avu ! Mandou bem ! Parabéns a todos que participaram, teve bastante gente nessa edição e-e Fico feliz de ter conseguido uma hahha1 ponto
-
data/creaturescripts/scripts local config = { name = "monster_name", --Nome do monstro. minDamage = 7000, --Dano mínimo para receber as recompensas. items = { prize = {itemid, count}, --{ID do item, quantidade} medal = xxx, --ID da medalha. }, storage = 91828, } function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and isMonster(cid) and getCreatureName(cid) == config.name and type == STATSCHANGE_HEALTHLOSS then local damage = getPlayerStorageValue(attacker, config.storage) < 1 and 0 or getPlayerStorageValue(attacker, config.storage) setPlayerStorageValue(attacker, config.storage, damage + value) end return true end function onDeath(cid, corpse, deathList) for _, pid in pairs(deathList) do local damage = getPlayerStorageValue(pid, config.storage) if damage >= config.minDamage then doPlayerSendTextMessage(pid, 27, "For helping killing "..config.name..", you received a medal and "..config.items.prize[2].."x "..getItemNameById(config.items.prize[1])..".") doPlayerAddItem(pid, config.items.prize[1], config.items.prize[2]) doItemSetAttribute(doPlayerAddItem(pid, config.items.medal, 1), "description", "Medalha de honra ganha por "..getCreatureName(pid).." por ajudar a derrotar o "..config.name.." no dia "..os.date("%D")..".") setPlayerStorageValue(pid, config.storage, -1) end end db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = "..config.storage) return true end Tags: <event type="statschange" name="mDamage" event="script" value="nome_do_arquivo.lua"/> <event type="death" name="mItems" event="script" value="nome_do_arquivo.lua"/> Em login.lua: registerCreatureEvent(cid, "mDamage") No arquivo .xml do monstro: <script> <event name="mItems"/> </script>1 ponto
-
É um comando normal que mostra uma lista de lugares disponíveis e teleporta para o local escolhido Crie teleportvip.lua em data/talkactions/scripts e coloque: Agora em data/talkactions/talkactions.xml coloque essa tag: <talkaction words="!teleport" script="teleportvip.lua"/>1 ponto