-
Eternera Tibia Server - RPG
Estamos elaborando um sistema de profissões totalmente único. A primeira profissão que já está em andamento é a profissão de criar pães, bolos, e afins. Cada profissão terá cinco níveis diferentes, e em cada nível o personagem vai tendo mais sabedoria para exercer sua profissão. Por exemplo: O personagem que cria pães, no nível 2, poderá criar pães com ingredientes diferentes, trazendo um sabor excepcional em suas receitas. Podendo então vender seus pães por um valor maior. O sistema está sendo elaborado, e prevemos que até dia 10/11/2017 já tenhamos algum funcionamento! #eternera #tibia #server #otserv #hardcore #profissões #profissão #rpg Saiba clicando aqui!
-
Eternera Tibia Server - RPG
As aranhas vivem em florestas e masmorras. Elas geralmente caçam animais pequenos, mas não se amedrontam diante de outros animais maiores do que elas. Quando as aranhas aparecem em bando, podem até se tornar um perigo para aventureiros mal equipados. Imagem de uma montanha localizada na ilha inicial. Acompanhe nosso desenvolvimento no facebook também. Prévia para um closed beta em Fevereiro de 2018! #eternera #tibia #server #rpg #hardcore #oldschool #nostalgia
-
[Promotion] NPC Não reconhece vocação
Estranho, testei aqui e funcionou. Qual servidor está usando?
-
-
[Promotion] NPC Não reconhece vocação
Fiz esse script para promotion de arqueiro. Teste: local msgHi = "Quer uma {promotion}?" local msgBye = "Ja vai?!" local msgDis = "Tchau!" local vocation = 3 -- ID da vocação local custo1 = 20000 -- Custo da primeira Promotion local vocation2 = 7 -- Primeira Promotion local custo2 = 40000 -- Custo da segunda Promotion local vocation3 = 9 -- Segunda Promotion local focuses = {} local function isFocused(cid) for i, v in pairs(focuses) do if(v == cid) then return true end end return false end local function addFocus(cid) if(not isFocused(cid)) then table.insert(focuses, cid) end end local function removeFocus(cid) for i, v in pairs(focuses) do if(v == cid) then table.remove(focuses, i) break end end end local function lookAtFocus() for i, v in pairs(focuses) do if(isPlayer(v)) then doNpcSetCreatureFocus(v) return end end doNpcSetCreatureFocus(0) end function onCreatureAppear(cid) end function onCreatureDisappear(cid) if(isFocused(cid)) then selfSay("Tchau ".. getPlayerName(cid) ..".") removeFocus(cid) if(isPlayer(cid)) then closeShopWindow(cid) end end end function onCreatureSay(cid, type, msg) if msg == "hi" or msg == "hello" and not isFocused(cid) then selfSay(msgHi, cid) addFocus(cid) elseif isFocused(cid) and msg == "promotion" or msg == "promote" then selfSay("Quer ser promovido? Ira te custar ".. custo1 .." moedas de ouro.", cid) promo = 1 elseif isFocused(cid) and msg == "yes" and promo == 1 then promo = 0 if getPlayerVocation(cid) == vocation then if getPlayerMoney(cid) >= custo1 then doPlayerRemoveMoney(cid, custo1) doPlayerSetVocation(cid, vocation2) selfSay("Parabens! Voce ainda pode receber {mais uma promotion}.", cid) else selfSay("Voce nao tem ".. custo1 ..".", cid) end else selfSay("Apenas arqueiros.", cid) end elseif isFocused(cid) and msg == "no" and promo == 1 then promo = 0 selfSay("Ok!", cid) elseif isFocused(cid) and msg == "mais uma promotion" then selfSay("Quer ser promovido novamente? Ira te custar ".. custo2 .." moedas de ouro.", cid) promo = 2 elseif isFocused(cid) and msg == "yes" and promo == 2 then promo = 0 if getPlayerVocation(cid) == vocation2 then if getPlayerMoney(cid) >= custo2 then doPlayerRemoveMoney(cid, custo2) doPlayerSetVocation(cid, vocation3) selfSay("Parabens!", cid) else selfSay("Voce nao tem ".. custo1 ..".", cid) end else selfSay("Apenas arqueiros.", cid) end elseif isFocused(cid) and msg == "no" and promo == 2 then promo = 0 selfSay("Ok!", cid) elseif((isFocused(cid)) and (msg == "bye" or msg == "tchau" or msg == "xau")) then selfSay(msgBye) closeShopWindow(cid) removeFocus(cid) end end function onPlayerCloseChannel(cid) if(isFocused(cid)) then selfSay("Humm.") closeShopWindow(cid) removeFocus(cid) end end function onThink() for i, focus in pairs(focuses) do if(not isCreature(focus)) then removeFocus(focus) else local distance = getDistanceTo(focus) or -1 if((distance > 4) or (distance == -1)) then doCreatureSay(getNpcCid(), msgDis, TALKTYPE_YELL) closeShopWindow(focus) removeFocus(focus) end end end lookAtFocus() end
-
(DÚVIDA) Alguém me poderia me ajudar
Posso ver as tags no movements.xml? E também gostaria de ver como está no items.xml.
-
Eternera Tibia Server - RPG
Etji Furgora, filha de Oroch Furgora. É a arqueira da vila Trekolt mais conhecida por saber de incontáveis lendas, aos 13 anos de idade já criava flechas com os melhores gravetos da floresta. Ela é responsável por criar e vender flechas, mas também tem um papel muito importante de prender ladrões atrás das grades de Trekolt, e claro, ela sempre partilha missões com os aventureiros. O sistema de comércio é único, sendo que os NPCs possuem quantidade limitada de itens para vender e também quantidade limitada de ouro para poder comprar itens dos jogadores. Cada NPC possui uma quantidade distinta de dinheiro, uns mais ricos, outros mais pobres... A cada server save, os NPCs voltam a ter equipamentos e dinheiro. Clique aqui e acompanhe o desenvolvimento do servidor!
-
- PUO - OPEN BETA COMEÇOU!
-
-
Eternera Tibia Server - RPG
Em desenvolvimento... Closed Beta previsto para Fevereiro. Eternera Tibia Server - RPG O servidor que 84,20% dos Tibianos estão esperando há muito tempo, segundo nossas pesquisas! O Eternera Tibia Server é um servidor de Tibia que dá ao jogador a oportunidade de aventurar-se nas maravilhosas terras do nosso misterioso mundo de fantasia, cheio de magia, beleza e muito enredo. O jogador começa em uma ilha inicial com vários propósitos ditados pelos NPCs. Durante sua jornada ele deve trabalhar para conseguir dinheiro, comida, e equipamentos para sobreviver. Alguns jogadores preferem trabalhar como pescadores, outros como fazendeiros, há aqueles que preferem seguir o lado sombrio do jogo, assaltando NPCs, matando outros jogadores, e criando armadilhas. Todos tem a opção de sair da ilha inicial após certa experiência dentro do jogo, podendo então escolher uma classe, seja ela druida, feiticeiro, arqueiro, ou, por fim, guerreiro. Cada classe tem suas habilidades distintas, e para adquirí-las deverá estudar com NPCs especialistas em habilidades, pagando uma quantia em moedas de ouro. A beleza do Eternera Tibia Server é porque ele está sendo desenvolvido por pessoas que vivenciaram o RPG da versão antiga de Tibia, fazendo os jogadores interagirem com as aventuras, se esforçarem para conseguir dinheiro, equipamentos, pontos de experiência, e desvendar incontáveis mistérios. Algumas informações úteis do Eternera Tibia Server
-
Saudades do RPG
Eu e meu irmão começamos com o projeto. Espero que dê certo... E para maior equilíbrio do gostos, as pessoas terão duas opções. Uma delas é upar a partir de missões, e a outra opção é upar a partir de caça aos monstros. O servidor será difícil, mas não tão demorado para as pessoas que não tem tempo. A versão escolhida para o projeto foi a 8.6
-
-
Saudades do RPG
Bom dia!... ou boa tarde, ou boa noite..Como comecei a jogar Tibia na época em que a versão era de 7.4 e parei depois da versão 9.x. Venho por meio dessa comunidade fazer uma pergunta para você, que possivelmente tem a mesma idade que eu tenho..A pergunta é sobre o RPG do Tibia, mais especificamente sobre um possível Open Tibia Server com muito enredo..Sei que assim como eu, a maioria dos jogadores de Tibia não tem tempo para ficar jogando, pois trabalham, estudam, namoram, etc..Mas, imagina só, um servidor com muito RPG, cuja dificuldade não seja em pegar level, claro, não seria tão simples, mas o principal objetivo seria o enredo do servidor. Assim, mesmo quem não tem tempo para ficar upando o personagem, poderá desfrutar do jogo. Evoluindo o personagem fazendo missões, exercendo profissões, participando de dungeons, abrindo baús, entre outras possibilidades..Se você é como eu, que sente saudades da época em que Tibia tinha RPG, então pode me fazer um favor? É para minha pesquisa..Eu criei um questionário com 2 simples perguntas, se puder responder eu ficarei extremamente grato por isso!Segue o link: https://pt.surveymonkey.com/r/63F7BQV
-
Procuro Membros Para Equipe
RPG; 24 anos; Tudo, exceto C++; Estou disponível de 1 a 2 horas por dia para não ficar exaustivo e o projeto render; Estou enviando essa mensagem porque minha ideia seria começar um projeto extremamente focado ao RPG, porém prefiro me juntar com outras pessoas à criar um projeto do início. Obs.: Tenho um servidor dedicado.
-
Ajuda nessa linha do script? apenas 1 linha
O problema não é o conhecimento, o problema é que trata-se de script de Pokemon, e isso ai não é o único script para solucionar teu problema. Tem funções que estão em bibliotecas, por exemplo esse ballCatch.
-
-
Ajuda nessa linha do script? apenas 1 linha
function mandar2Efeitos() ballcatch[item.itemid].on ballcatch[item.itemid].on2 end local ballcatch = { --id normal, id da ball shiy [2394] = {cr = 2, on = 193, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"}, --alterado v1.9 \/ [2391] = {cr = 6, on = 198, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"}, [2393] = {cr = 10, on = 202, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"}, [2392] = {cr = 15, on = 200, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"}, [12617] = {cr = 6, on = 204, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari", boost = "0"}, [12832] = {cr = 100000, on = 23, off = 24, ball = {12826, 12829}, send = 181, typeee = "dark", boost = "50"}, [15129] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "flash", boost = "50"}, } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!") end local name = string.lower(getItemNameById(item2.itemid)) name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") name = doCorrectPokemonName(name) local x = pokecatches[name] if not x then return true end local shinys = {"Shiny Mr. mime", "Shiny Altaria", "Shiny Swampert", "Shiny Weezing", "Shiny Flygon", "Shiny Rhyperior", "Shiny Blaziken", "Shiny Tangela", "Shiny Wailord", "Shiny Aggron", "Shiny Absol", "Shiny Lucario", "Shiny Metagross", "Shiny Yanmega", "Shiny Wobbuffet", "Shiny Scizor", "Shiny Slowking", "Shiny Alakazam", "Shiny Scyther", "Shiny Electivire", "Shiny Magmortar", "Shiny Salamence", "Shiny Magmar", "Shiny Mantine", "Shiny Gyarados", "Shiny Snorlax", "Shiny Onix", "Shiny Electabuzz", "Shiny Pidgeot", "Aerodactyl", "Ditto", "Shiny Gengar"} if item.itemid == 12832 and isInArray(shinys, name) then doPlayerSendCancel(cid, "Você não pode catar esse pokemon com a master ball!") return true end local storage = newpokedex[name].stoCatch if getPlayerStorageValue(cid, storage) == -1 or not string.find(getPlayerStorageValue(cid, storage), ";") then --alterado v1.9 setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0;, dark = 0;, flash = 0;") --alterado v1.9 end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end local newidd = isShinyName(name) and ballcatch[item.itemid].ball[2] or ballcatch[item.itemid].ball[1] --alterado v1.9 local typeee = ballcatch[item.itemid].typeee local boost = ballcatch[item.itemid].boost local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = mandar2Efeitos() catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 12617) <= 0 then --alterado v1.9 setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You spend all your saffari balls, good luck in the next time...") end addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end
-
Ajuda nessa linha do script? apenas 1 linha
local segundoEfeito = 500 -- Tempo que irá aparecer o segundo efeito. [500 = meio segundo] local ballcatch = { --id normal, id da ball shiy [2394] = {cr = 2, on = 193, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"}, --alterado v1.9 \/ [2391] = {cr = 6, on = 198, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"}, [2393] = {cr = 10, on = 202, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"}, [2392] = {cr = 15, on = 200, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"}, [12617] = {cr = 6, on = 204, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari", boost = "0"}, [12832] = {cr = 100000, on = 23, off = 24, ball = {12826, 12829}, send = 181, typeee = "dark", boost = "50"}, [15129] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "flash", boost = "50"}, } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!") end local name = string.lower(getItemNameById(item2.itemid)) name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") name = doCorrectPokemonName(name) local x = pokecatches[name] if not x then return true end local shinys = {"Shiny Mr. mime", "Shiny Altaria", "Shiny Swampert", "Shiny Weezing", "Shiny Flygon", "Shiny Rhyperior", "Shiny Blaziken", "Shiny Tangela", "Shiny Wailord", "Shiny Aggron", "Shiny Absol", "Shiny Lucario", "Shiny Metagross", "Shiny Yanmega", "Shiny Wobbuffet", "Shiny Scizor", "Shiny Slowking", "Shiny Alakazam", "Shiny Scyther", "Shiny Electivire", "Shiny Magmortar", "Shiny Salamence", "Shiny Magmar", "Shiny Mantine", "Shiny Gyarados", "Shiny Snorlax", "Shiny Onix", "Shiny Electabuzz", "Shiny Pidgeot", "Aerodactyl", "Ditto", "Shiny Gengar"} if item.itemid == 12832 and isInArray(shinys, name) then doPlayerSendCancel(cid, "Você não pode catar esse pokemon com a master ball!") return true end local storage = newpokedex[name].stoCatch if getPlayerStorageValue(cid, storage) == -1 or not string.find(getPlayerStorageValue(cid, storage), ";") then --alterado v1.9 setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0;, dark = 0;, flash = 0;") --alterado v1.9 end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end local newidd = isShinyName(name) and ballcatch[item.itemid].ball[2] or ballcatch[item.itemid].ball[1] --alterado v1.9 local typeee = ballcatch[item.itemid].typeee local boost = ballcatch[item.itemid].boost local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = function mandar2Efeitos(func) ballcatch[item.itemid].on return addEvent(ballcatch[item.itemid].on2, segundoEfeito) end catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 12617) <= 0 then --alterado v1.9 setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You spend all your saffari balls, good luck in the next time...") end addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end
-
Ajuda nessa linha do script? apenas 1 linha
local segundoEfeito = 500 -- Tempo que irá aparecer o segundo efeito. [500 = meio segundo] local ballcatch = { --id normal, id da ball shiy [2394] = {cr = 2, on = 193, off = 192, ball = {11826, 11737}, send = 47, typeee = "normal", boost = "0"}, --alterado v1.9 \/ [2391] = {cr = 6, on = 198, off = 197, ball = {11832, 11740}, send = 48, typeee = "great", boost = "0"}, [2393] = {cr = 10, on = 202, off = 201, ball = {11835, 11743}, send = 46, typeee = "super", boost = "0"}, [2392] = {cr = 15, on = 200, off = 199, ball = {11829, 11746}, send = 49, typeee = "ultra", boost = "0"}, [12617] = {cr = 6, on = 204, off = 203, ball = {10975, 12621}, send = 35, typeee = "saffari", boost = "0"}, [12832] = {cr = 100000, on = 23, off = 24, ball = {12826, 12829}, send = 181, typeee = "dark", boost = "50"}, [15129] = {cr = 100000, on = 23, on2 = 10, off = 24, ball = {12826, 12829}, send = 181, typeee = "flash", boost = "50"}, } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!") end local name = string.lower(getItemNameById(item2.itemid)) name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") name = doCorrectPokemonName(name) local x = pokecatches[name] if not x then return true end local shinys = {"Shiny Mr. mime", "Shiny Altaria", "Shiny Swampert", "Shiny Weezing", "Shiny Flygon", "Shiny Rhyperior", "Shiny Blaziken", "Shiny Tangela", "Shiny Wailord", "Shiny Aggron", "Shiny Absol", "Shiny Lucario", "Shiny Metagross", "Shiny Yanmega", "Shiny Wobbuffet", "Shiny Scizor", "Shiny Slowking", "Shiny Alakazam", "Shiny Scyther", "Shiny Electivire", "Shiny Magmortar", "Shiny Salamence", "Shiny Magmar", "Shiny Mantine", "Shiny Gyarados", "Shiny Snorlax", "Shiny Onix", "Shiny Electabuzz", "Shiny Pidgeot", "Aerodactyl", "Ditto", "Shiny Gengar"} if item.itemid == 12832 and isInArray(shinys, name) then doPlayerSendCancel(cid, "Você não pode catar esse pokemon com a master ball!") return true end local storage = newpokedex[name].stoCatch if getPlayerStorageValue(cid, storage) == -1 or not string.find(getPlayerStorageValue(cid, storage), ";") then --alterado v1.9 setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0, dark = 0;, dark = 0;, flash = 0;") --alterado v1.9 end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end local newidd = isShinyName(name) and ballcatch[item.itemid].ball[2] or ballcatch[item.itemid].ball[1] --alterado v1.9 local typeee = ballcatch[item.itemid].typeee local boost = ballcatch[item.itemid].boost local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = function mandar2Efeitos() ballcatch[item.itemid].on return addEvent(ballcatch[item.itemid].on2, segundoEfeito) end catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 12617) <= 0 then --alterado v1.9 setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You spend all your saffari balls, good luck in the next time...") end addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end