Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 08/03/15 em %
-
[TFS 1.2] Evento Jogos Vorazes (com mapa)
Nogueirovisk e 2 outros reagiu a DeCarvalho por um tópico no fórum
Bem bem bem bem.. venho trazer aqui um sistema/script seja la como quiser chamar que me chamou bema a tenção por ser bem interessante.. Feito pelo Karain (qual pedi autorização para repostar).. inicialmente havia sido feito para 0.4, inspirado num mini game para mc mas com a tendência de mudança e pedidos da comunidade o mesmo foi atualizado.. Não me peçam 0.4 pois ele não disponibilizou.. e bem.. atualizem-se né... eu não suporto 0.4 (para quem não entende, não suporto de não apóio) .~> Sobre o sistema - Como funciona <~. Primeiramente, se o jogador decidir se juntar a lista de espera do evento ele irá utilizar o comando !join hunger games e pronto.. estará na lista de espera. Depois de um tempo e quantidade de players para o evento (ambos configuráveis), assim que o evento começar eles serão teleportados para um local; terão todos seus items removidos de forma segura para um depot (configurável) Em cada mapa haverá chests que tem uma chance (random) de conter alguns items, o player precisa encontrar e coletar com intenção de sobreviver e ser o último player vivo. Premio configurável .~> Mapa<~. o mapa não foi feito pelo Karain, caso você seja dono do mapa e tenha como provar, por favor informe para que seu nome seja colocado nos créditos Download Do Mapa Aqui P.s.: não sei colocar scan nem como faz, se for preciso scan alguém faz por favor que eu edito o post Bug conhecido (mas acho que para server que não fique reiniciando isso não venha a ser um problema..) não testei essa parte para ver o que realmente ocorre.. // [edit]Código para correção do bug (não oficial) após o hunger.lua do global events[/edit] - alguns items podem não retornar ao player após o evento, mesmo que tenha sido carregado no mapa e nos scripts, no entanto, irá funcionar se o player tiver visitado o depot ao menos uma vez, em que o server ficou online Changelog 1.0.0 23 de julho 2015 : Liberado 1.0.1 29 de julho 2015 : Arrumado a atualziaçãod e items no chest após um player o abrir. 1.0.2 30 de julho 2015 : -Corrigido um erro fatal que acontecia quando um player morria ou dava logout enquanto no evento. -Adicionado o comando !ragequit que faz o jogador se matar enquanto no evento. 1.0.3 8 de agosto 2015: Corrigido bug que fazia o evento death ser executado em qualquer situação pvp, arquivos alterados: - creaturescripts/scripts/hunger.lua 1.0.4 9 de agosto 2015: Corrigido um debug no client por conta de broadcasts, obrigado ao silveralol, arquivos alterados: -globalevents/scripts/hunger.lua -creaturescripts/scripts/hunger.lua -creaturescripts/scripts/eventlogout.lua 1.0.5 30 de agosto 2015 (não oficial): Adicionado uma alteração para o problema de recuperação de items -globalevents/scripts/hunger.lua .~> Códigos <~. Em globalevents/globalevents.xml <globalevent type="startup" name="hunger" script="hunger.lua"/> Crie um arquivo chamado hunger.lua em globalevents/scripts e cole isso Em 30/08 o usuário Mokerhamer apareceu com uma solução para o problema que fazia com que alguns players não conseguissem recuperar os items após o evento, adicionando uma função clone, então funciona abrindo ou não o dp antes do evento.. estou sem pc novamente então não pude testar e o Karain até o momento não se pronunciou, de qualquer maneira parece promissor então vou colocar aparte. alterem por conta e risco. Altere a função player:getbackitems do código acima por este Em creaturescripts/creaturescripts.xml <event type="logout" name="eventlogout" script="eventlogout.lua"/> <event type="death" name="hunger" script="hunger.lua"/> Em creaturescripts/scripts/login.lua antes do return true player:registerEvent("hunger") Em creaturescripts/scripts/eventlogout.lua Em creaturescripts/scripts/hunger.lua Em talkactions/talkactions.xml <talkaction words="!join" separator=" " script="join.lua"/> <talkaction words="!ragequit" separator=" " script="leave.lua"/> Em talkactions/scripts/join.lua Em talkactions/scripts/leave.lua Em actions/actions.xml <!-- Hunger Games Chests --> <action fromaid="60101" toaid="60499" script="games/hunger.lua"/> <action fromaid="61101" toaid="61499" script="games/hunger.lua"/> <action fromaid="62101" toaid="62499" script="games/hunger.lua"/> Em actions/scripts/hunger.lua Curtiu da um rep ae né.. não arranca pedaço da mão e incentiva a trazer mais.. se você for sovina e n gostar de dar rep, ao menos um obrigado ja ta bom.. pelo menos mostra que esta valendo a pena ficar procurando sistemas maneiros para trazer, pedir autorização e traduzir as informações... [edit] para evitar problemas façam testes antes, fui informado por pm que as vezes mesmo indo ao dp antes alguns items ainda não retornam.. eu fiz um teste básico no sistema e não tive esse problema.. mas é melhor prevenir, por isso antes de colocar o sistema on no seu server façam stress test .Certamente o Karain esta tentando resolver mas mesmo assim eu fiz um post no seu tópico perguntando sobre informações mais detalhadas sobre e se esta sendo feito algo [edit 08/08] Alteração no script - vide Changelog [edit 09/08] Alteração no script - vide Changelog [edit 30/08] Alteração para o script - vide Changelog3 pontos -
Salve Tibianos de todo o Brasil e partes do mundo! Por meio deste tópico venho lhes apresentar o projeto UntraxBR! Começando por algo que todos nós jogadores gostamos. Eventos. Correto? Nosso servidor contará com diversos eventos, dentre eles: Bomberman; Caça ao monstro; Battlefield; O Último Sobrevivente; Dice Kill. São todos eventos automáticos que acontecem durante os dias da semana, com exceção do Caça ao Monstro que pode ocorrer a qualquer dia/hora. Resumo dos eventos: Bomberman Neste evento, seu principal objetivo é explodir seus adversários e evitar ser eliminado do jogo. Através de um comando, você coloca uma bomba no local em que seu personagem está e aguarda até que ela exploda, mas esteja atento, se ela explodir em você, você perderá o evento! Somente um jogador será o vencedor e levará a premiação. Caça ao monstro Em algum momento do jogo este evento será iniciado. Ao ser iniciado é feito um sorteio de alguma criatura do jogo para que seja caçada. O prazo de duração é aleatório porém dentro de 15min - 1hr. Qualquer tempo dentro deste intervalo é válido. O evento é parado automaticamente no fim do tempo, e o jogador que tiver matado mais do monstro escolhido será o vencedor. O monstro escolhido é o mesmo para todos os jogadores online. Battlefield Um evento bastante conhecido que consiste em: ao iniciar o evento, são pré-selecionadas duas equipes(preta e vermelha) as equipes são dividias aleatoriamente e por igual. Se em um time tiver 20 pretos, no vermelho também terá 20. O evento consiste em matar, quem matar o último jogador do time adversário, o time inteiro sairá vencedor. Ao contrário do Último Sobrevivente, este evento é em equipe e toda a ajuda e estratégia é fundamental. O último Sobrevivente Este evento o principal objetivo é sobreviver. Evite morrer. Todos tentarão te matar, e você tentará matar todos. Somente 1 será o vencedor, não mais que isso. Planeje sua estratégia, chame seus amigos e o melhor vencerá. Neste evento, não existe aliados, todos são inimigos de todos, o principal objetivo é matar! Dicekill Um evento para que gosta de testar a sorte! Neste evento o que manda é sua sorte, quanto menor o número, maior a força do monstro. Quanto maior o número, menor será a força dele! Torça para tirar o número 6 porque se tirar o 1, será morte na certa! Mapa: Nosso mapa contará com diversas hun'ts; Novas cidades; Novas ilhas. Quests: Poi - remake próprio; Inqui - remake próprio; Anihi - remake próprio; Paradox(modificada); Helmet of the ancients(modificada); Diversas quests espalhadas pelo mapa; Quests próprias com suas dificuldades e mistérios. Monstros: Monstros do tibia global e monstros novos. Imagens Missões com RPG. Nova quest Nova quest 2. Novas caves/monstros. Nova ilha Templo com NPC para ajuda. Novos monstros. Explore as montanhas. Novas hunts. Divisão evento Battlefield. Diferencial Teremos em nosso servidor 1 nova vocação, com seus prós e contras, totalmente balanceada. Nosso servidor será um servidor custom voltado ao global. Mas como assim ? Simples: Um mapa totalmente custom, com danos, vocações e outros parecidos com o global. Teremos itens próprios(não teremos frescuras de set's vip). Roupas serão adquiridas através da coleta dos itens, e cada uma dará seu bônus. Ex.: mage full dará +1 ml. Cada montaria terá sua vantagem e desvantagem, seja onde estiver. Equipe Uma boa parte do servidor já está pronta, porém para que tudo seja concluído com êxito necessitamos de uma equipe! Se você se interessou por tudo que foi dito acima não perca tempo, envie este formulário para o nosso e-mail e aguarde uma resposta de nossa equipe! Nosso e-mail: contato @ untraxbr.com.br (sem espaços, o Xt está bugando.) Há vagas em nossa equipe para: Mapper, scripter, rpg makker, tutor, webdesigner e moderador(site e fórum). Nome completo: Idade: Data de nascimento: Localização: Meus trabalhos: Skype/whatsapp: Vaga pretendida: Por que devo ser o escolhido para participar desta equipe: Aproveite e passe na nossa página do Facebook e dê uma curtidazinha para nos ajudar!2 pontos
-
Pack extensions 9.60
BahamutxD2 e um outro reagiu a Administrador por um tópico no fórum
Bom galera esse é um Pack para quem ta querendo editar seus mapas 9.60, com ele você poderá fazer isso com um pouco mais de facilidade. Lembrando todos créditos a: Alvanea e quem for postar em outro logar por os devidos créditos ao altor do tópico original! More pictures1, 2, 3. 1. Primeiro de tudo instalar o RME 2.2 para tibia 9.6(download) e Tibia 9.6. 2. Abra o RME, em: file/preferences/Client Version onde ta Version 9.60 Search Patch mude para o client 9.60, baixe-o aqui: Click 3. Desmarque a opção "Check File Signatures" de ok e feche o rme. 4. Baixe o Pack, link esta no logo abaixo. 5. Em seu Computador axe a pasta AppData/Roaming dentro da pasta Roaming delete a pasta extensions (se ela não estiver la não tem portância não delete nada). 6. Copie a pasta "extensions" que ta no pack e bote na pasta Roaming 7. Axe a pasta do seu rme entre na pasta data e dentro dela delete a pasta 960. 8. Agora copie a pasta 9.60 que esta no Pack (link logo abaixo) e bote dentro da pasta data do seu rme. 9. Abra o RME 10. Aproveite seu rme! Version: v1 Download Speedyshare:Click Download Uploading.com:Click Version: v1.1 Download Speedyshare:Click Scan: Click Espero que façam bom uso. Todos os créditos a: Alvanea2 pontos -
BattleField TFS 1.1+
Administrador reagiu a Vodkart por um tópico no fórum
Informações: Repassei esse sistema: http://www.xtibia.com/forum/topic/192920-battlefield-event/page-1 para a nova versão Versão: TFS 1.1 ou SUPERIOR(NÃO FUNCIONA NO TFS 1.0) OBS: Favor ter noções básicas de como instalar o sistema no seu server. Instalando o Sistema: data\creaturescripts\scripts battlefield.lua function onLogin(player) player:registerEvent("battledeath") if Game.getStorageValue(_Lib_Battle_Info.TeamOne.storage) == -1 then Game.setStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) Game.setStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) Game.setStorageValue(_Lib_Battle_Info.storage_count, 0) end if player:getStorageValue(_Lib_Battle_Info.TeamOne.storage) >= 1 or player:getStorageValue(_Lib_Battle_Info.TeamTwo.storage) >= 1 then player:setStorageValue(_Lib_Battle_Info.TeamOne.storage, -1) player:setStorageValue(_Lib_Battle_Info.TeamTwo.storage, -1) player:teleportTo(player:getTown():getTemplePosition()) end return true end function onPrepareDeath(creature, lastHitKiller, mostDamageKiller) if creature:isPlayer() and creature:getStorageValue(_Lib_Battle_Info.TeamOne.storage) >= 1 or creature:getStorageValue(_Lib_Battle_Info.TeamTwo.storage) >= 1 then local MyTeam = creature:getStorageValue(_Lib_Battle_Info.TeamOne.storage) >= 1 and _Lib_Battle_Info.TeamOne.storage or _Lib_Battle_Info.TeamTwo.storage local EnemyTeam = creature:getStorageValue(_Lib_Battle_Info.TeamOne.storage) >= 1 and _Lib_Battle_Info.TeamTwo.storage or _Lib_Battle_Info.TeamOne.storage Game.setStorageValue(MyTeam, (Game.getStorageValue(MyTeam)-1)) creature:sendTextMessage(MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") creature:setStorageValue(MyTeam, -1) creature:removeCondition(CONDITION_OUTFIT) if Game.getStorageValue(MyTeam) == 0 then getWinnersBattle(EnemyTeam) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..Game.getStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..Game.getStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end end return true end creaturescript.xml <event type="login" name="battleflogin" script="battlefield.lua"/> <event type="preparedeath" name="battledeath" script="battlefield.lua"/> -------------------------------------------//------------------------------------------------- data\events\scripts abra o arquivo creature.lua e troque: function Creature:onTargetCombat(target) return true end por function Creature:onTargetCombat(target) if not self then return true end if self:isPlayer() and target:isPlayer() then if self:getStorageValue(_Lib_Battle_Info.TeamOne.storage) >= 1 and target:getStorageValue(_Lib_Battle_Info.TeamOne.storage) >= 1 or self:getStorageValue(_Lib_Battle_Info.TeamTwo.storage) >= 1 and target:getStorageValue(_Lib_Battle_Info.TeamTwo.storage) >= 1 then return RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER end end return true end events.xml Troque: <event class="Creature" method="onTargetCombat" enabled="0" /> por <event class="Creature" method="onTargetCombat" enabled="1" /> -------------------------------------------//------------------------------------------------- data\globalevents\scripts battlefieldstart.lua function onStartup() Game.setStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) Game.setStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) Game.setStorageValue(_Lib_Battle_Info.storage_count, 0) return true end battlefieldthink.lua _Lib_Battle_Days = { ["Tuesday"] = { ["16:00"] = {players = 30}, ["15:32"] = {players = 2} }, ["Wednesday"] = { ["23:06"] = {players = 2} }, ["Thursday"] = { ["11:26"] = {players = 4}, ["20:30"] = {players = 10} } } function onThink(interval) if _Lib_Battle_Days[os.date("%A")] then hours = tostring(os.date("%X")):sub(1, 5) tb = _Lib_Battle_Days[os.date("%A")][hours] if tb and (tb.players % 2 == 0) then local tp = Game.createItem(1387, 1, _Lib_Battle_Info.tpPos) tp:setActionId(45000) CheckEvent(_Lib_Battle_Info.limit_Time) Game.setStorageValue(_Lib_Battle_Info.storage_count, tb.players) broadcastMessage("The event BattleField was opened and We are waiting "..tb.players.." Players! Team divided into "..((tb.players)/2).." VS "..((tb.players)/2)) end end return true end globalevents.xml <globalevent type="startup" name="NoBugBattle" script="battlefieldstart.lua"/> <globalevent interval="60000" name="BattleField" script="battlefieldthink.lua"/> -------------------------------------------//------------------------------------------------- data\lib\core battlefield.lua _Lib_Battle_Info = { Reward = { exp = {true, 100}, items = {true, 2160, 10}, premium_days = {false, 1} }, TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=95,y=113,z=7}}, TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=100,y=116,z=7}}, storage_count = 180400, tpPos = {x=92, y=116, z=7}, limit_Time = 2 -- em minutos } function resetBattle() Game.setStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) Game.setStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) end function doBroadCastBattle(type, msg) for _, cid in pairs(Game.getPlayers()) do if Player(cid):getStorageValue(_Lib_Battle_Info.TeamOne.storage) == 1 or Player(cid):getStorageValue(_Lib_Battle_Info.TeamTwo.storage) == 1 then Player(cid):sendTextMessage(type, msg) end end end function getWinnersBattle(storage) local str, c = "" , 0 for _, cid in pairs(Game.getPlayers()) do local player = Player(cid) if player:getStorageValue(storage) >= 1 then if _Lib_Battle_Info.Reward.exp[1] == true then player:addExperience(_Lib_Battle_Info.Reward.exp[2]) end if _Lib_Battle_Info.Reward.items[1] == true then player:addItem(_Lib_Battle_Info.Reward.items[2], _Lib_Battle_Info.Reward.items[3]) end if _Lib_Battle_Info.Reward.premium_days[1] == true then player:addPremiumDays(_Lib_Battle_Info.Reward.premium_days[2]) end player:teleportTo(player:getTown():getTemplePosition()) player:setStorageValue(storage, -1) player:removeCondition(CONDITION_OUTFIT) c = c+1 end end str = str .. ""..c.." Player"..(c > 1 and "s" or "").." from team "..(Game.getStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." won the event battlefield!" resetBattle() OpenWallBattle() return broadcastMessage(str) end function OpenWallBattle() local B = { {1543,{x=96, y=124, z=7, stackpos = 1}}, {1543,{x=95, y=124, z=7, stackpos = 1}} } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then doCreateItem(B[i][1], 1, B[i][2]) else doRemoveItem(getThingfromPos(B[i][2]).uid,1) end end end function removeBattleTp() local t = getTileItemById(_Lib_Battle_Info.tpPos, 1387).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF) end function CheckEvent(delay) if delay > 0 and Game.getStorageValue(_Lib_Battle_Info.storage_count) > 0 then broadcastMessage("[BattleField Event] We are waiting "..Game.getStorageValue(_Lib_Battle_Info.storage_count).." players to Battlefield starts") elseif delay == 0 and Game.getStorageValue(_Lib_Battle_Info.storage_count) > 0 then for _, cid in pairs(Game.getPlayers()) do local player = Player(cid) if player:getStorageValue(_Lib_Battle_Info.TeamOne.storage) == 1 or player:getStorageValue(_Lib_Battle_Info.TeamTwo.storage) == 1 then player:teleportTo(player:getTown():getTemplePosition()) player:setStorageValue(_Lib_Battle_Info.TeamOne.storage, -1) player:setStorageValue(_Lib_Battle_Info.TeamTwo.storage, -1) player:removeCondition(CONDITION_OUTFIT) end end broadcastMessage("The event cannot be started because not had enough players.") Game.setStorageValue(_Lib_Battle_Info.storage_count, 0) resetBattle() removeBattleTp() end addEvent(CheckEvent, 60000, delay-1) end Na mesma pasta procure por data\lib\core.lua e adc essa linha: dofile('data/lib/core/battlefield.lua') -------------------------------------------//------------------------------------------------- data\movements\scripts battlefield.lua local conditionRed = Condition(CONDITION_OUTFIT) conditionRed:setTicks(120 * 60 * 1000) conditionRed:setOutfit({lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) local conditionBlack = Condition(CONDITION_OUTFIT) conditionBlack:setTicks(120 * 60 * 1000) conditionBlack:setOutfit({lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if player == nil then return false end if player:getGroup():getId() >= 3 then return player:teleportTo(_Lib_Battle_Info.TeamOne.pos) end if Game.getStorageValue(_Lib_Battle_Info.storage_count) > 0 then local getMyTeam = Game.getStorageValue(_Lib_Battle_Info.TeamOne.storage) < Game.getStorageValue(_Lib_Battle_Info.TeamTwo.storage) and {_Lib_Battle_Info.TeamOne.storage,_Lib_Battle_Info.TeamOne.pos,_Lib_Battle_Info.TeamOne.name,conditionBlack} or {_Lib_Battle_Info.TeamTwo.storage,_Lib_Battle_Info.TeamTwo.pos, _Lib_Battle_Info.TeamTwo.name, conditionRed} player:addCondition(getMyTeam[4]) player:setStorageValue(getMyTeam[1], 1) Game.setStorageValue(getMyTeam[1], Game.getStorageValue(getMyTeam[1])+1) player:teleportTo(getMyTeam[2]) player:sendTextMessage(MESSAGE_INFO_DESCR, "You will join the team " .. getMyTeam[3] .. "!") Game.setStorageValue(_Lib_Battle_Info.storage_count, Game.getStorageValue(_Lib_Battle_Info.storage_count)-1) end if Game.getStorageValue(_Lib_Battle_Info.storage_count) == 0 then removeBattleTp() broadcastMessage("Battlefield will start in 2 minutes, please create your strategy!") addEvent(broadcastMessage, 2*60*1000-500, "BattleField will begin now!") addEvent(OpenWallBattle, 2*60*1000) end return true end movements.xml <movevent event="StepIn" actionid="45000" script="battlefield.lua"/> -------------------------------------------//------------------------------------------------- Configurações do TIME: em data\lib\core\battlefield.lua tem essas linhas: _Lib_Battle_Info = { Reward = { exp = {true, 100}, items = {true, 2160, 10}, premium_days = {false, 1} }, TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=95,y=113,z=7}}, TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=100,y=116,z=7}}, storage_count = 180400, tpPos = {x=92, y=116, z=7}, limit_Time = 10 -- em minutos } exp = {true,100} -- se vai receber exp ao ganhar evento? true ou false e quantidade items = {true, 2160, 10} -- se vai receber items ao ganhar o evento, true ou false e id, quantidade do item premium_days = {false, 1} -- se vai receber premium days ao ganhar o evento, true ou false e quantidade TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=95,y=113,z=7}}, TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=100,y=116,z=7}}, Name = nome do time Storage = Não mexa Pos = Onde cada time vai nascer storage_count = 180400 -- NÃO MEXAR tpPos = {x=92, y=116, z=7} -- Onde o teleporte irá aparecer ao iniciar o evento limit_Time = 10 -- É o tempo limite para os jogadores entrarem no teleport.(em minutos) Configurar Datas dos Eventos: Em data\globalevents\scripts\battlefieldthink.lua vai ter essa tabela: _Lib_Battle_Days = { ["Tuesday"] = { ["16:00"] = {players = 30}, ["15:32"] = {players = 2} }, ["Wednesday"] = { ["23:06"] = {players = 2} }, ["Thursday"] = { ["11:26"] = {players = 4}, ["20:30"] = {players = 10} } } ["DIA DA SEMANA"] = { ["HORARIO"] = {players = QUANTOS JOGADORES IRÃO PARTICIPAR} Regra: Sempre coloque números pares para os jogadores, do contrário o evento não irá iniciar.1 ponto -
[Pokemon Open-Source] Pokemon Ex 3.0
heramano reagiu a Gabrieltxu por um tópico no fórum
Conteudo Retirado.1 ponto -
Bom, essa é minha primeira edição. Espero que gostem. Servidor Base: Styller Yourots 8.60 Rev 04 (0.7.5) INFORMAÇÕES: - Visual da cidade principal modificado. - Foi diminuido o exausted das spells. - Modificado a vida e a força dos bosses. Entre eles o Ferumbras, Morgaroth Ghazbaran, Hellgorak, Ushuriel, Anihillion, Zugurosh e etc... - Os drops estão exatamente como o global. Chega daqueles loots todos iguais toda vez que mata um monstro. - Itens da inquisition quest melhorados para uma melhor jogabilidade. 16:48 You see a fireborn giant armor (Arm:15, club fighting +25, sword fighting +25, axe fighting +25, protection fire +15%, ice -15%). It can only be wielded properly by knights of level 250 or higher. 16:48 You see a spellbook of dark mysteries (Def:16, magic level +28). It can only be wielded properly by sorcerers and druids of level 250 or higher. 16:48 You see a master archer's armor (Arm:15, distance fighting +35). It can only be wielded properly by paladins of level 250 or higher. 16:48 You see a robe of the underworld (Arm:12, protection holy -45%, death +45%). It can only be wielded properly by sorcerers of level 250 or higher. 16:48 You see an obsidian truncheon (Atk:70, Def:30 +2). It can only be wielded properly by players of level 250 or higher. 16:48 You see an emerald sword (Atk:69, Def:33 +3). It can only be wielded properly by players of level 250 or higher. 16:48 You see a hellforged axe (Atk:71, Def:28 +2). It can only be wielded properly by players of level 250 or higher. 16:48 You see a royal crossbow (Range:6, Atk +20, Hit% +10). It can only be wielded properly by paladins of level 250 or higher. 16:48 You see a warsinger bow (Range:8, Atk +15, Hit% +20). It can only be wielded properly by paladins of level 250 or higher. - Area vip reformulada. Tem um pedaço que fica a rigor do administrador contruir. - Area de teleporte reformulada. - Foi tirado alguns bugs no mapa. - Soft boots, ring of healing e life ring com tempo dobrado. - E muito mais. ALGUMAS IMAGENS. Depot - http://uploaddeimage...ns/depot-jpg--2 Entrada da Hunt Vip - http://uploaddeimage...ns/hunt_vip-jpg Area dos TPs - http://uploaddeimage.../teleport_1-jpg Area dos TPs - http://uploaddeimage.../teleport_2-jpg Area dos TPs - http://uploaddeimage.../teleport_3-jpg Area dos TPs - http://uploaddeimage.../teleport_4-jpg Templo - http://uploaddeimage...gens/templo-jpg DROPS DOS MONSTROS VIP. 16:25 Loot of a vip demon: a red backpack, a gold ingot, a teddy bear, an ultimate health potion, a demon shield, a blue gem, a crystal necklace, a crystal ring, a silver amulet, boots of haste, a dragon hammer, golden legs, an orb, a devil helmet, a platinum amulet, a great spirit potion, 2 small diamonds, 2 talons, a death ring, 2 small emeralds, a crystal ball, a might ring, a demon horn, demonic essence, 3 crystal coins. 16:27 Loot of a vip warlock: a red backpack, a mind stone, a royal helmet, an iron ore, 15 brown mushrooms, demonic essence, a giant sword, a life crystal, a scimitar, a thaian sword, 3 hardened bones, a great spirit potion, a spike sword, an orb, a crimson sword, a great mana potion, a gold ingot, a voodoo skull, a warrior helmet, 2 crystal coins, a great health potion, 10 demon horns, a skull helmet, a rusty armor, an ultimate health potion, a fire sword. DOWNLOADS E SCANS. Download do servidor sem dll's e sem distro: http://www.4shared.c...Sem_Dlls_e.html Scan: https://www.virustot...sis/1411067172/ Download das dll's e do distro: http://www.4shared.c...s_e_Distro.html Scan: https://www.virustot...25c57/analysis/ - Creditos: A equipe do Yurots pela base, a equipe do Styller pela contribuição na edição e ao @@nathan352.1 ponto
-
O que dizer do Windows10
Marco Oliveira reagiu a Francisco Souza por uma questão
Hoje atualizei meu Windows para o tão esperado Windows 10! E resolvi fazer esse tópico para informar como está o OS para quem esta querendo atualizar e está com medo da presença de Bugs, Glits que as vezes resolvem aparecer nos lançamentos de alguns OS, e tenho bastantes notícias boas para vocês! Na minha longa navegada pelo novo sistema operacional da Microsoft, consegui tirar várias conclusões incríveis sobre o Windows 10. Para quem gosta de navegar rapidamente pelo computador, esse sistema operacional veio bem a calhar, conta com uma velocidade e facilidade de navegação incrível, quando vi os comentários sobre isso pensei que seria como os outros Windows que prometiam a mesma coisa, facilidade na navegação, mas esse Windows 10 realmente trouxe isso, é simplesmente fantástico! Isso mesmo, o Menu Inicial voltou, bem mais bonito e confortável de se usar, com ferramentas importantes ao seu dispor logo ao abri-lo! Quando falei que era muito fácil e prático de se navegar nesse Sistema Operacional, não estava brincado, o Windows Explorer que agora recebe o nome de "Explorador de Arquivos" te dá algumas novas funções, como a aba "Acesso rápido" onde contém Pastas que você utiliza constantemente ou abriu recentemente, facilitando bastante a navegação para aqueles apressadinhos rsrs, sem contar a área de "Arquivos recentes" que mostra os arquivos que você abriu recentemente e se quiser usa-lo novamente eles estará lá para facilitar a sua vida (Creio que irá ajudar bastante quem está desenvolvendo um OT Server) Microsoft Edge, o novo Navegador do Windows, para quem odiava o Internet Explorer, vai amar o Microsoft Edge. Com uma facilidade de navegação e rapidez, o Edge trouxe um design incrível que pode ser alterado para esse mais claro da ScreenShot, ou um mais escuro, basta alterar nas preferencias do navegador. Ele utiliza como Gerador de Pesquisas o Bing. Bem gente, essa foi minha análise do Windows 10, espero que tenha esclarecido as duvidas de alguém, se ainda tiverem duvidas comentem em baixo, e vale ressaltar, até agora eu não vi nem recebi notícias de NENHUM bug ou glit dentro do Sistema Operacional. Até a próxima, Abraços! Obrigado Tio BILL <31 ponto -
Modern AAC por Avuenja V0.2
Fernandesops reagiu a Avuenja por um tópico no fórum
Kon'nichiwa pessoal! Estou de volta é depois de um dia já tem uma atualização! Mais um conteúdo exclusivo XTibia.com Bom arrumei muita coisa bugada! Então vamos as Informações ou Chagelogs... Informações: v0.1 Arrumado algumas páginas Layout modificado Bootstrap inserido Traduzido algumas partes do front end Mais leve Contém psd do topo v0.2 Páginas melhoradas Traduzido 85% da front end System Guild Fixed implantado NO ERROS System Shop Fixed implato NO ERROS Bugs encontrados retirados Melhorado quase 80% a mais do que na v0.1 Bom ta melhorando aos poucos galera... Qualquer sugestão ou bug só reportar aqui mesmo, é que as vezes não lembro de tudo então... Imagens: Download: modernv0.2 Scan: modernv0.2 Créditos: Modern AAC Team Avuenja1 ponto -
Remere's Map Editor 7.0 - 10.80
Silveira Crtba reagiu a Administrador por um tópico no fórum
Changelog Versão 10.76 adicionada (NOVO) Suporte para versões 10.10+ Live casts Ultima versão do github Informações Precisa do Microsoft Visual C++ 2013 - 32/64Bits: Redistributable Package Não tem suporte para Windows Xp VERSÃO ATÉ 10.80 ! Versão até 10.71 rev 151 + modificações Versão até 10.55 rev 142 + modificações1 ponto -
O que estão achando do novo patch 10.80?
Administrador reagiu a Piabeta Kun por um tópico no fórum
Eu queria saber de vocês que ainda jogam o tibia global o que estão achando do novo pacth. Não deixe de expressar sua opnião. O que você achou legal, o que acha que ficou ruim, ou o que podia mudar? Let's rock!1 ponto -
[TFS1.2]Mover Parede/Pedra/Estatua
Administrador reagiu a DeCarvalho por uma questão
Bem, não é novidade que não manjo dos paranauê.. sei fazer/alterar o básico para alguma necessidade minha, enfim.. vi por ai diversos scripts sobre isso, mas antigos.. nenhum que me sirva então gostaria de saber se alguma alma caridosa poderia fazer/disponibilizar/atualizar para mim um script configurável assim ... .~> Como irá funcionar.. Inicialmente quero aplicar a essa area.. Gostaria de que quando o player (caso tenha completado uma quest ou qualquer coisa que libere uma storage qualquer), poderia remover a barra de ferro que esta trancando a passagem.. A ideia do basin é 'cobrar pedágio', o player que tem a quest feita, ficaria parado no sqm acima ou abaixo do basin , colocaria um item (configurável) no basin e a grade desapareceria por um tempo configurável. Creio que ao abrir um lado seria interessante adicionar uma storage que seria verificada na próxima tile, para evitar engraçadinhos, caso um player sem storage passe a barra aparece novamente na mesma hora... e indo de [1] para [2], funcionaria da mesma maneira, visto que ao pisar no tile [2] ele não teria a storage correta e a barra se fecharia logo atras. caso haja um player que completou a quest/matou certo monstro esteja parado acima/abaixo do basin mas um que não o fez esteja na tile da frente, logo na grade, seria enviada uma msg avisando que a grade não pode ser aberta.. E para evitar gente sacaneando ele também teleportaria o/os player/s ali para um local configurável, caso tenha 2 players no mesmo sqm acima/abaixo do basin ele teleportaria o que não tem a storage da quest.. gostaria que o item usado em cada basin possa ser configurado de forma independente.., ex usar uma white pearl para ir e uma black pearl para voltar.. Acho que é bem complexo, mas ficaria muito grato se alguém fizesse.. um bonus seria quem fizer 'ensinar' como fazer para alterar o script caso eu queira usar em outro lugar de outra forma.. tipo puxando um lever para remover uma pedra que iria reaparecer novamente depois de um tempo..1 ponto -
Extensions 10.31
deletera reagiu a Administrador por um tópico no fórum
Versão: 10.31 Conteúdo do Tutorial: Edição mais completa de extensions para 10.31 com atualização na terrain palette e doodads. Ferramentas necessárias: Map editor 10.31 Tibia .dat 10.31 Extensões (Auto-Border): Relativo. Créditos dos scripts: Daaniel (Exclusivo Tibia King) Conhecendo Seu editor O RME (Remeres Map Editor) permite editar facilmente extensões disponibilizadas conforme a versão do Tibia, reconheça que você irá modificar partes importantes para o funcionamento do editor, portanto é de suma importância a realização de um backup antes de iniciar o processo. Modificações Scripts DATA/GROUNDS.XML <brush name="nv1" type="ground" server_lookid="21605" z-order="3530"> <item id="21606" chance="2500"/> <item id="21607" chance="2500"/> <item id="21608" chance="2500"/> <item id="21609" chance="2500"/> <item id="21610" chance="2500"/> <item id="21611" chance="2500"/> <item id="21612" chance="2500"/> <border align="outer" id="999"/> <border align="inner" to="none" id="1"/> </brush> <brush name="nv2" type="ground" server_lookid="21892" z-order="3530"> <item id="21892" chance="5589"/> <item id="21893" chance="5356"/> <item id="21894" chance="5119"/> <item id="21895" chance="5002"/> <item id="21896" chance="4916"/> <item id="21897" chance="4820"/> <item id="21898" chance="4760"/> <item id="21899" chance="4610"/> <item id="21900" chance="4511"/> <item id="21901" chance="4430"/> <item id="21902" chance="4300"/> <item id="21903" chance="4205"/> <item id="21904" chance="4150"/> <item id="21905" chance="4002"/> <item id="21906" chance="3905"/> <item id="21907" chance="3700"/> <item id="21908" chance="3350"/> <item id="21909" chance="2900"/> <item id="21910" chance="2500"/> <item id="21911" chance="1900"/> <border align="outer" id="998"/> <border align="inner" to="none" id="1"/> </brush> <brush name="nv3" type="ground" server_lookid="21942" z-order="3530"> <item id="21942" chance="7589"/> <item id="21943" chance="4189"/> <item id="21944" chance="3289"/> <item id="21945" chance="2589"/> <item id="21946" chance="1489"/> <item id="21947" chance="1389"/> <item id="21948" chance="1289"/> <item id="21949" chance="1189"/> <border align="outer" id="997"/> <border align="inner" to="none" id="1"/> </brush> <brush name="nv4" type="ground" server_lookid="22159" z-order="3530"> <item id="22159" chance="7589"/> <item id="22160" chance="6589"/> <item id="22161" chance="5589"/> <item id="22162" chance="4589"/> <item id="22163" chance="3589"/> <item id="22164" chance="2589"/> <item id="22165" chance="2189"/> <item id="22166" chance="1589"/> <border align="outer" id="996"/> <border align="inner" to="none" id="1"/> </brush> <brush name="nv5" type="ground" server_lookid="22167" z-order="3530"> <item id="22167" chance="7589"/> <item id="22168" chance="6589"/> <item id="22169" chance="5589"/> <item id="22170" chance="4589"/> <item id="22171" chance="3589"/> <item id="22172" chance="2589"/> <item id="22173" chance="1589"/> <item id="22174" chance="1089"/> <border align="outer" id="995"/> <border align="inner" to="none" id="1"/> </brush> <brush name="nv6" type="ground" server_lookid="22175" z-order="3530"> <item id="22175" chance="7589"/> <item id="22176" chance="6589"/> <item id="22177" chance="5589"/> <item id="22178" chance="4589"/> <item id="22179" chance="3589"/> <item id="22180" chance="2589"/> <item id="22181" chance="1589"/> <item id="22182" chance="1089"/> <border align="outer" id="994"/> <border align="inner" to="none" id="1"/> </brush> DATA/BORDERS.XML <border id="999" group="1"> <borderitem edge="n" item="21613"/> <borderitem edge="e" item="21616"/> <borderitem edge="s" item="21614"/> <borderitem edge="w" item="21615"/> <borderitem edge="cnw" item="21619"/> <borderitem edge="cne" item="21620"/> <borderitem edge="csw" item="21618"/> <borderitem edge="cse" item="21617"/> <borderitem edge="dnw" item="21622"/> <borderitem edge="dne" item="21621"/> <borderitem edge="dsw" item="21624"/> <borderitem edge="dse" item="21623"/> </border> <border id="998" group="1"> <borderitem edge="n" item="21912"/> <borderitem edge="e" item="21915"/> <borderitem edge="s" item="21913"/> <borderitem edge="w" item="21914"/> <borderitem edge="cnw" item="21918"/> <borderitem edge="cne" item="21919"/> <borderitem edge="csw" item="21917"/> <borderitem edge="cse" item="21916"/> <borderitem edge="dnw" item="21921"/> <borderitem edge="dne" item="21920"/> <borderitem edge="dsw" item="21923"/> <borderitem edge="dse" item="21922"/> </border> <border id="997" group="1"> <borderitem edge="n" item="21950"/> <borderitem edge="e" item="21953"/> <borderitem edge="s" item="21951"/> <borderitem edge="w" item="21952"/> <borderitem edge="cnw" item="21956"/> <borderitem edge="cne" item="21957"/> <borderitem edge="csw" item="21955"/> <borderitem edge="cse" item="21954"/> <borderitem edge="dnw" item="21959"/> <borderitem edge="dne" item="21958"/> <borderitem edge="dsw" item="21961"/> <borderitem edge="dse" item="21960"/> </border> <border id="996" group="1"> <borderitem edge="n" item="22183"/> <borderitem edge="e" item="22186"/> <borderitem edge="s" item="22184"/> <borderitem edge="w" item="22185"/> <borderitem edge="cnw" item="22189"/> <borderitem edge="cne" item="22190"/> <borderitem edge="csw" item="22188"/> <borderitem edge="cse" item="22187"/> <borderitem edge="dnw" item="22192"/> <borderitem edge="dne" item="22191"/> <borderitem edge="dsw" item="22194"/> <borderitem edge="dse" item="22193"/> </border> <border id="995" group="1"> <borderitem edge="n" item="22195"/> <borderitem edge="e" item="22198"/> <borderitem edge="s" item="22196"/> <borderitem edge="w" item="22197"/> <borderitem edge="cnw" item="22201"/> <borderitem edge="cne" item="22202"/> <borderitem edge="csw" item="22200"/> <borderitem edge="cse" item="22199"/> <borderitem edge="dnw" item="22204"/> <borderitem edge="dne" item="22203"/> <borderitem edge="dsw" item="22206"/> <borderitem edge="dse" item="22205"/> </border> <border id="994" group="1"> <borderitem edge="n" item="22207"/> <borderitem edge="e" item="22210"/> <borderitem edge="s" item="22208"/> <borderitem edge="w" item="22209"/> <borderitem edge="cnw" item="22213"/> <borderitem edge="cne" item="22214"/> <borderitem edge="csw" item="22212"/> <borderitem edge="cse" item="22211"/> <borderitem edge="dnw" item="22216"/> <borderitem edge="dne" item="22215"/> <borderitem edge="dsw" item="22218"/> <borderitem edge="dse" item="22217"/> </border> DATA/WALLS.XML <brush name="nv7" type="wall" server_lookid="21790"> <wall type="horizontal"> <item id="21790" chance="500"/> <door id="21745" type="normal" open="true"/> <door id="21796" type="hatch_window" open="true"/> <door id="21796" type="window"/> </wall> <wall type="vertical"> <item id="21787" chance="400"/> <door id="21746" type="normal" open="true"/> <door id="21795" type="hatch_window" open="true"/> <door id="21795" type="window"/> </wall> <wall type="corner"> <item id="21789" chance="1000"/> </wall> <wall type="pole"> <item id="21783" chance="1000"/> </wall> </brush> <brush name="nv8" type="wall" server_lookid="21749"> <wall type="horizontal"> <item id="21749" chance="500"/> <door id="21777" type="normal" open="true"/> <door id="21765" type="hatch_window" open="true"/> <door id="21765" type="window"/> </wall> <wall type="vertical"> <item id="21747" chance="400"/> <door id="21778" type="normal" open="true"/> <door id="21764" type="hatch_window" open="true"/> <door id="21764" type="window"/> </wall> <wall type="corner"> <item id="21754" chance="1000"/> </wall> <wall type="pole"> <item id="21751" chance="1000"/> </wall> </brush> DATA/DOODADS.XML <brush name="nv9" type="doodad" server_lookid="22593" draggable="true" on_blocking="true" thickness="25/100"> <item id="22593" chance="4"/> </brush> <brush name="nv10" type="doodad" server_lookid="22594" draggable="true" on_blocking="true" thickness="25/100"> <item id="22594" chance="4"/> </brush> <brush name="nv11" type="doodad" server_lookid="22595" draggable="true" on_blocking="true" thickness="25/100"> <item id="22595" chance="4"/> </brush> <brush name="nv12" type="doodad" server_lookid="22596" draggable="true" on_blocking="true" thickness="25/100"> <item id="22596" chance="4"/> </brush> <brush name="nv13" type="doodad" server_lookid="22597" draggable="true" on_blocking="true" thickness="25/100"> <item id="22597" chance="4"/> </brush> <brush name="nv14" type="doodad" server_lookid="22587" draggable="false" on_blocking="true" one_size="true" redo_borders="true"> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="22587"/> </tile> <tile x="0" y="0" z="-1"> <item id="459"/> </tile> </composite> </alternate> <alternate> -- east -- <composite chance="10"> <tile x="0" y="0"> <item id="22588"/> </tile> <tile x="0" y="0" z="-1"> <item id="459"/> </tile> </composite> </alternate> <alternate> -- north -- <composite chance="10"> <tile x="0" y="0"> <item id="22590"/> </tile> <tile x="0" y="1" z="-1"> <item id="459"/> </tile> </composite> </alternate> <alternate> -- west -- <composite chance="10"> <tile x="0" y="0"> <item id="22589"/> </tile> <tile x="1" y="0" z="-1"> <item id="459"/> </tile> </composite> </alternate> </brush> <brush name="nv15" type="doodad" server_lookid="21803" draggable="false" on_blocking="true" one_size="true" redo_borders="true"> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="21803"/> </tile> <tile x="1" y="0" z="0"> <item id="21802"/> </tile> <tile x="-1" y="0" z="0"> <item id="21804"/> </tile> </composite> </alternate> <alternate> <composite chance="10"> <tile x="0" y="0"> <item id="21800"/> </tile> <tile x="0" y="-1" z="0"> <item id="21799"/> </tile> <tile x="0" y="1" z="0"> <item id="21801"/> </tile> </composite> </alternate> </brush> <brush name="nv16" type="doodad" server_lookid="22398" draggable="true" on_blocking="true" thickness="25/100"> <item id="22398" chance="4"/> </brush> <brush name="nv17" type="doodad" server_lookid="22399" draggable="true" on_blocking="true" thickness="25/100"> <item id="22399" chance="4"/> </brush> <brush name="nv18" type="doodad" server_lookid="22400" draggable="true" on_blocking="true" thickness="25/100"> <item id="22400" chance="4"/> </brush> <brush name="nv19" type="doodad" server_lookid="22401" draggable="true" on_blocking="true" thickness="25/100"> <item id="22401" chance="4"/> </brush> <brush name="nv20" type="doodad" server_lookid="22402" draggable="true" on_blocking="true" thickness="25/100"> <item id="22402" chance="4"/> </brush> <brush name="nv21" type="doodad" server_lookid="22403" draggable="true" on_blocking="true" thickness="25/100"> <item id="22403" chance="4"/> </brush> <brush name="nv22" type="doodad" server_lookid="22404" draggable="true" on_blocking="true" thickness="25/100"> <item id="22404" chance="4"/> </brush> <brush name="nv23" type="doodad" server_lookid="22405" draggable="true" on_blocking="true" thickness="25/100"> <item id="22405" chance="4"/> </brush> <brush name="nv24" type="doodad" server_lookid="22406" draggable="true" on_blocking="true" thickness="25/100"> <item id="22406" chance="4"/> </brush> <brush name="nv25" type="doodad" server_lookid="22407" draggable="true" on_blocking="true" thickness="25/100"> <item id="22407" chance="4"/> </brush> <brush name="nv26" type="doodad" server_lookid="22408" draggable="true" on_blocking="true" thickness="25/100"> <item id="22408" chance="4"/> </brush> <brush name="nv27" type="doodad" server_lookid="22409" draggable="true" on_blocking="true" thickness="25/100"> <item id="22409" chance="4"/> </brush> <brush name="nv28" type="doodad" server_lookid="22410" draggable="true" on_blocking="true" thickness="25/100"> <item id="22410" chance="4"/> </brush> <brush name="nv29" type="doodad" server_lookid="22411" draggable="true" on_blocking="true" thickness="25/100"> <item id="22411" chance="4"/> </brush> <brush name="nv30" type="doodad" server_lookid="22412" draggable="true" on_blocking="true" thickness="25/100"> <item id="22412" chance="4"/> </brush> <brush name="nv31" type="doodad" server_lookid="22413" draggable="true" on_blocking="true" thickness="25/100"> <item id="22413" chance="4"/> </brush> <brush name="nv32" type="doodad" server_lookid="22414" draggable="true" on_blocking="true" thickness="25/100"> <item id="22414" chance="4"/> </brush> <brush name="nv33" type="doodad" server_lookid="22415" draggable="true" on_blocking="true" thickness="25/100"> <item id="22415" chance="4"/> </brush> <brush name="nv34" type="doodad" server_lookid="22416" draggable="true" on_blocking="true" thickness="25/100"> <item id="22416" chance="4"/> </brush> <brush name="nv35" type="doodad" server_lookid="22417" draggable="true" on_blocking="true" thickness="25/100"> <item id="22417" chance="4"/> </brush> <brush name="nv36" type="doodad" server_lookid="22418" draggable="true" on_blocking="true" thickness="25/100"> <item id="22418" chance="4"/> </brush> <brush name="nv37" type="doodad" server_lookid="22419" draggable="true" on_blocking="true" thickness="25/100"> <item id="22419" chance="4"/> </brush> <brush name="nv38" type="doodad" server_lookid="22420" draggable="true" on_blocking="true" thickness="25/100"> <item id="22420" chance="4"/> </brush> <brush name="nv39" type="doodad" server_lookid="22421" draggable="true" on_blocking="true" thickness="25/100"> <item id="22421" chance="4"/> </brush> <brush name="nv40" type="doodad" server_lookid="22422" draggable="true" on_blocking="true" thickness="25/100"> <item id="22422" chance="4"/> </brush> <brush name="nv41" type="doodad" server_lookid="22423" draggable="true" on_blocking="true" thickness="25/100"> <item id="22423" chance="4"/> </brush> <brush name="nv42" type="doodad" server_lookid="22424" draggable="true" on_blocking="true" thickness="25/100"> <item id="22424" chance="4"/> </brush> <brush name="nv43" type="doodad" server_lookid="22388" draggable="true" on_blocking="true" thickness="25/100"> <item id="22388" chance="4"/> </brush> <brush name="nv44" type="doodad" server_lookid="22387" draggable="true" on_blocking="true" thickness="25/100"> <item id="22387" chance="4"/> </brush> <brush name="nv45" type="doodad" server_lookid="22503" draggable="true" on_blocking="true" thickness="25/100"> <item id="22503" chance="4"/> </brush> <brush name="nv46" type="doodad" server_lookid="22504" draggable="true" on_blocking="true" thickness="25/100"> <item id="22504" chance="4"/> </brush> <brush name="nv47" type="doodad" server_lookid="22308" draggable="false" on_blocking="true" thickness="25/100"> <item id="22308" chance="100"/> <item id="22309" chance="100"/> <item id="22310" chance="100"/> <item id="22311" chance="100"/> <item id="22312" chance="100"/> <item id="22313" chance="100"/> <item id="22314" chance="100"/> <item id="22315" chance="100"/> </brush> <brush name="nv48" type="doodad" server_lookid="21644" draggable="false" on_blocking="true" thickness="25/100"> <item id="21644" chance="100"/> <item id="21645" chance="100"/> <item id="21646" chance="100"/> <item id="21647" chance="100"/> <item id="21637" chance="100"/> <item id="21638" chance="100"/> </brush> <brush name="nv49" type="doodad" server_lookid="22110" draggable="false" on_blocking="true" thickness="25/100"> <item id="22110" chance="100"/> <item id="22111" chance="100"/> <item id="22112" chance="100"/> <item id="22113" chance="100"/> <item id="22114" chance="100"/> <item id="22115" chance="100"/> <item id="22116" chance="100"/> <item id="22117" chance="100"/> </brush> <brush name="nv50" type="doodad" server_lookid="22229" draggable="true" on_blocking="true" thickness="10/10"> <composite chance="10"> <tile x="0" y="0"> <item id="22232"/> </tile> <tile x="-1" y="0"> <item id="22231"/> </tile> <tile x="0" y="-1"> <item id="22230"/> </tile> <tile x="-1" y="-1"> <item id="22229"/> </tile> </composite> </brush> <brush name="nv51" type="doodad" server_lookid="22224" draggable="true" on_blocking="true" thickness="10/10"> <composite chance="10"> <tile x="0" y="0"> <item id="22223"/> </tile> <tile x="1" y="0"> <item id="22224"/> </tile> <tile x="2" y="0"> <item id="22225"/> </tile> <tile x="0" y="1"> <item id="22226"/> </tile> <tile x="1" y="1"> <item id="22227"/> </tile> <tile x="2" y="1"> <item id="22228"/> </tile> </composite> </brush> <brush name="nv52" type="doodad" server_lookid="22005" draggable="true" on_blocking="false" thickness="12/100"> <item id="22005" chance="10"/> <item id="22009" chance="10"/> <item id="22010" chance="10"/> <item id="22011" chance="10"/> <item id="22023" chance="10"/> <item id="22024" chance="10"/> <item id="22026" chance="10"/> <item id="22050" chance="10"/> <item id="22063" chance="10"/> <item id="22071" chance="10"/> <item id="22073" chance="10"/> <item id="22075" chance="10"/> <item id="22450" chance="10"/> <item id="22451" chance="10"/> </brush> <brush name="nv53" type="doodad" server_lookid="22435" draggable="true" on_blocking="false" thickness="12/100"> <item id="22435" chance="10"/> <item id="22436" chance="10"/> </brush> <brush name="nv54" type="doodad" server_lookid="21963" draggable="false" on_blocking="true" one_size="true" redo_borders="true"> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="21962"/> </tile> <tile x="0" y="1"> <item id="21963"/> </tile> </composite> </alternate> <alternate> -- east -- <composite chance="10"> <tile x="0" y="0"> <item id="21974"/> </tile> <tile x="1" y="0"> <item id="21975"/> </tile> </composite> </alternate> <alternate> -- north -- <composite chance="10"> <tile x="0" y="0"> <item id="21966"/> </tile> <tile x="0" y="-1"> <item id="21967"/> </tile> </composite> </alternate> <alternate> -- west -- <composite chance="10"> <tile x="0" y="0"> <item id="21972"/> </tile> <tile x="-1" y="0"> <item id="21973"/> </tile> </composite> </alternate> </brush> <brush name="nv55" type="doodad" server_lookid="21965" draggable="false" on_blocking="true" one_size="true" redo_borders="true"> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="21964"/> </tile> <tile x="0" y="1"> <item id="21965"/> </tile> </composite> </alternate> <alternate> -- east -- <composite chance="10"> <tile x="0" y="0"> <item id="21978"/> </tile> <tile x="1" y="0"> <item id="21979"/> </tile> </composite> </alternate> <alternate> -- north -- <composite chance="10"> <tile x="0" y="0"> <item id="21968"/> </tile> <tile x="0" y="-1"> <item id="21969"/> </tile> </composite> </alternate> <alternate> -- west -- <composite chance="10"> <tile x="0" y="0"> <item id="21976"/> </tile> <tile x="-1" y="0"> <item id="21977"/> </tile> </composite> </alternate> </brush> <brush name="nv56" type="doodad" server_lookid="21987" draggable="false" on_blocking="true" one_size="true" redo_borders="true"> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="21985"/> </tile> </composite> </alternate> <alternate> -- east -- <composite chance="10"> <tile x="0" y="0"> <item id="21987"/> </tile> </composite> </alternate> <alternate> -- north -- <composite chance="10"> <tile x="0" y="0"> <item id="21986"/> </tile> </composite> </alternate> <alternate> -- west -- <composite chance="10"> <tile x="0" y="0"> <item id="21988"/> </tile> </composite> </alternate> </brush> <brush name="nv57" type="doodad" server_lookid="21998" draggable="false" on_blocking="true" one_size="true" redo_borders="true"> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="21998"/> </tile> </composite> </alternate> <alternate> -- east -- <composite chance="10"> <tile x="0" y="0"> <item id="21980"/> </tile> </composite> </alternate> <alternate> -- north -- <composite chance="10"> <tile x="0" y="0"> <item id="21981"/> </tile> </composite> </alternate> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="21993"/> </tile> </composite> </alternate> <alternate> -- east -- <composite chance="10"> <tile x="0" y="0"> <item id="21970"/> </tile> </composite> </alternate> <alternate> -- north -- <composite chance="10"> <tile x="0" y="0"> <item id="21971"/> </tile> </composite> </alternate> </brush> <brush name="nv58" type="doodad" server_lookid="21983" draggable="false" on_blocking="true" one_size="true" redo_borders="true"> <alternate> -- south -- <composite chance="10"> <tile x="0" y="0"> <item id="21983"/> </tile> </composite> </alternate> <alternate> -- east -- <composite chance="10"> <tile x="0" y="0"> <item id="21984"/> </tile> </composite> </alternate> </brush> DATA/TILESETS.XML (Arquivo muito extenso, faça o download abaixo.) DOWNLOAD DOS ARQUIVOS SCAN (0/46)1 ponto -
[Encerrado]UntraxBR - A nova era. Junte-se a nos!
Lumus reagiu a Administrador por um tópico no fórum
Parabéns ao projeto, está muito bom !1 ponto -
Vindo de um dlc como você o projeto vai ficar d+.1 ponto
-
1 ponto
-
Na function da talk estava function onSay(cid, words, param) Alterei para function onSay(cid, words, param, HPperVITsummon)1 ponto
-
local maxSlots = 3 --Quantia máxima de slots. function getDittoSlots(item) if not item or item < 1 then return false elseif getItemAttribute(item, "poke") and getItemAttribute(item, "poke") ~= "Ditto" then return false end local slots = {} for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) if attr then slots = attr end end return slots end function hasDittoSavedPokemon(item, name) if not item or item < 1 then return false elseif getItemAttribute(item, "poke") and getItemAttribute(item, "poke") ~= "Ditto" then return false end local check for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) if attr and attr == name then check = true break end end return check end function onSay(cid, words, param, HPperVITsummon) local item = getPlayerSlotItem(cid, 8).uid if item < 1 then doPlayerSendCancel(cid, "Coloque uma pokeball no slot pokeball.") elseif getItemAttribute(item, "poke") ~= "Ditto" then doPlayerSendCancel(cid, "Coloque uma pokeball com um Ditto no slot pokeball.") elseif param == "" then doPlayerSendCancel(cid, "Especifique um param.") else param = param:lower() if param == "check" then local str = "" for i = 1, maxSlots do local attr = getItemAttribute(item, "memory"..i) or "No memory" if str == "" then str = i.." - "..attr else str = str.."\n"..i.." - "..attr end end doPlayerPopupFYI(cid, "Ditto Memory:\n"..str.."") elseif param:find("forget") then local slot = tonumber(param:match("forget (.+)")) if slot and slot <= maxSlots and slot > 0 then if getDittoSlots(item)[slot] then doItemSetAttribute(item, "memory"..slot, false) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Slot "..slot.." deletado.") else doPlayerSendCancel(cid, "Este slot está vazio.") end else doPlayerSendCancel(cid, "Slot inválido.") end else local summons = getCreatureSummons(cid) if #summons == 0 then doPlayerSendCancel(cid, "Você não tem nenhum pokemon fora do pokeball.") else if param:find("save") then local transformedPoke = getItemAttribute(item, "transName") if transformedPoke and type(transformedPoke) == "string" then local slot = tonumber(param:match("save (.+)")) if slot and slot <= maxSlots and slot > 0 then if not getDittoSlots(item)[slot] and not hasDittoSavedPokemon(item, transformedPoke) then doItemSetAttribute(item, "memory"..slot, transformedPoke) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Você salvou um "..transformedPoke.." no slot "..slot..".") else doPlayerSendCancel(cid, "Este slot não está vazio ou o seu Ditto já tem esse pokemon salvo em sua memória.") end else doPlayerSendCancel(cid, "Slot inválido.") end else doPlayerSendCancel(cid, "Seu Ditto não está transformado em outro pokemon.") end else local slot = tonumber(param) local transformPoke = getDittoSlots(item)[slot] if not slot then doPlayerSendCancel(cid, "param inválido.") elseif slot <= 0 or slot > maxSlots then doPlayerSendCancel(cid, "Use um slot válido.") elseif not transformPoke then doPlayerSendCancel(cid, "Este slot está vazio.") elseif getPlayerStorageValue(summons[1], 1010) == transformPoke then doPlayerSendCancel(cid, "Seu Ditto já está transformado neste pokemon.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "[Ditto Memory] Usando o slot "..slot..", seu Ditto é transformado em um "..transformPoke..".") setPlayerStorageValue(summons[1], 1010, transformPoke) doSetCreatureOutfit(summons[1], {lookType = getPokemonXMLOutfit(transformPoke)}, -1) doSendMagicEffect(getThingPos(summons[1]), 184) doCreatureSay(summons[1], "TRANSFORM!", TALKTYPE_MONSTER) doItemSetAttribute(item, "transName", transformPoke) doItemSetAttribute(item, "transOutfit", getPokemonXMLOutfit(transformPoke)) if useKpdoDlls then doUpdateMoves(cid) end if dittoCopiesStatusToo then setPlayerStorageValue(summons[1], 1001, dittoBonus * pokes[transformPoke].offense * getPlayerLevel(cid)) setPlayerStorageValue(summons[1], 1002, dittoBonus * pokes[transformPoke].defense) setPlayerStorageValue(summons[1], 1003, pokes[transformPoke].agility) setPlayerStorageValue(summons[1], 1004, dittoBonus * pokes[transformPoke].vitality * getPlayerLevel(cid)) setPlayerStorageValue(summons[1], 1005, dittoBonus * pokes[transformPoke].specialattack * getPlayerLevel(cid)) local pct = getCreatureHealth(summons[1]) / getCreatureMaxHealth(summons[1]) local vit = getVitality(summons[1]) * getPlayerLevel(cid) / 100 setCreatureMaxHealth(summons[1], vit * HPperVITsummon) doCreatureAddHealth(summons[1], pct * vit * HPperVITsummon) end end end end end end return true end1 ponto
-
Monster morre aparece efeito
Xtudomuito reagiu a SkyLigh por uma questão
tag pro login registerCreatureEvent(cid, "deathEffect")1 ponto -
[TFS 1.x] Critical System
RichardZago reagiu a Bruno por um tópico no fórum
creature:getPosition():sendMagicEffect(CONST_ME_HOLYAREA)Lista de efeitos:https://github.com/otland/forgottenserver/blob/master/src/const.h#L25-L1111 ponto -
Seu pokémon lhe abandonou. Lamento. Enfim, tente trocar: table.remove(randomPosis, index) por: for i = index, #randomPosis do randomPosis[i] = randomPosis[i + 1] or nil end1 ponto
-
O que estão achando do novo patch 10.80?
Administrador reagiu a Marco Oliveira por um tópico no fórum
Algumas das implementações ficaram muito legais, porem com o novo sistema de coins o jogo ficou mais "pay to play" ou "play to win" me faltou a expressão agora hashuashuas' Enfim as novas criaturas ficaram bem legais e também as áreas de caçar. Só jogando mesmo pra saber1 ponto -
Monster morre aparece efeito
Xtudomuito reagiu a SkyLigh por uma questão
local config = { --["monster_name"] = effect, ["Dragon"] = 28, ["Orc"] = 13, --etc } function onDeath(cid) local effect = config[getCreatureName(cid)] if effect then doSendMagicEffect(getThingfromPos(cid), effect) end return true end1 ponto -
Mas o resto funcionou bem? ou não?1 ponto
-
A votação era até ontem, anyway ~ Votação encerrada. Vou começar a contagem dos votos ^-^1 ponto
-
magia passiva de agua
clebao666 reagiu a FlamesAdmin por um tópico no fórum
Quando se trata de passiva, não é necessário criar o XML da spell. Basta só adicionar no pokemon moves.lua/exp2.0.lua/configuration.lua(moveset do poké que irá ter a passiva e na lista de passivas). Isso no caso da base ser PDA.1 ponto -
1 ponto
-
[TFS1.2]Mover Parede/Pedra/Estatua
DeCarvalho reagiu a RigBy por uma questão
Eu fiz desse jeito, vai remove a parede quando joga o item no coal basin mas para volta você coloca um teleport la porque se não o cara pode esquecer de ter o black pearl e fica preso la dentro. e também para que o cara não passe, não tendo feito a quest eu criei um movement que impede ele de passar. Testa ai: Movement: xml: <movevent event="AddItem" tileitem="1" actionid="13501" script="NOMEDOSCRIPT.lua"/> <movevent event="StepIn" actionid="13500" script="NOMEDOSCRIPT.lua"/> lua: local pearl = 2693 -- id do item que vai joga local pos = Position({x = 90, y = 124, z = 7}) -- onde a parede esta local wall_id = 3362 -- id da parede local time = 5 -- quanto tempo ficara aberto local storage = 21321 -- storage que precissa para passar function onAddItem(moveitem, tileitem, position) local wall = getTileItemById(pos, wall_id) if moveitem:getId() == pearl then if wall.itemid ~= 0 then pos:sendMagicEffect(3) doRemoveItem(wall.uid, 1) moveitem:remove() addEvent(function() Game.createItem(wall_id, 1, pos) pos:sendMagicEffect(3) end, time*1000) end end return true end function onStepIn(creature, item, position, fromPosition) if creature:isPlayer() then if creature:getStorageValue(storage) == -1 then creature:teleportTo(fromPosition) end end return true end agora só basta coloca o actionid 13501 no coal basin onde terá que joga o item e o actionid 13500 no local em que só pode passar se tiver feito a quest. ps. não esqueça de configurar o script1 ponto -
[TFS 1.1+] /namelock /unlock
Bruno reagiu a DeCarvalho por um tópico no fórum
Feito por Sir Islam e é bem simples.. Caso você nbão tenha na db execute a query db.query("INSERT INTO `player_namelocks`(`player_id`, `reason`, `namelocked_at`, `namelocked_by`) VALUES (".. PlayerGUID.."," .. db.escapeString(reason) .. ","..timeNow.."," .. player:getGuid() .. ")") NameLock Em talkactions.xml adicione <talkaction words="/namelock" separator=" " script="namelock.lua" /> <talkaction words="/unlock" separator=" " script="unlock.lua"/ Em namelock.lua adicione function onSay(player, words, param) if not player:getGroup():getAccess() then return true end local name = param local reason = '' local separatorPos = param:find(',') if separatorPos ~= nil then name = param:sub(0, separatorPos - 1) reason = string.trim(param:sub(separatorPos + 1)) end local PlayerGUID = getPlayerGUIDByName(name) if PlayerGUID == 0 then return false end local timeNow = os.time() db.query("INSERT INTO `player_namelocks`(`player_id`, `reason`, `namelocked_at`, `namelocked_by`) VALUES (".. PlayerGUID.."," .. db.escapeString(reason) .. ","..timeNow.."," .. player:getGuid() .. ")") local target = Player(name) if target ~= nil then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, target:getName() .. " has been Namelock.") target:remove() else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, name .. " has been Namelock.") end end Em unlock.lua adicione function onSay(player, words, param) if not player:getGroup():getAccess() then return true end local resultId = db.storeQuery("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(param)) if resultId == false then return false end db.asyncQuery("DELETE FROM `player_namelocks` WHERE `player_id` = " .. result.getDataInt(resultId, "id")) result.free(resultId) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, param .. " has been unlock.") return false end .~> Como usar /namelock nome, motivo /unlock nome Curtiu? da um rep ae né fi1 ponto -
[TFS 1.1+] /namelock /unlock
DeCarvalho reagiu a Bruno por um tópico no fórum
Obrigado por compartilhar o conteúdo conosco!1 ponto -
No Vocation Não Acessar Market e Não receber Parcel
DeCarvalho reagiu a Lumus por uma questão
E aí mano, conseguiu?1 ponto -
[TFS 1.2] Evento Jogos Vorazes (com mapa)
Administrador reagiu a DeCarvalho por um tópico no fórum
Que bom É muito maneiro.. apesar de eu não saber criar, gosto de procurar coisas interessantes pois sei que muita gente não procura por não saber ingles/espanhol ou por não ter intimidade com o 'computador' .~^ mesmo que um ou 2 comentários, e umas curtidas já da uma animada em saber que não é tempo 'perdido' estar garimpando os forums gringos em busca de 'coisas' interessantes Grato pelos reps e comments1 ponto -
Pokémon Origins
Drenks reagiu a felipemuniz2013 por um tópico no fórum
Bom pessoal, mudei a base do meu projeto e estou com novas ideias, apresento a vocês o novo Pokémon Origins XD Tive que spritar muita coisa, principalmente as paredes das casas, ainda estou spritando bastante ;D, o jogo terá toda dinâmica do tibia mas com o gráfico de pokémon, estou usando muita sprite do nintendo ds, pokémon heart gold sou silver, editadas, e spritadas. Link do grupo e da pagina: https://www.facebook.com/groups/216270131905988/?ref=bookmarks https://www.facebook.com/Pokemon0rigins?ref=bookmarks Tem um vídeo no final do tópico New Bark Town: Rota 29: Cherrygrove: Sistema de level sendo desenvolvido: 90% Vídeo:1 ponto -
O que dizer do Windows10
Administrador reagiu a Piabeta Kun por uma questão
vi testes de desempenho em games e o ganho foi na faixa de 5 a 10 de fps, ou seja, quase nada!1 ponto -
Loot monstro
Nickbhz reagiu a Piabeta Kun por uma questão
pra fazer isso voce tem que mudar no item.xml a quantidade de slots do corpo do monstro!1 ponto -
1 ponto
-
[TFS 1.2] Evento Jogos Vorazes (com mapa)
DeCarvalho reagiu a Administrador por um tópico no fórum
Caramba!! Show de bola cara1 ponto -
[TFS 1.2] Evento Jogos Vorazes (com mapa)
DeCarvalho reagiu a SkyDarkyes por um tópico no fórum
Opa, deu certo obrigado.1 ponto -
[TFS 0.3.6] Player::canWalkthrough
Storm Night reagiu a Lordbaxx por um tópico no fórum
Dá pra você utilizar a tag walkStack no id do tile no items.xml.. Exemplo: <attribute key="walkStack" value="0" /> Mas antes você precisa modificar mais algumas coisas nas sources: items.cpp procure: moveable = true; Troque por: moveable = walkStack = true; ainda em items.cpp procure: else if(tmpStrValue == "transformto") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.transformToFree = intValue; } Logo embaixo coloque: else if(tmpStrValue == "walkstack") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.walkStack = (intValue != 0); } items.h procure: lookThrough, troque por: lookThrough, walkStack, Na função canWalkThrough no player.cpp troque por: bool Player::canWalkthrough(const Creature* creature) const { if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() || (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster()))) return true; const Player* player = creature->getPlayer(); if(!player) return false; if((((g_game.getWorldType() == WORLD_TYPE_NO_PVP && player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() && player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground && Item::items[player->getTile()->ground->getID()].walkStack) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges) || player->getAccess() <= getAccess())) return true; return (player->isGhost() && getGhostAccess() < player->getGhostAccess()) || (isGhost() && getGhostAccess() > player->getGhostAccess()); }1 ponto -
[005]
RigBy reagiu a Administrador por um tópico no fórum
Este é um tópico informativo. Aqui ficará registrado a promoção igualitária, positiva ou negativa; no que se diz respeito a congelamento ou avanço de sub-cargos e cargos. 02/08/2015 - 21:30. Situação: Removido por inatividade. @moskitinho Situação: Removido por inatividade @Lucasmml Situação: Apto para exercer o sub-cargo Tutor I. @Mudrock -> -> Situação: Apto para exercer o sub-cargo Estagiário III. -> Situação: Apto para exercer o sub-cargo Estagiário I. @RigBy -> Situação: Apto para exercer o sub-cargo Moderador I. -> Situação: Apto para exercer o sub-cargo Coordenador III. -> Situação: Apto para exercer o sub-cargo Coordenador III. @Avuenja ->1 ponto -
Como Modificar Essa Script ! Me Ajudem !
TiagoBordin1988 reagiu a SkyLigh por uma questão
não testei ainda mais veja se vai funcionar OBS : Vai ser 1 script por vocation. local leveis = { [1] = {lvl = 30, item = 2160, quant = 100, sto = 001}, } function onAdvance(cid, skill, oldLevel, newLevel) local vocation = 4 --- ID DA VOCATION local level = getPlayerLevel(cid) if getPlayerVocation(cid) == vocation then for i = 1, #leveis do if level >= leveis[i].lvl and getPlayerStorageValue(cid, leveis[i].sto) <= 0 then doPlayerAddItem(cid, leveis[i].item, leveis[i].quant) setPlayerStorageValue(cid, leveis[i].sto, 1) doPlayerSendTextMessage(cid, 22, "Você upou level "..level.." ou mais, e ganhou "..leveis[i].quant..", "..getItemNameById(leveis[i].item).."!") end end return true end end só trocar o seu script atual por esse1 ponto -
Creio que não, mais acabou que decidi e removi logo as funções que havia. local fishing = { ["Magikarp"] = {skill = 0, level = -2}, --["Qwilfish"] = {skill = 18, level = 3}, --["Remoraid"] = {skill = 16, level = 2}, ["Staryu"] = {skill = 22, level = 6}, ["Tentacool"] = {skill = 20, level = 7}, ["Goldeen"] = {skill = 17, level = 5}, ["Krabby"] = {skill = 14, level = 2}, ["Horsea"] = {skill = 16, level = 3}, ["Poliwag"] = {skill = 15, level = 2}, --["Marill"] = {skill = 21, level = 3}, --["Azumarill"] = {skill = 37, level = 16}, ["Kingler"] = {skill = 35, level = 14}, ["Seaking"] = {skill = 28, level = 11}, ["Starmie"] = {skill = 49, level = 20}, --["Chinchou"] = {skill = 23, level = 6}, ["Poliwhirl"] = {skill = 27, level = 9}, ["Seadra"] = {skill = 41, level = 15}, --["Lanturn"] = {skill = 38, level = 14}, --["Octillery"] = {skill = 30, level = 9}, --["Corsola"] = {skill = 46, level = 16}, } local storage = 15458 local bonus = 1 local function doFish(cid, pos, ppos, chance, interval, number) if not isCreature(cid) then return false end if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then return false end if getPlayerStorageValue(cid, storage) ~= number then return false end doSendMagicEffect(pos, CONST_ME_LOSEENERGY) local peixe = 0 local playerpos = getClosestFreeTile(cid, getThingPos(cid)) local level = 1 local fishes = {} local randomfish = "" for a, b in pairs (fishing) do if getPlayerSkillLevel(cid, 6) >= b.skill then table.insert(fishes, a) end end if math.random(1, 100) <= chance then doPlayerAddSkillTry(cid, 6, bonus) randomfish = fishes[math.random(#fishes)] level = getPlayerSkillLevel(cid, 6) / 3 level = level + getPlayerLevel(cid) / 5 level = math.random(level * 0.6, level) level = level + fishing[randomfish].level peixe = doSummonCreature(randomfish, playerpos) if level <= 0 then level = math.random(getPlayerLevel(cid)) end if not isCreature(peixe) then addEvent(doFish, interval, cid, pos, ppos, chance, interval, number) return true end setWildPokemonLevel(peixe, level) doSetMonsterPassive(peixe) doWildAttackPlayer(peixe, cid) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173) doChallengeCreature(getCreatureSummons(cid)[1], peixe) else doSendMagicEffect(getThingPos(cid), 173) doChallengeCreature(cid, peixe) end return true end addEvent(doFish, interval, cid, pos, ppos, chance, interval, number) return true end local waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825} function onUse(cid, item, fromPos, itemEx, toPos) if getPlayerGroupId(cid) == 11 then return true end local checkPos = toPos checkPos.stackpos = 0 if getTileThingByPos(checkPos).itemid <= 0 then doPlayerSendCancel(cid, '!') return true end if not isInArray(waters, getTileInfo(toPos).itemid) then return true end if (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1) and not canFishWhileSurfingOrFlying then doPlayerSendCancel(cid, "Você não pode pescar enquanto está surfando ou voando.") return true end if isInArray(waters, getTileInfo(getThingPos(cid)).itemid) then doPlayerSendCancel(cid, "Você não pode pescar enquanto estiver surfando ou voando acima da água.") return true end if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then doPlayerSendCancel(cid, "Você não pode pescar pokémons se você ou seu pokémon está em zona de protecção.") return true end if not tonumber(getPlayerStorageValue(cid, storage)) then local test = io.open("data/sendtobrun123.txt", "a+") local read = "" if test then read = test:read("*all") test:close() end read = read.."\n[fishing.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, storage).."" local reopen = io.open("data/sendtobrun123.txt", "w") reopen:write(read) reopen:close() setPlayerStorageValue(cid, storage, 1) end setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1) if getPlayerStorageValue(cid, storage) >= 800 then setPlayerStorageValue(cid, storage, 1) end local delay = 3500 - getPlayerSkillLevel(cid, 6) * 25 local chance = 10 + getPlayerSkillLevel(cid, 6) / 2.5 doFish(cid, toPos, getThingPos(cid), chance, delay, getPlayerStorageValue(cid, storage)) return true end1 ponto
-
--[[ PERFECT UPGRADE SYSTEM 2.0 Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- UpgradeHandler = { levels = { [1] = {90, false, false}, [2] = {80, false, false}, [3] = {70, false, false}, [4] = {60, true, false}, [5] = {40, true, true} }, broadcast = 8, attributes = { ["attack"] = 1, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8300] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, {__index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end})) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if item.itemid == 8300 then if self.item.level >= 0 then self:setItemName(self:getItemName():gsub("%+(%d+)", "")) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, getItemAttribute(self.item.uid, key) - self.item.level * value) end end end else doRemoveItem(self.item.uid, 1) end doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, item.itemid == 8300 and "Your item level has been reseted." or "You have broken your item while trying to upgrade it.") end end veja agora1 ponto
-
Spell De Soco
gabrielzika reagiu a zipter98 por um tópico no fórum
Remova estas linhas do código: if combat == COMBAT_PHYSICALDAMAGE then return false end1 ponto -
Mega pack de sprites avatar (+4.000)
Avuenja reagiu a Administrador por um tópico no fórum
Realmente, mas acredito que o gráfico (de qualidade) é mais complicado de fazer do que scripts..1 ponto -
Spell De Soco
gabrielzika reagiu a zipter98 por um tópico no fórum
Se não funcionar o método acima, poste (em spoiler) o conteúdo do arquivo exp2.0.lua.1 ponto -
Spell De Soco
gabrielzika reagiu a zipter98 por um tópico no fórum
O problema provavelmente está em wildpoke.lua ou exp2.0.lua.1 ponto -
Imagem: Map Editor 10.35: Download Notepad++: Download Instalação Manual (Com tilesets.xml completo): Pastebin (Leaves - Carpetbrush) Créditos: Daniel Informação adicional: O item não pode ser feito sendo um ground, pois não é um ground, nesse caso, utilizei o carpetbrush. Aprincipal característica é o Z-order, que vai facilitar dependendo onde você for usar o carpetbrush. O termo "Z-order" refere-se a ordem dos objetos ao longo do eixo-Z. Na geometria de coordenadas, X refere-se tipicamente ao eixo horizontal (da esquerda para a direita), Y em relação ao eixo vertical (para cima e para baixo), e Z refere-se ao eixo perpendicular aos outros dois (para a frente ou para trás). data/10.35/doodads.xml Antes da linha: </materials> Adicione: <!-- Carpetbrush Green Leaves. Credits for Daaniel - Tibiaking.com --> <!-- You can change the center for the ids: 15203 - 15205 --> <!-- (n; e; s; w) => /\ | > | \/ | < --> <brush name="center green leaves" type="carpet" server_lookid="15206"> <carpet align="n" id="15192"/> <carpet align="e" id="15193"/> <carpet align="s" id="15191"/> <carpet align="w" id="15194"/> <carpet align="cnw" id="15201"/> <carpet align="cne" id="15202"/> <carpet align="cse" id="15200"/> <carpet align="csw" id="15199"/> <carpet align="dnw" id="15197"/> <carpet align="dne" id="15198"/> <carpet align="dse" id="15196"/> <carpet align="dsw" id="15195"/> <!-- CENTER (The sole ground, can't put more than one) --> <carpet align="center" id="15206"/> </brush> <!-- Carpetbrush Orange Leaves. Credits for Daaniel - Tibiaking.com --> <!-- You can change the center for the ids: 12770 - 12772 --> <!-- (n, e, s, w) => /\ | > | \/ | < --> <brush name="center orange leaves" type="carpet" server_lookid="12769"> <carpet align="n" id="12758"/> <carpet align="e" id="12759"/> <carpet align="s" id="12757"/> <carpet align="w" id="12760"/> <carpet align="cnw" id="12767"/> <carpet align="cne" id="12768"/> <carpet align="cse" id="12765"/> <carpet align="csw" id="12766"/> <carpet align="dnw" id="12763"/> <carpet align="dne" id="12764"/> <carpet align="dse" id="12761"/> <carpet align="dsw" id="12762"/> <!-- CENTER (The sole ground, can't put more than one) --> <carpet align="center" id="12769"/> </brush> data/10.35/tilesets.xml CTRL + F: <tileset name="Nature"> Depois de: <terrain> E antes de: <brush name="sea"/> Adicione: <brush name="center green leaves"/> <brush name="center orange leaves"/> Dúvidas utilize o tilesets.xml completo postado no início do tópico1 ponto
-
[9.83][Extension] New Extension
BahamutxD2 reagiu a curruwilliam por um tópico no fórum
Olá, Tudo certo ? Vou postar aqui umas alteração do Remere's Map Editor. Imagem: Por enquanto é só isso, breve eu adiciono mais coisas e posto pra download! Para usar é simples, extraia o arquivo 983 e arraste para a pasta "Data" do seu Remere's Map Editor e substitua tudo, agora só abrir e ser feliz. 4Shared: http://www.4shared.com/rar/bRibUINLba/983.html Créditos: my1 ponto