Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''script''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Recursos
    • Suporte
    • Pedidos
    • Downloads
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Categorias

Não há resultados


Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

Encontrado 14.531 registros

  1. Killua Task Sytem Versões testadas: tfs 0.3.6 e 0.4 Eu sei que já existem vários task systems, inclusive aqui no fórum, mas do jeitinho que eu queria, não consegui achar nenhum. Por isso, resolvi fazer um eu mesmo. O que ele tem de diferente? • É totalmente simplificado. • Não precisa "pegar" as tasks. Elas já são todas automáticas, ou seja, os monstros são contados desde sempre. • É tudo configurado em uma única tabela, de forma muito simples. • Tem um NPC que somente entra as recompensas. • Seu progresso pode ser visto pelo comando !task Atualização do sistema: Refiz os códigos pois existia uma possibilidade de bug. Otimizei eles, deixando o código mais limpo, eficiente e rápido. Aconselho a todos que usam o sistema que instalem a nova versão. Instalação: Tags: Em talkacions.xml adicione: <talkaction log="yes" words="!task" event="script" value="amoebaTask.lua"/> Em creaturescripts.xml adicione: <event type="kill" name="AmoebaTask" event="script" value="amoebaTaskCreature.lua"/> Em data/creaturescritps/scripts/login.lua adicione: registerCreatureEvent(cid, "AmoebaTask") Scripts: Lib: Crie amoebaTask.lua em data/lib e coloque Talkaction: Crie amoebaTask.lua em data/talkactions/scripts e coloque Creaturescripts: Crie amoebaTaskCreature.lua em data/creaturescripts/scripts e coloque NPC: Em data/npc crie Task Man.xml e coloque Configuração: A configuração é feita unicamente na tabela da lib: amoebaTask = { ["Jabuti"] = {creatures = {"Jabuti","Jabuti Hatchling"}, storage = 2312112, storagecount = 890120, count = 300, exp = 0, money = 0, premios = {{6527, 10},{10133, 1}}}, ["Thenebreus"] = {creatures = {"Thenebreus"}, storage = 2312113, storagecount = 890121, count = 250, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}}, ["Demon"] = {creatures = {"Demon"}, storage = 2312114, storagecount = 890122, count = 5, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}} } Em [""] vc coloca o nome que vai aparecer no !task e que também será usado para pega a recompensa no NPC. Em creatures vc coloca todos os monstros que vão contabilizar para tal task. Em storage vc coloca o storage de task completa, que garante que o premio só será pego uma vez. Esse storage nunca pode ser repetido! Em storagecount vc coloca o storage de contagem de monstros. Esse também nunca pode ser repetido! Em count vc coloca o número de monstros necessários pra completar a task. Em exp vc coloca a exp que ganha completando. Em money vc coloca o dinheiro que ganha completando. Em premios vc coloca os itens que ganham completando, seguido de sua quantidade. Ex: {6527, 4} o player vai receber 4 itens de id 6527. Espero que façam bom uso do sistema. Vou ficar feliz em atender qualquer tipo de dúvida e também aceito sugestões. Caso queira que as tasks possam ser feitas repetidas vezes, me peça que eu ponho aqui. Pois basta mudar duas linhas.
  2. Esse é um pacote com actions úteis para se usar nos servidores e, a menos que esteja indicado o contrário, são de minha autoria. [Testado em servidor 8.6] Para colocar essas actions no jogo, você deve colocar uma TAG no arquivo actions.xml do seu servidor, com um actionid e o nome do arquivo .lua (contendo o script) na pasta de scripts. Então, você deve colocar um item com aquele actionid no mapa. [ACTION #1] Baús de quests completos Descrição: Com essa action, você pode colocar vários baús simples de quest em apenas um script de forma rápida e organizada. Basta apenas registrar diferentes actionIDs no actions.xml, colocar eles em cada baú e depois inserir no script, conforme o padrão. [ACTION #2] Summon simples Descrição: Dessa forma você pode criar um pequeno sistema de summon com um monstro. No primeiro uso, ele invoca o monstro à comando do jogador, gastando a mana definida. Então, caso outro uso seja realizado até o exhaust terminar, o monstro será removido. Quando o jogador usar novamente, se o monstro invocado existir, ele será removido e outro monstro será invocado, reiniciando o ciclo. OBS.: os ataques em área do summon ainda vão tirar vida do jogador. Para uma correção, vide final do tópico. [ACTION #3] Fome Zero Descrição: Script simples: você registra o actionID dele em algum item e então o jogador ganhará uma comida sorteada entre as que constam em foodID (deve ser configurado) Pode ser usado à vontade pelo jogador para conseguir comida. [ACTION #4] Alavanca do Cassino Descrição: Um script de alavanca: nesse você define as possíveis recompensas, o quanto de dinheiro a pessoa vai precisar e as chances! [ACTION #5] Fantasias de Monstros Descrição: Quando o jogador clicar em um item, será sorteada uma outfit entre as definidas. [ACTION #6] Passagem Secreta Descrição: Ao puxar a alavanca, o jogador removerá uma parede do lugar, abrindo uma passagem secreta. Ela se fechará em alguns segundos. [ACTION #7] Baús de vocações Descrição: Bem óbvio pelo nome, essa action dá prêmios diferentes para cada vocação [ACTION #8] SUSTO! Descrição: Essa action super engraçada fará o seguinte: o jogador se transformará num cadáver e aparecerá a mensagem You were downgraded from level... (igual a msg do tibia mesmo). Depois de TRÊS segundos, o jogador voltará a sua outfit normal e receberá a mensagem Gotcha! (te peguei em inglês) [ACTION #9] Painel informativo Descrição: Com essa action você pode fazer aparecer uma mensagem em popup para o jogador contendo as informações que você quiser. [ACTION #10] Armários realistas! Autor: Avronex Descrição: Colocando esse script em armários, os jogadores irão receber a janela de trocar outfit quando clicarem! [ACTION #11] Fogos de Artifício Descrição: Um novo script para fogos de artifício, com efeitos, número de explosões e tempo entre as explosões configuráveis. E aqui a lista termina por enquanto. Me avise se você achar/tiver uma action útil que possa entrar para a lista. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Correção para que o summon não dê dano em quem o invocou:
  3. Wend ll

    PokeXMaster

    Fala galera do xtibia, Hoje estou trazendo um servidor que estava editando para meu amigo Por no Vps dele, Mais ele Disse que Não Queria mais então resolvi Postar ele Para download AQ no xTibia.. alguns pensaram que é meu servidor mais não é, só usei como base e adicionei varios outros systemas como vocês veram nas Printscrens .. ex:: Held items com Tier, novas Remakes para os Pokemons, Novas quests e etc.. • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Erros do servidor • • PrintScreen • • Download's • Servidor PokéxMaster: http://www.4shared.com/rar/Mti3uzUoce/PokxMaster.html? OtClient: http://www.4shared.com/rar/XmIpCJKWba/OtClient_Master.html? • Creditos • Slicer (pelo servidor) Brun123 (por alguns scripts, e por criar o pda) Stylo Maldoso (pelo mapa) Eu ( por Corrigir Varios bugs e Editar varias coisas no Servidor) Gabrielsales ( pelos Systemas:: "Held item", "Ditto system" ) Gristony (Pelo Module do Shop no OTC ) Xtibia (por alguns scripts) antes que alguém venha Fala merda no Tópico, dizendo que o servidor é somente uma copia do Meu, vou logo avisando a base sim realmente foi a minha antiga v1 mais tem Varios systemas adicionados e Varias outra coisas como sistema de Torneio só faltando configurar os horarios..
  4. Mods: NPC Como configurar?
  5. Oneshot

    Dual Wield

    Tendo visto a crescente quantidade de pedidos por armas que possam ser usadas simultaneamente nas duas mãos, resolvi criar um tutorial apenas para esclarecer que esse código já existe compilado nas mais recentes revisões do The Forgotten Server. Você pode escolher quais itens poderão ser equipamentos nas duas mãos e claro restringir esses itens depois para apenas uma vocação. 1. Para criar seu item que pode ser equipado nas duas mãos, abra o items.xml e navegue até o ID do item desejado. Por exemplo, mostrarei abaixo o ID da Magic Sword: <item id="2400" article="a" name="magic sword"> <attribute key="description" value="It is the Sword of Valor." /> <attribute key="weight" value="4200" /> <attribute key="defense" value="35" /> <attribute key="attack" value="48" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="3" /> </item> 2. Adicione o atributo dualwield com valor 1 no código XML do item. <item id="2400" article="a" name="magic sword"> <attribute key="description" value="It is the Sword of Valor." /> <attribute key="weight" value="4200" /> <attribute key="defense" value="35" /> <attribute key="attack" value="48" /> <attribute key="weaponType" value="sword" /> <attribute key="extradef" value="3" /> <attribute key="dualwield" value="1" /> </item> Pelo que pude testar os danos não se somam, mas sim são causados dois ataques ao invés de um, ou seja a velocidade de ataque do jogador aumenta. Funciona com qualquer tipo de arma, desde swords até rods e wands. Funcional em: The Forgotten Server 0.4 rev3777 em diante
  6. Pequena atualização da Demon Oak para funcionar nos novos The Forgotten Server 0.4 Alguns scripts foram basedos na função do mazen Eu tentei fazer ela o mais simples possivel de adicionar Porém ficou ainda um pouco complicado mais tentarei simplificar ao maximo a explicação dela... Coloquei 2 tiles de gelo no mapa O tile mais acima é a posição do starting e o mais baixo e a direita é o ending. Porém esse tem uma borda A Unica coisa que falta no mapa é a gravestone que vc terá que fazer e colocar a uniqueid 32194 e configurar a newnposition Quando for passar para seu mapa, retire já que ele é apenas para saber. Spoiler 1º Para começar a quest você deve andar nas 5 posições que no meu mapa tem um treco amarelo nelas... 2º Depois vai até o npc oldrak e fale 3º Agora vá até a arena do demon oak e use o machado na arvore que bloquea o caminho. 4º Agora bata 9x em cada lugar da arvore. 5º Ao final ande no teleport. Se você andar nele antes de matar as quatro partes, vc terá que entrar e mata-la novamente as 4x. 6º Ao sair vai ao Oldrak e Fale : 7º Agora procure a gravestone de use nela E seja feliz com seu loot. Mudançass Aqui os uid, actions e storages usados : Ele é dividido em quatro arquivos : Para mapear crie uma area mais ou menos assim : Nessa area deverá haver apenas os items descritos e nomeados. De preferencia use o mapa do download. Na Tree Base adicione o actionids 32193 O tp 1 deve ter o uniqueid 32195 e deverá ter as coordenadas de saida, pois se o player não matar a arvore ele, sairá e terá que mata-la novamente. Também adicione a gosto a actionid 15001 ao redor da arvore do mal, esse actionids faz o player toma dano da arvore, como se ela batesse nele. Se vc conhece a quest, vc pode verificar que em certos pontos ao redor da arvore, ela "grita", vc deve adicionar os actionids 15002 até o 15006, em sentido anti horario. Começando a oeste. O resto está explicado nos arquivos. Você entenderá melhor se ver o spoil ou assistir algum video. Porém ela é muito simples de ser feita. A sala de recompensa vc deve adicionar os uids 2358 até 2361 nos baus, da esquerda para direita. Também não esqueça de colocar a gravestone com o uid 32194. Ao clicar nela vc irá para a sala de recompensa. Download do mapa Incrementando Em functions.lua ou global.lua adicione ao final: function doCreatureSayWithDistance(cid, position, text, type) oldPosX = setPlayerStorageValue(cid, 10000, getCreaturePosition(cid).x) oldPosY = setPlayerStorageValue(cid, 10001, getCreaturePosition(cid).y) oldPosZ = setPlayerStorageValue(cid, 10002, getCreaturePosition(cid).z) oldPos = { x = getPlayerStorageValue(cid, 10000), y = getPlayerStorageValue(cid, 10001), z = getPlayerStorageValue(cid, 10002) } doTeleportThing(cid, position, 0) doCreatureSay(cid, text, type) doTeleportThing(cid, oldPos, 0) return end function doSummonCreatures (monsters,positions) for _, positions in pairs (positions) do doSummonCreature(monsters, positions) end end function setPlayerMultiplyStorageValues(cid, storage, value) for _, storage in pairs(storage) do setPlayerStorageValue(cid, storage, value) end end Na pasta npc adicione oldrak.lua : <npc name="Oldrak" script="data/npc/scripts/oldrak.lua" walkinterval="2000" floorchange="0" access="3" level="1" maglevel="1"> <health now="150" max="150"/> <look type="57" head="115" body="113" legs="31" feet="38" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello, |PLAYERNAME|!" /> <parameter key="message_needmoremoney" value="Try again when you have more money."/> <parameter key="message_decline" value="Why would you tease me like that?"/> </parameters> </npc> Em npcs/scripts adicione oldrak.lua : -- Demon Oak 2.1 by ta4e-- -- Paradox 1.0-- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'demon oak') then if getPlayerStorageValue(cid, 15006) < 4 and getPlayerStorageValue(cid, 15005) == -1 then selfSay('You need know exactly location, go local and research more...' ,cid) elseif getPlayerStorageValue(cid, 15006) == 4 and getPlayerStorageValue(cid, 15005) == -1 then selfSay('You found the demon oak ? For kill it\'s you need a {Hallowed Axe}.', cid) elseif getPlayerStorageValue(cid, 15005) == -1 and getPlayerStorageValue(cid, 15006) <= 4 then selfSay('This a old demon , but we don\'t know where it\'s live.', cid) elseif getPlayerStorageValue(cid, 15005) == 3 then selfSay('Go defeat demon oak. When you do this report me.', cid) talkState[talkUser] = 0 elseif getPlayerStorageValue(cid, 15005) == 7 then selfSay('I can\'t believe, you really defeat the demon oak. Now is possible you get you reward. Search near cemitery.', cid) setPlayerStorageValue(cid,15005,8) talkState[talkUser] = 0 else selfSay('You need get a {Hallowed Axe}', cid) end elseif msgcontains(msg, 'mission') then if getPlayerStorageValue(cid, 15005) <= 8 then selfSay('First you need defeat the demon oak. Later you make next mission.', cid) elseif getPlayerStorageValue(cid, 15005) == 9 and getPlayerStorageValue(cid, 15031) ~= 2 then selfSay('The next mission, you need kill the demon, as named {Ungreez}. He\'s located in Hero Cave.', cid) setPlayerStorageValue(cid,15031,1) elseif getPlayerStorageValue(cid, 15031) == 2 then selfSay('Congratulations. Now you receive your outfit {Demon Hunter}.', cid) setPlayerStorageValue(cid,15031,2) if getPlayerSex(cid) == 0 then setPlayerStorageValue(cid,40288,1) else setPlayerStorageValue(cid,40289,1) end end elseif msgcontains(msg, 'hallowed axe') then if getPlayerStorageValue(cid, 15005) == -1 then selfSay('I can forge this but i need {1000 gold coins} and a {axe}. You interessed ?', cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, 15005) == 1 then selfSay('Great. You have 1000 gold coins to give me ?.', cid) talkState[talkUser] = 2 elseif getPlayerStorageValue(cid, 15005) == 2 then selfSay('Great. Now you have a {axe} to me ?.', cid) talkState[talkUser] = 3 end elseif msgcontains(msg, 'hugo') then selfSay('Ah, the curse of the Plains of Havoc, the hidden beast, the unbeatable foe. I\'ve been living here for years and I\'m sure this is only a {myth}.', cid) talkState[talkUser] = 4 elseif talkState[talkUser] == 4 then if msgcontains(msg, 'myth') then selfSay('There are many tales about the fearsome Hugo. It\'s said it\'s an abnormality, accidentally created by {Yenny the Gentle}. It\'s half demon, halfsomething else and people say it\'s still alive after all these years.', cid) talkState[talkUser] = 5 end elseif talkState[talkUser] == 5 then if msgcontains(msg, 'yenny the gentle') then selfSay('Yenny, known as the Gentle, was one of the most powerful wielders of magic in ancient times. She was known throughout the world for her mercy and kindness.', cid) setPlayerStorageValue(cid,15200,1) end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Great. You have 1000 gold coins to give me ?.', cid) setPlayerStorageValue(cid,15005,1) talkState[talkUser] = 2 else selfSay('When you prepared regress to me.', cid) end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') then if(doPlayerRemoveMoney(cid, 1000) == TRUE) then selfSay('Great. Now you have a {axe} to me ?.', cid) setPlayerStorageValue(cid,15005,2) talkState[talkUser] = 3 else selfSay('You don\'t have a money.', cid) end end elseif talkState[talkUser] == 3 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid,2386,1) == TRUE then selfSay('Great. Now go and defeat a Demon Oak. Later report me.', cid) doPlayerAddItem(cid,8293,1) setPlayerStorageValue(cid,15005,3) talkState[talkUser] = 3 else selfSay('You don\'t have a axe.', cid) end else selfSay('When you prepared regress to me.', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora vamos em actions/scripts e adicione hallowed axe.lua : Nos monster vc escolhe os monstros que a arvore irá sumonar. Em monstros alternativos se vc ativar o altmo, os monstros listado ali abaixo Serão sorteados com o acima, gerando mais emoção e também sorte ou azar ao player. --Demon Oak 2.1 by Ta4e-- --Some scripts based in script of Mazen-- function onUse(cid, item, frompos, item2, topos) local monster1 = "Crypt Shambler" local monster2 = "Lich" local monster3 = "bone beast" local monster4 = "banshee" local monster5 = "giant spider" local boss1 = "Blightwalker" local boss2 = "Betrayed Wraith" local boss3 = "diabolic imp" local boss4 = "demon" basepos = {x=1867, y=975, z=7} local starting={x=1856, y=966, z=7, stackpos=253} local ending={x=1883, y=982, z=7, stackpos=253} local trash= {x=1169, y=725, z=13} --Alternative Monsters--------------------------------------------------------------- local altmo = 0 -- If it 0 monsters not randomize. If it 1 randomize with this \/ local altmonst1 = "braindeath" local altmonst2 = "necromancer" local altmonst3 = "vampire" local altmonst4 = "giant spider" local altmonst5 = "demon skeleton" local altboss1 = "plaguesmith" local altboss2 = "phantasm" local altboss3 = "hellhound" local altboss4 = "behemoth" ----------------------------------------------------------------------------------------------- if altmo == 1 then if math.random (1,5) == 1 or math.random (1,5) == 5 then monster1 = altmonst1 monster2 = altmonst2 monster5 = altmonst5 boss1 = altboss1 boss3 = altboss3 else monster3 = altmonst3 monster4 = altmonst4 boss2 = altboss2 boss4 = altboss4 end end local fourposition1 = {x=basepos.x-4, y=basepos.y-4, z=7} local fourposition2 = {x=basepos.x-4, y=basepos.y+1, z=7} local fourposition3 = {x=basepos.x+3, y=basepos.y-4, z=7} local fourposition4 = {x=basepos.x+3, y=basepos.y+1, z=7} local modpos1 = {x=basepos.x-3, y=basepos.y-5, z=7} local modpos2 = {x=basepos.x, y=basepos.y-4, z=7} local modpos3 = {x=basepos.x+2, y=basepos.y-5, z=7} local threeposition1 = {x=basepos.x+3, y=basepos.y+4, z=7} local threeposition2 = {x=basepos.x+5, y=basepos.y+4, z=7} local threeposition3 = {x=basepos.x+3, y=basepos.y+5, z=7} local twopos ={x=basepos.x+5, y=basepos.y+1, z=7} local twopos1 = {x=basepos.x+2, y=basepos.y+2, z=7} local doublepos = {x=basepos.x-3, y=basepos.y-1, z=7} local leftpos = {x=basepos.x-4, y=basepos.y-5, z=7} local crepos = {x=basepos.x-3, y=basepos.y-7, z=7} local gopos = {x=basepos.x-2, y=basepos.y-17, z=7} ------------------------------------------------------------------------------------------------------------------------------ local gtotal = getPlayerStorageValue(cid, 15005) local gcorvo = getPlayerStorageValue(cid, 15001) local gleft = getPlayerStorageValue(cid, 15002) local gright = getPlayerStorageValue(cid, 15003) local gface = getPlayerStorageValue(cid, 15004) checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos} if item2.itemid == 2717 and item2.uid == 32193 then if getPlayerLevel(cid) >= 120 then players=0 totalmonsters=0 monster = {} repeat creature= getThingfromPos(checking) if creature.itemid > 0 then if getPlayerAccess(creature.uid) == 0 then players=players+1 end if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then totalmonsters=totalmonsters+1 monster[totalmonsters]=creature.uid end end checking.x=checking.x+1 if checking.x>ending.x then checking.x=starting.x checking.y=checking.y+1 end until checking.y>ending.y if players==0 then current=0 repeat current=current+1 doTeleportThing(monster[current],trash) until current>=totalmonsters doTeleportThing(cid, topos, 0) setPlayerMultiplyStorageValues(cid,{15001,15002,15003,15004},1) doTransformItem(item2.uid, 3669) doCreateTeleport(1387, gopos, crepos) local getrem1 = getThingfromPos({x=basepos.x-3, y=basepos.y-7, z=7, stackpos = 3}) doSetItemActionId(getrem1.uid,32195) end else doPlayerSendTextMessage(cid, "You need level 120 to enter in arena.", result) end elseif item2.itemid == 8288 then if gcorvo <10 then effect (cid,15001,gcorvo,topos) if gcorvo == 3 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gcorvo == 5 then doSummonCreatures(monster2, {threeposition1,threeposition2,threeposition3}) elseif gcorvo == 7 then doSummonCreature(boss1, fourposition3) elseif gcorvo == 9 then gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end elseif item2.itemid == 8289 then if gleft <10 then effect (cid,15002,gleft,topos) if gleft == 3 then doSummonCreature(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gleft == 4 then doSummonCreatures(monster3, {modpos1,modpos2,modpos3}) doSummonCreature(monster3, fourposition2) elseif gleft == 7 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gleft == 9 then doSummonCreature(boss2, leftpos) gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end elseif item2.itemid == 8290 then if gright <10 then effect (cid,15003,gright,topos) if gright == 2 then doSummonCreatures(monster4, {twopos,twopos1}) elseif gright == 4 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gright == 7 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gright == 9 then doSummonCreature(boss3,leftpos) gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end elseif item2.itemid == 8291 then if gface <10 then effect (cid,15004,gface,topos) if gface == 1 then doSummonCreature(monster2, doublepos) doSummonCreature(monster5, fourposition2) elseif gface == 4 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gface == 6 then doSummonCreature(boss4, leftpos) elseif gface == 9 then gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end end end local function effect (cid,storage,valor,topos) valor = getPlayerStorageValue(cid, storage) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -300, -300, CONST_ME_BIGPLANTS) valor = valor + 1 setPlayerStorageValue(cid, storage,valor) doSendMagicEffect(topos, 0) end Na mesma pasta adicione o Demon oak.lua : --Demon Oak 2.1 by Ta4e-- --Some scripts based in script of Mazen-- function onUse(cid, item, fromPosition, itemEx, toPosition) newnPosition = {x=1904, y=1006, z=8} -- Aqui a posição da sala de recompensa if item.uid == 32194 and getPlayerStorageValue(cid,15005) == 8 then doTeleportThing(cid,newnPosition) doSendMagicEffect(newnPosition,10) elseif item.uid == 2358 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 54.00 then doPlayerSendTextMessage(cid,24,"You have found demon legs.") doPlayerAddItem(cid,2495,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found a demon legs. Weighing 54.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 2359 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 69.00 then doPlayerSendTextMessage(cid,24,"You have found rainbow shield.") doPlayerAddItem(cid,8905,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found a rainbow shield. Weighing 69.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 2360 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 12.00 then doPlayerSendTextMessage(cid,24,"You have found royal crossbow.") doPlayerAddItem(cid,8851,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found a royal crossbow. Weighing 12.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 2361 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 28.50 then doPlayerSendTextMessage(cid,24,"You have found a spellbook of dark mysteries.") doPlayerAddItem(cid,8918,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found spellbook of dark mysteries. Weighing 28.50 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end end end E em actions.xml adicione : <action itemid="8293" script="Hallowed Axe.lua"/> <action uniqueid="32194" script="demon oak.lua" /> <action uniqueid="2358" script="demon oak.lua" /> <action uniqueid="2359" script="demon oak.lua" /> <action uniqueid="2360" script="demon oak.lua" /> <action uniqueid="2361" script="demon oak.lua" /> Finalmente em movements/scripts adicione demon oak.lua : --Demon Oak 2.1 by Ta4e-- --Some scripts based in script of Mazen-- function onStepOut(cid, item, position, fromPosition) if item.uid == 32193 and item.itemid == 3669 then doTransformItem(item.uid,2717) end end function onStepIn(cid, item, position, fromPosition) local yell = getPlayerStorageValue(cid, 15006) local pos1= {x=1866, y =973, z=7} if item.actionid == 32195 and item.itemid == 1387 then if getPlayerStorageValue(cid, 15005) == 7 then doPlayerSendTextMessage(cid,21,"Tell Oldrak about your great victory against the demon oak.") else doPlayerSendTextMessage(cid,21,"You have escaped of Demon Oak.") setPlayerMultiplyStorageValues (cid,{15001,15002,15003,15004,15005},1) end end if getPlayerStorageValue(cid, 15006) < 4 then if isPlayer(cid) == TRUE then yell = yell + 1 if item.actionid == 15005 and getPlayerStorageValue(cid, 15006) == -1 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "Find a way in here and release me! Pleeeease hurry!",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15002 and getPlayerStorageValue(cid, 15006) == 0 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "I can bring your beloved back from the dead,just release me!",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15003 and getPlayerStorageValue(cid, 15006) == 1 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "What is this? Demon legs lying here? Someone might have lost them.",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15004 and getPlayerStorageValue(cid, 15006) == 2 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "I'm trapped come here and free me, fast!!!",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15005 and getPlayerStorageValue(cid, 15006) == 3 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "What a nice and shinny golden armor. Come to me and you can have it!",TALKTYPE_ORANGE_1 ) end end elseif item.actionid == 15001 then if isPlayer(cid) == TRUE then if getPlayerStorageValue(cid, 15005) <=7 then if math.random(1,4) == 1 then doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -500, -500, CONST_ME_BIGPLANTS) end end end end end Em movements.xml adicione : <movevent event="StepOut" uniqueid="32193" script="demon oak.lua" /> <movevent event="StepIn" uniqueid="32195" script="demon oak.lua" /> <movevent event="StepIn" actionid="15000" script="demon oak.lua" /> <movevent event="StepIn" actionid="15001" script="demon oak.lua" /> <movevent event="StepIn" actionid="15002" script="demon oak.lua" /> <movevent event="StepIn" actionid="15003" script="demon oak.lua" /> <movevent event="StepIn" actionid="15004" script="demon oak.lua" /> <movevent event="StepIn" actionid="15005" script="demon oak.lua" /> <movevent event="StepIn" actionid="15006" script="demon oak.lua" /> Caso seja The Forgotten Server 0.4.2 <movevent type="StepOut" uniqueid="32193" event="script" value="dotile.lua" /> <movevent type="StepIn" actionid="32195" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15000" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15001" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15002" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15003" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15004" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15005" event="script" value="demon oak.lua" /> --UPDATE-- Eu acabei esquecendo de uma coisa que arruma alguns bugs caso o player empacote (morra) Em creaturescripts/scritps no player death.lua depois de: function onDeath(cid, corpse, killer) Adicione : setPlayerStorageValue(cid,5002,0) setPlayerStorageValue(cid,5001,0) setPlayerStorageValue(cid,5000,0) Isso evita que o player não possa entrar na quest e desfaz alguns bugs... Se você é anormal como eu, pode querer adicionar no Quest Log essa quest para ajudar os players Então em XML/quests.xml depois de: <quests> Adicione : <quest name="The Ultimate Challenges" startstorageid="15005" startstoragevalue="1"> <mission name="The Demon Oak" storageid="15005" startvalue="1" endvalue="9"> <missionstate id="1" description="You need give 1000 gold coins for Oldrak make a Hallowed Axe"/> <missionstate id="2" description="Now give axe to Oldrak make a Hallowed Axe"/> <missionstate id="3" description="Go defeat the Demon Oak."/> <missionstate id="4" description="You now killing The Demon Oak. Left 3 of 4 Parts."/> <missionstate id="5" description="You now killing The Demon Oak. Left 2 of 4 Parts."/> <missionstate id="6" description="You now killing The Demon Oak. Left 1 of 4 Parts."/> <missionstate id="7" description="Now the Demon Oak are dead. Report to oldrak."/> <missionstate id="8" description="Found a gravestone to choose your reward."/> <missionstate id="9" description="Congratulations. You have finished the quest"/> </mission> </quest> Pra adicionar o encantamento do rainbow shield entre em http://www.xtibia.com/forum/84-Enchant-Sys...ld-t103742.html
  7. Base: PokeStorm Bom dia Queria um Sistema de Usar Potion na Pokeball ou na Portrait se possivel. Aqui esta meu Potion.lua local potions = { [8783] = {baseHeal = 1800, healTimes = 10, msgColor = 175}, --Full Potion [2112] = {baseHeal = 950, healTimes = 8, msgColor = 181}, --Hyper Potion [2113] = {baseHeal = 600, healTimes = 7, msgColor = 23}, --Ultra Potion [2115] = {baseHeal = 350, healTimes = 6, msgColor = 30}, --Great Potion [2114] = {baseHeal = 200, healTimes = 5, msgColor = 177}, --Small Potion [9270] = {baseHeal = 225, healTimes = 5, msgColor = 177}, --Starter's Small Potion } local texts = { [PORTUGUESE] = {"Use isso em você mesmo ou em seu pokémon.", "Você já está se curando.", "Seu pokémon já está sendo curado."}, [ENGLISH] = {"Use it in your pokemon or in yourself.", "You are already healing yourself.", "Your pokemon is already being healed."}, } local potionState = {} local function potionHeal(cid, heal, healed, maxHeal) if isCreature(cid) and healed <= maxHeal then doCreatureAddHealth(cid, heal) doSendMagicEffect(getCreaturePosition(cid), 12) addEvent(potionHeal, 1000, cid, heal, healed+1, maxHeal) else potionState[cid] = nil end end function onUse (cid,item,frompos,item2,topos) local txt = texts[getPlayerLanguage(cid)] local potion = potions[item.itemid] if not isCreature(item2.uid) or getCreatureMaster(item2.uid) ~= cid then doPlayerSendCancel(cid, txt[1]) return true end if not potionState[item2.uid] then if isPokeballIn(item2.itemid) then healQuant = potion.baseHeal*(1+getPlayerSkillLevel(cid, SKILL_FIRSTAID)*0.05) elseif isSummon(item2.uid) then healQuant = potion.baseHeal*(1+getPlayerSkillLevel(cid, SKILL_FIRSTAID)*0.05) else healQuant = potion.baseHeal*(1+getPlayerSkillLevel(cid, SKILL_FIRSTAID)*0.05/2) end potionState[item2.uid] = true doRemoveItem(item.uid, 1) doSendAnimatedText(getCreaturePosition(item2.uid), 'HEALING!', potion.msgColor) potionHeal(item2.uid, healQuant, 1, potion.healTimes) else if isPlayer(item2.uid) then doPlayerSendCancel(cid, txt[2]) else doPlayerSendCancel(cid, txt[3]) end end return true end
  8. BananaFight

    [C++] Opcode versão 8.54+

    Adaptação pra source 8.54+ LEMBRE-SE, ISSO É NA SOURCE DO SERVIDOR Vamos ao código. protocolgame.h Embaixo de void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item); Adicione void parseExtendedOpcode(NetworkMessage& msg);void sendExtendedOpcode(uint8_t opcode, const std::string& buffer); protocolgame.cpp Embaixo de uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()};enableXTEAEncryption();setXTEAKey(key); Adicione // notifies to otclient that this server can receive extended game protocol opcodesif(operatingSystem >= CLIENTOS_OTCLIENT_LINUX)sendExtendedOpcode(0x00, std::string()); Embaixo de void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item){const ItemType& it = Item::items[item.itemId];msg->AddU16(it.clientId);if(it.isSplash() || it.isFluidContainer())msg->AddByte(fluidMap[item.subType % 8]);else if(it.stackable || it.charges)msg->AddByte(item.subType);elsemsg->AddByte(0x01);msg->AddString(item.itemName);msg->AddU32(uint32_t(it.weight * 100));msg->AddU32(item.buyPrice);msg->AddU32(item.sellPrice);} Adicione void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg){uint8_t opcode = msg.GetByte();std::string buffer = msg.GetString();// process additional opcodes via lua script eventaddGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer);}void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer){// extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand themNetworkMessage_ptr msg = getOutputBuffer();if(msg){TRACK_MESSAGE(msg);msg->AddByte(0x32);msg->AddByte(opcode);msg->AddString(buffer);}} Embaixo de case 0x1E: // keep alive / ping responseparseReceivePing(msg);break; Adicione case 0x32: // otclient extended opcodeparseExtendedOpcode(msg);break; enums.h Embaixo de enum GuildLevel_t{GUILDLEVEL_NONE = 0,GUILDLEVEL_MEMBER,GUILDLEVEL_VICE,GUILDLEVEL_LEADER}; Substitua o OperatingSystem por este enum OperatingSystem_t{CLIENTOS_LINUX = 0x01,CLIENTOS_WINDOWS = 0x02,CLIENTOS_OTCLIENT_LINUX = 0x0A,CLIENTOS_OTCLIENT_WINDOWS = 0x0B,CLIENTOS_OTCLIENT_MAC = 0x0C,};/ player.h Embaixo de void sendCreatureShield(const Creature* creature) Adicione void sendExtendedOpcode(uint8_t opcode, const std::string& buffer){if(client) client->sendExtendedOpcode(opcode, buffer);} luascript.cpp Embaixo de void LuaScriptInterface::registerFunctions(){ Adicione //doSendPlayerExtendedOpcode(cid, opcode, buffer)lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode); Embaixo de SHIFT_OPERATOR(int32_t, LeftShift, <<)SHIFT_OPERATOR(int32_t, RightShift, >>)SHIFT_OPERATOR(uint32_t, ULeftShift, <<)SHIFT_OPERATOR(uint32_t, URightShift, >>)#undef SHIFT_OPERATOR Adicione int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L){//doSendPlayerExtendedOpcode(cid, opcode, buffer)std::string buffer = popString(L);int opcode = popNumber(L);ScriptEnviroment* env = getEnv();if(Player* player = env->getPlayerByUID(popNumber(L))) {player->sendExtendedOpcode(opcode, buffer);lua_pushboolean(L, true);}lua_pushboolean(L, false);return 1;} luascript.h Embaixo de virtual void registerFunctions(); Adicione static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L); creatureevent.h . Substitua CREATURE_EVENT_PREPAREDEATH Por isso CREATURE_EVENT_PREPAREDEATH,CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes Embaixo de uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer); creatureevent.cpp Embaixo de else if(tmpStr == "death")m_type = CREATURE_EVENT_DEATH; Adicione else if(tmpStr == "extendedopcode")m_type = CREATURE_EVENT_EXTENDED_OPCODE; Embaixo de case CREATURE_EVENT_DEATH:return "onDeath"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "onExtendedOpcode"; Embaixo de case CREATURE_EVENT_DEATH:return "cid, corpse, deathList"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "cid, opcode, buffer"; Embaixo de std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl;return 0;}} Adicione uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer){//onExtendedOpcode(cid, opcode, buffer)if(m_interface->reserveEnv()){ScriptEnviroment* env = m_interface->getEnv();if(m_scripted == EVENT_SCRIPT_BUFFER){env->setRealPos(creature->getPosition());std::stringstream scriptstream;scriptstream << "local cid = " << env->addThing(creature) << std::endl;scriptstream << "local opcode = " << (int)opcode << std::endl;scriptstream << "local buffer = " << buffer.c_str() << std::endl;scriptstream << m_scriptData;bool result = true;if(m_interface->loadBuffer(scriptstream.str())){lua_State* L = m_interface->getState();result = m_interface->getGlobalBool(L, "_result", true);}m_interface->releaseEnv();return result;}else{#ifdef __DEBUG_LUASCRIPTS__char desc[35];sprintf(desc, "%s", player->getName().c_str());env->setEvent(desc);#endifenv->setScriptId(m_scriptId, m_interface);env->setRealPos(creature->getPosition());lua_State* L = m_interface->getState();m_interface->pushFunction(m_scriptId);lua_pushnumber(L, env->addThing(creature));lua_pushnumber(L, opcode);lua_pushlstring(L, buffer.c_str(), buffer.length());bool result = m_interface->callFunction(3);m_interface->releaseEnv();return result;}}else{std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl;return 0;}} game.h Embaixo de int32_t getLightHour() {return lightHour;}void startDecay(Item* item); Adicione void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer); game.cpp Embaixo de player->sendTextMessage(MSG_INFO_DESCR, buffer);} Adicione void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer){Player* player = getPlayerByID(playerId);if(!player || player->isRemoved())return;CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE);for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it)(*it)->executeExtendedOpcode(player, opcode, buffer);} /creaturescripts/creaturescrips.xml <event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/> /creaturescripts/extendedopcode.lua OPCODE_LANGUAGE = 1function onExtendedOpcode(cid, opcode, buffer)if opcode == OPCODE_LANGUAGE then-- otclient languageif buffer == 'en' or buffer == 'pt' then-- example, setting player language, because otclient is multi-language...--doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)endelse-- other opcodes can be ignored, and the server will just work fine...endend Créditos : MaXwEllDeN 100% por adaptar o código
  9. Snowz Thyranic Versão 3.3 (Perfect Edition) Ola para os fans do Thyranic vim trazer para vocês uma nova atualização!! espero que gostem! • 9 Cidades: ├ Rookgaard ├ Thyran ├ Murnia ├ Saaha ├ Icya ├ Venga ├ Mandrin ├ Talas └ Maltera(Vip) Agora vamos ver todas as atualizações! • Snowz Thyranic Versão 1: • Snowz Thyranic Versão 1.1: • Snowz Thyranic Versão 2: • Snowz Thyranic Versão 2.1: • Snowz Thyranic Versão 3.0: • Snowz Thyranic Versão 3.1 (Especial Edition): • Snowz Thyranic Versão 3.2 (King Edition): • Snowz Thyranic Versão 3.3 (Perfect Edition): Nesta atualização varios bugs foram arrumados ├ Bug do elf bot auto buy items!! ├ Inquisition Quest monstro com nomes errados não dava tp para continuar a quest! ├ Bug de alavancas de monsters! ├ FireWalker boots Quest! ├ Arena Icya tps bugados! ├ Algumas Quests bugadas! ├ Rings com % acima do normal! ├ A Demon Oak Quest !! ├ Npc de joias! └ Sql 100% funcionando para site Gesior! Oque tem de novo? ├ Items Vip ├ Cidade Vip ├ Novas hunts └ Npcs de addons espalhados pelo map Algumas fotos! Templo! Depot! Npcs! Thyrania almentada! Vip city! Areas Vip! Novas hunts para free!(OBS: tem outras alem dessas) Link download thyranic 3.3! Scan! ACC GOD loguin:god senha:god Créditos: - Maleski (eu) - Bizzani - Matheus - luisfe23 - Delton - Kaotar - RenanSdc - Thyranic - TFS Team Nessa ultima Atualização foi editado,etc!! por Maleski e Bizzani! Achou Bugs? Reporte !
  10. Ae galera do xtibia vo postar para voces o bronson server nao esta completo mais vo posta aki mesmo asim tem algumas hunts /ir ja entegrado espero que gostem --------- Map e Proprio --------- Boss e exclusivo do bronson server Hunt's bem elaboradas para nao tornar mt facil nem muito dificil --------- Atualizaçoes --------- Sempre que tiver tempo vou continuar atualizando corrigindo bugs E completanto o Ot server ate que fique 100% Vou postar alguns print's Mapa 70% full Hunt de cyc City principal Boss the necromancer Download Scan nao consegui fazer o scan entao vai o print mesmo' rs Creditos: Mixsoft Criador do map "nao sei o nome" Samurela Por posta o map todos aqueles que peguei scripts E a mim Gosto RP+
  11. RIANLHP

    script Script WODBO

    Pessoal, como adiciona RACE ao meu Wodbo, Só existe dois tipos, Blood e Energy, Queria encontrar outras, não estou conseguindo nem tirar blood dos treiners, alguém pode ajudar? Encontrei solução, se tiver como fechar o tópico agradeço!
  12. Informações: Server 8.6 Oque Mudou? 1-Adicionada 3 Novas Quests 2-Adicionado Set Brutal 3-Adicionada Novas Runas 4-Diminui um pouco o Exausted..Assim o server Nao tera Mt lag..Obs:continua fast attack so diminui um poco. 5-Novo Visual 6-Adicionei Novos Scripts 7-Livre De Bugs 8-Vocações Balanceadas Baixe E confira o Resto senha do adm god/god thanks! ~~~~~~~~~~~~~~~~~~~~Algumas Imagens~~~~~~~~~~~~~~~~ DOWNLOAD: http://www.4shared.c...D13M12A12.html? Scan: VirusTotal Gostou?Da +REP Seu Dedo Num Vai Cai Eu Juro..Obs: Pelo menos Eu acho Que num vai ne ;D Em Breve Nova Atualização ^^
  13. Opa gente beleza? bom seguinte eu tenho o codigo que quando voce sai da cidade ou entra ele informa se esta saindo ou entrando, como do OtPokemon, segue código. Ele está configurado pra quando sair para o lado de celadon do mapa, agora eu queria saber, eu fui colocar na posicao do norte, pensei comigo 1 e 3 é pra celadon, entao cerulean resta 2 e 4, tentei mudar, porém ele só mostra a mensagem de eu saindo e nao entrando. (SIM) ja coloquei uma tag especifica pra ele no xml. Resumindo pra oeste (celadon) ele vai normal, pra sair de saffron ao norte aparece tbm a mensagem, agr para entrar nao...alguem poderia me dar uma ajudinha por favor? obrigado desde já.
  14. Estou com um bug no meu sistema de fishing, o player quando pesca e anda acaba bugando e burlando o tempo de pesca, assim fazendo um spam de pokemons pescando sem parar. Pensei em uma solução mas gostaria da ajuda de vocês para realizar, se for possível colocar quando o player estiver pescando não puder andar. Abaixo meu script de fishing (base huatson):
  15. A pedido do vinnevinne, fiz esse mod, daí achei bem legal e resolvi postar fora do tópico Peça Aqui o Seu Sistema/Evento. Informações O jogador irá puxar uma alavanca, caso não tenha usado em um certo tempo (configurável) e não haja ninguém já dentro da arena, ele será teleportado e a arena irá iniciar em 10 segundos A arena deve ser quadrada de 10 x 10 a 12 x 12 para garantir que ocorra como planejado! Na arena, a primeira wave de monstros (configurável) será invocada após os 10 segundos. Quando o jogador matar o último monstro, ele receberá uma mensagem que a próxima wave começará em 5 segundos Caso ele chegue na última wave, ao matar o último monstro ele será teletransportado de volta ao seu templo, com uma medalha personalizada e seus prêmios (configuráveis) Caso ele morra em alguma wave, ele será teleportado para o templo, não morrerá e poderá ganhar prêmios configuráveis Todas as waves são configuráveis (prêmios, quantos e quais monstros) O máximo de monstros por wave é 55, mas não recomendo deixar acima de 30 Testado em 8.6 Código Arquivo Ultimate Survival.xml na pasta mods Screenshots Configuração Primeiramente, crie uma arena quadrada 12 x 12 no seu mapa. Evite muitas construções como pilares ou estruturas que impeçam o respawn Em seguida, pegue a posição do CANTO SUPERIOR ESQUERDO dessa arena e coloque as coordenadas aqui: posi = {x=x, y=y, z=z} Pegue a posição do CANTO INFERIOR DIREITO dessa arena e coloque as coordenadas aqui: posf = {x=x, y=y, z=z} Configurando as waves: waves = { [1] = {monsters = {'dragon', 'dragon lord'}, count = 30, reward = {exp = 0, item = 2148, amount = 1, money = 100}}, Você deve inserir os nomes dos monstros que serão invocados entre aspas (aleatoriamente), quantos serão invocados (count) e as recompensas que o jogador irá ganhar se morrer nessa wave (deixe tudo como false se não quiser que ele ganhe recompensas ao morrer nessa wave) A posição de entrada do jogador na arena deverá ser editada aqui: posc = {x=109, y=215, z=7} exhaust é o tempo que ele deverá esperar para entrar novamente na arena final_reward são as recompensas que ele ganhará ao terminar a arena Finalmente, a alavanca no mapa deverá ter action id 4599
  16. NOVO BAIAK LERO? - Baiak Lero tem a base do baiak ice, todos os bugs retirados. - Contem 4 novas quests (Lero Quest) cada item da 3% def de todos os danos. - Cidade free, Vip1, vip2, Reformulada. - Adicionado VIP 3. - Adicionado VIP Donate.Poder ser comprada pelo Lero Seller tmb pode ser tirada para compra por doaçoes ao servidor - Adicionado Itens (LERO) no templo npc (Lero Seller) 2º melhores armas do jogo. - Acidionados Novos Scripts, calculo de kills, ant-magebomb etc. - Adicionado npc Ring Seller. - Adicionado Recarregar Soft/Firewalker apenas Clicando nelas. - Buero inicial Reformulado. - Não contem exit trainer. - Evento dota colocado (não configurado tem que configurar) - Novos Monsters Donates na cidade vip donate. -Nova Quest Boots Donate -2 Systema novos Task System e Guild frags onde a guild que tiver 100 kills ganha 5 honor points para comprar acesso a uma area so da guild -Implementado 2 boss portas lvl 400 e 500 no templo -Boss Ghazbaram, Morgaroth, Ferumbras dao loot igual do global e tem alguns escondidos no mapa obs: nao dropa itensda quest lero nem donate -Algumas hunts sem teleports espalhadas no mapa tmb de Warlock Demon Medusa -Novos teleports free -entre outras coisas Imagens: Scan:https://www.virustot...sis/1399329881/ Download : 4Shared::http://www.4shared.c...Lero_Novo.html?
  17. [uPDATE] BAIAK LERO Com area donate!Bye Rogerio 26.06.14 - Baiak Lero tem a base do baiak ice, todos os bugs retirados. - Contem 4 novas quests (Lero Quest) cada item da 3% def de todos os danos. - Cidade free, Vip1, vip2, Reformulada. - Adicionado VIP 3. - Adicionado VIP Donate.Poder ser comprada pelo Lero Seller por [ 50kk ] - Adicionado Itens (LERO) no templo npc (Lero Seller) 2º melhores armas do jogo. - Acidionados Novos Scripts, calculo de kills, ant-magebomb etc. - Adicionado npc Ring Seller. - Adicionado Recarregar Soft/Firewalker apenas Clicando nelas. - Buero inicial Reformulado. - Não contem exit trainer. -City Donate - Novos Monsters Donates na cidade vip donate. -Nova Quest Helmet of the Ancients AGORA FUNCIONANDO -Nova Quest Boots Donate -Systema Task -Implementado 2 boss portas lvl 400 e 500 no templo>>>PARA SAIR SO MATANDO O BOSS E PEGANDO A CARTA QUE ELE DA DE LOOT E PASSAR NA PORTA -Algumas hunts sem teleports espalhadas no mapa tmb de Warlock Demon Medusa UPDATE 25-06-14 ---RETIRADOS BUGS QUE DAVA LAG NO SERVIDOR ---INVASOES AUTOMATICAS TODOS OS DIAS // FERUMBRAS-GHAZBARAN-MORGAROTH-NECROPARUS-THE HORNED FOX-MADARETH-TIQUANDAS REVENGE-DEMODRAS E ROGERIO BOSS ---RAIDS PODE SER FEITA ATRAZ DO COMANDO TMB..../RAID FERUMBRAS ETC... ---DISTRO ARRUMADA AGORA TA BONITINHA ---QUEST BAIAK LUA REFORMULADA ---HOUSES TODAS DO SERVIDOR FUNCIONANDO---DESERTY CITY--TIQUANDA--DONATE TODAS PERFEITAMENTE ARRUMADAS ---ADDONS ALGUNS ITENS DE ADDON PODE SER ENCONTRADOS NO MAPA ATRAVEZ DE "QUEST"LOOT "OU COMPRANDO NO NPC BLUMA AO SUL DA MAIN CITY E NA VIP3 ---ADDONS DOLL E ""DROP"" DOS BOSS MORGAROTH--FERUMBRAS--GHAZBARAN---QUE TEM INVASAO AUTOMATICA ---VIP 3 REFORMULADA ARRUMADA AS HOUSES ----NPC BLUMA VENDE ITENS PARA ADDONS ---ADICIONADAS 13 NOVAS QUEST.... ---ADICIONADO 14 NOVAS HUNTS NOS TPS FREE ---ADICIONADO 8 NOVAS HUNTS NA CITY VIP ---ADICIONADO 6 NOVAS HUNTS NA VIP 2 ----ADICIONADO DRAKEN ELITE E DRAKEN ABOMINATION ---ADICIONADO MAIS 4 QUEST COM 2° MELHORES ITENS DO JOGO ---TEMPLO ----OS BOSS HELGORAK E USHURIEL SAO BOSS DA INQ! Q AO MATAR CRIA TP PARA PROXIMA SALA DA QUEST ---EXPLORE O MAPA A MUITO O QUE DESCOBRIR HUNTS--QUEST!! ----DUVIDAS ESTAREI AQUI PARA RESPONDELOS ----SKYPE: ROGERIOSK82 Creditos RogerioOwns / Leandrovp Scan:https://www.virustot...sis/1403729652/ Download: http://www.4shared.c...Lero_2014.html? http://depositfiles....files/f8iwaiuv5
  18. Bem, o script funciona de uma forma. Voce adiciona um item a uma pessoa, e adiciona uma porcentagem de reflexão e o numero de vezes qeu vai refletir. Só reflete dano fisico. Video: Voce pode adicionar em colares, armaduras, botas, escudos e ate mesmo armas. Instalando: Vá na pasta data/lib e crie um arquivo chamado de ReflectLib.lua e adicione isso dentro: function isHandedWeapon(itemuid) local typee = getItemWeaponType(itemuid) or 0 if typee >= 1 and typee <= 6 then return CONST_SLOT_RIGHT end return -1 end function getItemType(itemid) local slottypes = {"head", "body", "legs", "feet", "ring", "necklace"} local consts = { ["head"] = CONST_SLOT_HEAD, ["armor"] = CONST_SLOT_ARMOR, ["legs"] = CONST_SLOT_LEGS, ["feet"] = CONST_SLOT_FEET, ["ring"] = CONST_SLOT_RING, ["necklace"] = CONST_SLOT_NECKLACE } local arq = io.open("data/items/items.xml", "r"):read("*all") local attributes = arq:match('<item id="' .. itemid .. '".+name="' .. getItemNameById(itemid) ..'">(.-)</item>') local slot = "" for i,x in pairs(slottypes) do if attributes:find(x) then slot = x break end end if slot == "body" then slot = "armor" end return consts[slot] end function addReflectCharges(item, charges, reflectpercent) if charges ~= "inf" then charges = charges+1 doItemSetAttribute(item, "mcharges", charges) doItemSetAttribute(item, "charges", charges) doItemSetAttribute(item, "name", getItemNameById(getThing(item).itemid) .. " that is brand-new") else doItemSetAttribute(item, "charges", -1) doItemSetAttribute(item, "mcharges", "inf") end doItemSetAttribute(item, "reflect", reflectpercent) doItemSetAttribute(item, "description", "That item reflects " .. reflectpercent .. " percent of physical damage.") end function renewCharges(item) if getItemAttribute(item, "charges") and getItemAttribute(item, "mcharges") ~= "inf" then doItemSetAttribute(item, "charges", getItemAttribute(item, "mcharges")) doItemSetAttribute(item, "name", getItemNameById(getThing(item).itemid) .. " that is brand-new") end end Agora vá em data/creaturescripts/scripts e adicione o script reflectDamage.lua com esse script: function onStatsChange(cid, attacker, type, combat, value) local slots = {CONST_SLOT_HEAD, CONST_SLOT_NECKLACE, CONST_SLOT_ARMOR, CONST_SLOT_RIGHT, CONST_SLOT_LEFT, CONST_SLOT_LEGS, CONST_SLOT_FEET, CONST_SLOT_RING} local reflectpercent = 0 local itens = {} for i = 1, #slots do if getPlayerSlotItem(cid, slots[i]).uid > 1 and (getItemType(getPlayerSlotItem(cid, slots[i]).itemid) == slots[i] or isInArray({CONST_SLOT_RIGHT, CONST_SLOT_LEFT}, isHandedWeapon(getPlayerSlotItem(cid, slots[i]).uid))) and getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "mcharges") and (getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "charges") > 1 or getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "mcharges") == "inf") then reflectpercent = reflectpercent+getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "reflect") table.insert(itens, getPlayerSlotItem(cid, slots[i])) end end if combat == 1 and reflectpercent > 0 then if math.ceil(-value*((100-reflectpercent)/100)) < 0 then doCreatureAddHealth(cid, math.ceil(-value*((100-reflectpercent)/100))) doSendAnimatedText(getCreaturePosition(cid), math.ceil(value*((100-reflectpercent)/100)), COLOR_RED) local a = doCreateItem(2019, 2, getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(cid), 0) doDecayItem(a) else doSendMagicEffect(getCreaturePosition(cid), 3) end if math.ceil(-value*(reflectpercent/100)) < 0 then doCreatureAddHealth(attacker, math.ceil(-value*(reflectpercent/100))) doSendAnimatedText(getCreaturePosition(attacker), math.ceil(value*(reflectpercent/100)), COLOR_GREY) local a = doCreateItem(2019, 2, getCreaturePosition(attacker)) doSendMagicEffect(getCreaturePosition(attacker), 9) doDecayItem(a) end for i,x in pairs(itens) do if getItemAttribute(x.uid, "mcharges") ~= "inf" then doItemSetAttribute(x.uid, "charges", getItemAttribute(x.uid, "charges")-1) doItemSetAttribute(x.uid, "name", getItemNameById(x.itemid) .. " that has " .. getItemAttribute(x.uid, "charges")-1 .. " charge" .. (getItemAttribute(x.uid, "charges")-1 > 1 and "s" or "") .. " left") end end else return TRUE end end Agora na mesma pasta, procure por login.lua, e antes do ultimo return true, adicione essa linha: registerCreatureEvent(cid, "ReflectDamage") Agora vá em creaturescripts.xml e adicione esta tag: <event type="statschange" name="ReflectDamage" event="script" value="reflectDamage.lua"/> Pronto, o script esta pronto para uso. O script segue com tais funçoes para voce usar em outros scripts: addReflectCharges(item, charges, reflectpercent) Função: Ela é o coraçao do script, sem ela voce nao faz nada, voce usa ela pra adicionar cargas a um item qualquer, des de que seja equipavel. item - O uid do item que vai ser adicionado as cargas. charges - Numero de cargas, caso voce use "inf", assim mesmo com as aspas, o item tera infinitas cargas. reflectpercent - Porcentagem de reflexão que o item vai ter. renewCharges(item) Função: Recarregar as cargas de um item. item - O uid do item que vai ser recarregado. O script usado para adicionar o colar foi uma talkaction assim: function onSay(cid, words, param) local item = doPlayerAddItem(cid, 2125) addReflectCharges(item, 40, 75) return TRUE end
  19. Alguem pelo amor de deus que meche com scripts e queria trabalha me chama ai no privado, pago em reais.. Ta dificil achar alguem, galera tem preguiça... quem tiver afim me chama e saiba do assunto
  20. galera vocês poderiam me ajudar com um sicript, tipo o player morreu para um alakazam ae ele usa item "x" e volta no lugar onde ele morreu para o alakazam, alguem poderia me ajudar com isso vlw
  21. Olá Galerinha do xtibia, Tudo Bem ??? Antes de mais nada peço que movam para a área de Tutoriais de Website pois quando fui tentar criar um novo tópico la não estava dando tentei em Envie Seu Tutorial e nada. Vamos ao que interessa, estou fazendo esse tutorial ensinando a colocar o SHOP em seu Modern AAC pois vejo que muitos tem dúvida nesse assunto e eu quero que essas dúvidas acabem Quando acabarem de ler o Tópico veras que não é uma coisa dificil. Então vamos la para que funcione corretamente faça como eu peço no Tópico. Primeiramente vamos colocar para que o Shop entregue os items ao comprar certo ?!?! É Bem facil vá na pasta data/globalevents/script e crie um arquivo chamado shop.lua e coloco o seguinte script abaixo dentro e salve. Agora vá em globalevents.xml e coloque a seguinte tag <globalevent name="Shop" interval="3000" event="script" value="shop.lua"/> Pronto a parte do shop entregar os items após a compra está feito agora vamos instalar o SHOP. Peço que baixem o seguinte arquivo abaixo. http://www.4shared.com/rar/LLcxJq-dba/shop.html? Após baixarem, extraem em seu dekstop será extraida uma pasta chamada shop, renomeem ela para gifts e a coloque dentro da pasta do seu site(htdocs), após fazerem isso vá na pasta system/pages e crie um arquivo chamado gifts.php e coloque o codigo abaixo dentro e salve. Após fazerem isso va no phpmyadmin entre em sua DB e execulte o shop.sql que se encontra dentro da pasta SeuSite/gifts/config e pronto agora só entrar no link e terá la as instruções para finalizar a instalação. http://linkdoseusite/index.php/p/v/gifts.php Pronto SHOP instalado agora vamos colocar a aba de SHOP em seu site caso não tenha ou esteja com outro url. Vá na pasta seusite/templates/seutemplate e abra o index.php e coloque o seguinte url na parte onde tem as urls das paginas <li><a href="{$path}/index.php/p/v/gifts">SHOP</a></li> E pronto salve e entre em seu site e veja a magica Em Breve estarei fazendo um tópico ensinando a colocar o sistema de pagseguro automatico ou seja a pagina de DONATE do Server. Obrigado pela atenção de todos e até a próxima Creditos: Pelo Tutorial Junior Silva
  22. Como o Xtibia mudou seu site, e o modo de edição de tópico colocarei resumido.. Global Compacto Versão 8.60 Links com DLL e Sem DLL http://www.mediafire.com/?651yyaal4lklfbb http://www.mediafire.com/?wkwwote6edvcv4o
  23. Eai pessoal blz? eu estava lendo um tópico do nosso amigo Alexxxx... ai o Top...(o Bolz, esqueci o nick dele aq ¬¬) ai eu vi que ele falou que a forma que ele conseguio de adicionar addon no OT dele foi dando um Ctrol+F: Addon, na pasta do PokémonXRain! ai eu baixei ele e tentei, ai adicionei tudo nescessário nele no meu ot, ai quando usei, funcionou perfeitamente! mas claro q não é sem 100% pq quando da fly, ride, surf e etc ele volta pra outfit normal, ai precisa dar Go/back no pokémon para voltar com o addon! mas fora isto esta funcionando perfeitamente! Então Vamos Parar de Blábláblá e começar! Em Data/actions e Actions.xml adiciona isto: <action itemid="IdAddon;IdAddon" event="script" value="Addon.lua"/> Em IdAddon Coloca os ids dos items dos addons! ai para adicionar mais ids é só colocar o ";" Ou seja aquele negocio verde, e depois colocar o ID Ficando: IdAddon;IdAddon;IdAddon e por ai vai Ai Em Data/actions/scripts cria um arquivo lua Chamado "Addon" e Dentro Dele Adiciona Isto: function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [12593] = {pokemon= "Electabuzz" , looktype = 1482}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon [12925] = {pokemon= "Alakazam" , looktype = 1471}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local numero = addons[item.itemid].looktype local pb = getPlayerSlotItem(cid, 8).uid local pk = addons[item.itemid].pokemon if getItemAttribute(pb,"poke") ~= pk then doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.") return false end if getItemAttribute(pb,"addon") < 1 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",numero) return true end return true end Ai para adicionar um Novo Addon é só Adicionar esta tag: [ItemID] = {pokemon= "NomeDoPoke" , looktype = IdDaOutfit}, EM ItemID, troca pelo id do addon em pokemon troca NomeDoPoke, pelo Nome Do Pokémon que vai ser adicionado o Addon Em looktype, troca IdDaOutfit, pelo looktype do pokémon com addon! Em Goback.lua Procure Por: else doPlayerSendCancel(cid, "This pokemon is fainted.") end E Adiciona Emcima de Else Isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Em Catch system.lua Procura Por: doItemSetAttribute(item, "description", description) Adiciona Isto embaixo: doItemSetAttribute(item, "addon", 0) Em Some Functions.lua Procure Por: unLock(item.uid) Da Enter Duas Vezes e Adiciona isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Pronto! Sistema de Addon Funcionando Perfeitamente Caso Coloque Tudo Certinho! Caso Queira uma Addon Box... Faz isto Em Actions.xml Adiciona Isto: <action itemid="12595" event="script" value="addonbox.lua"/> E Em Data/Actions/Scripts Cria um Arquivo Lua Chamado "addonbox" e Adiciona Isto Dentro Dele: function onUse(cid, item, frompos, item2, topos, pos) local addons = {12593,12889} local randomChance = math.random(1, 49) if item2.itemid == 12595 then doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item2.uid, 1) doPlayerAddItem(cid, addons[randomChance], 1) doPlayerSendTextMessage(cid, 27, "Você ganhou um Addon!") return true end end Pronto Addon Box Adicionada! Créditos Pokémon X Rain Pelo Sistema de Addon Summer Slyer (Zet0N0Murmurou) Por Trazer ao Xtibia, e Por Fazer o Tutorial!
  24. Ola pessoal, esse é meu primeiro post aqui no XTibia não tenho esperiencia ainda kkk. Então como o titulo diz vou ensina a criar um npc que vende um intem que recarrega stamina, espero que ajudem. --Pedido de Nyel pelo chat do XTibia. 1.Primeiramente vamos criar o intem que recarrega stamina, abre a pasta do seu server. data/action/script , agora copie qualquer arquivo .lua e renomeia para "stamina". OBS: este intem é removido ao ser usado e apenas para premmium (elder druid,master sorcerer,elite knight e royal paladin). function onUse(cid, item, fromPosition, itemEx, toPosition) local cfg = {} cfg.refuel = 42 * 60 * 1000 if(getPlayerStamina(cid) >= cfg.refuel) then doPlayerSendCancel(cid, "Sua Stamina esta cheia.") elseif(not isPremium(cid)) then doPlayerSendCancel(cid, "Voce deve ser promovido(promotion).") else doPlayerSetStamina(cid, cfg.refuel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua stamina foi recarregada.") doRemoveItem(item.uid) end return true end -- Caso queira que o item não some seja tipo infinito use esse codigo abaixo. function onUse(cid, item, fromPosition, itemEx, toPosition) local cfg = {} cfg.refuel = 42 * 60 * 1000 if(getPlayerStamina(cid) >= cfg.refuel) then doPlayerSendCancel(cid, "Sua Stamina esta cheia.") elseif(not isPremium(cid)) then doPlayerSendCancel(cid, "Voce deve ser promovido(promotion).") else doPlayerSetStamina(cid, cfg.refuel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua stamina foi recarregada.") end return true end 2.Pronto criamos o script agora vamo colocar para funciona. data/action/action.xml <action itemid="7632" event="script" value="stamina.lua"/> Vermelho é o id do item que sera usado como stamina refil, nesse caso usei a Giant Shimmering Pearl. 3.Pronto criamos o item pode criar com o GOD para testa, vamos agora cria o NPC, vamos em: data/npc/ ,agora copie qualquer arquivo .xml e renomeia para "staminaseller" ficará staminaseller.xml, agora abre apaga tudo e coloque o codigo abaixo. <?xml version="1.0" encoding="UTF-8"?> <npc name="Stamina Seller" script="data/npc/scripts/default.lua" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="141" head="76" body="113" legs="110" feet="114" addons="3" corpse="2212"/> <parameters> <parameter key="module_shop" value="3" /> <parameter key="shop_buyable" value="Stamina Refil,7632,50000" /> </parameters> </npc> Vermelho: é o nome do NPC. Verde: Nome do item refill. Azul: é o id do item. Marrom: o preço do item nesse caso coloquei 50k. Pronto criamos tudo agora é só importa no seu remeres ou qualquer outro editor que você usa e adicionar no seu mapa. E tambem não podemos esquercer se editar o item no item.xml data/items/items.xml ,procurar pelo id 7632 se ele contem alguns atributos você retira tudo ou copi o codigo abaixo e troque pelo que esta em seu servidor, isso se usar esse mesmo item que estou usando ou com qualquer outro item. <item id="7632" name="Stamina refill"/> Pronto agora terminamos de vez o nosso tutorial espero que gostem, se algo fico errado ou se esqueci de algo podem comenta ,aceitando criticas construtivas, apesar de tudo esse é meu primeiro post aqui. By: Anderson.Souza - E-mail: [email protected] / Skype: Anderson Souza
  25. Olá pessoas! Eu estou disponibilizando para você uma versão do OTServer PokeStorm 3.20. Antes de baixarem eu gostaria de enfatizar alguns pontos: - A compilação do servidor está em linux, não há nenhuma viabilidade/possibilidade de rodar em Windows. - Incluem-se neste download: servidor, cliente e site. - Esta versão e bem antiga, não a atual do PokeStorm. - Este servidor requer um nível superior de conhecimento para deixar-lo online. O servidor requer configurar uma das versões do S.O de linux antes, é necessário aplicada uma senha própria no mysql - Eu acredito que a password é: pKe_StoRM_21 (mysql ≠ phpmyadmin). - O servidor só abre com este cliente, não abri-rá com outros tipos de cliente. Pelo menos onde eu saiba ate o momento. - Este servidor é altamente protegido, deve haver mais problemas para deixá-lo online. Então podemos dizer que ele é base de estudos dos scripts atuais do PokeStorm. Sugestões para deixar online ou fazer um teste: - Como o servidor só roda em LINUX, você pode simular uma maquina virtual em seu computador. Existem diversos programas que fazem isto, como VMWare ou VirtualBOX. Nas versões do Windows 8 ou superior você pode usar o Hyper-v que tem a mesma função, porem não precisara instalar nenhum programa. - Recomento que utilize as versões do Debian ou Ubuntu recentes, você terá que instalar diversas bibliotecas/libs para rodar o "executável" do servidor. - Lembre-se: Maquinas Virtuais consomem muito de um computador, computadores com baixo hardware ou básicos dificilmente vão rodar o servidor online, é possível ligar a VM, mas o servidor vai causar uma "lag" em sua maquina. Imagens & Conteúdos do servidor: - Infelizmente não há um tópico de referencia no XTIBIA, mas muitos devem saber sobre o servidor. Baixar servidor, cliente e Website: - Mega: Download - Scan: VírusTotal Creditos: - Equipe PokeStorm - criador da versão do servidor. - Equipe PokeSilver - disponibilizado o server. - LekoDS/Lervisc - por disponibilizar a copia para a comunidade. Nota: Não dou suporte sobre a instalação do servidor, funções e outras dúvidas! Então não ligue se eu ignorar mensagens privadas. Infelizmente começaram a usar esta cópia do PokeStorm 3.20 como fonte de vendas/lucro (estavam revendendo o servidor) que é sacanagem já que Open Tibia foi aberto a todos Então, Divirta-se! Por favor, poste um comentário sobre o servidor!
×
×
  • Criar Novo...