Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 02/28/17 em todas áreas
-
[Atenção] Este tutorial é recomendado para quem quer abrir seu otserv em WINDOWS! Galerinha, eu sei que já existem diversos tópicos semelhantes à este aqui no um sitezinho qualquer, mas eu resolvi postar este tutorial pois eu deixarei aqui de forma simples de como você deve montar sua maquina Windows para deixar seu servidor online direitinho. Primeiramente você precisará baixar e instalar o seguinte programa: Uniform Server, e Visual C++ 2015 x86. Vamos configurar tudo do seu OTServ. (Irei mostrar passo a passo por imagens siga da mesma forma dentro das areas marcadas) 1º - Apos ter baixado o Uniform Server extraia no Disco Local C. 2º - Apos ter extraido o Uniform Server no Disco Local C acesse a pasta UniServerZ e execute UniController. 3º - Apos executar o UniController ele pedira uma senha coloque uma de seu desejo e não a esqueça e clique em OK, OK. 4º - Em seguida aparecera o painel, clique em Start Apache e Start Mysql e espero ficar verde. 5º - Apos ter ficado verde aguarde iremos extrair o servidor que você quer abrir, no caso estou usando um realmap-10x, extraia ele na Area de Trabalho. 6º - Apos ter extraido voltaremos ao Uniform Serve, clique em phpMyAdmin, vamos criar o banco de dados. 7º - Assim que o phpMyAdmin abrir no seu navegador clique em Base de Dados, vamos criar a database. 8º - Em Criar base de dados coloque um nome e clique em Criar ela sera criada em aberta feito isso procure a opção Importar. 9º - apos ter clicad0 em Importar ela abrira uma outra pagina e nessa clique na opção Escolher arquivo e vá ate a pasta do seu realmap-10x que extraiu na Area De Trabalho e selecione o arquivo sql (servidor-db_2017-08-04.sql) depois em Abrir quando voltar para o phpMyAdmin clique em executar. 10º - Ao fazer todos os passos acima você terá criado sua Database, agora vamos configurar o config.lua para que funcione tudo, abra seu config.lua na pasta que extraio do OT na Area de Trabalho e procure as linhas abaixo: mysqlPass = "SENHA" -- a que você criou no passo 3º mysqlDatabase = "DATABASE" -- a que você criou no passo 8º Apos ter configurado essas duas linhas pasta voce clicar em theforgottenserver.exe que ele ira abrir normalmente. Terminou? claro que não como poderia me esquecer que você também tem que por o site pra funcionar rsrs. Vamos la? Baixe um site compatível com o OTSERV que você esta usando nesse caso que e servidor 10.x pode usar este Gesior 2012. apos ter feito o download, va ate a pasta C:\UniServerZ e delete a pasta www, depois extraia o Gesior 2012 que você fez o download para a pasta C:\UniServerZ ela ficara da seguinte forma. Basta renomear essa pasta Gesior-master para www ficando da seguinte forma. Apos ter renomeado entre na pasta www em seguida na pasta config e abra o arquivo config.php na terceira linha vai esta $config['site']['serverPath'] = "E:\Arquivos de OTServ\Forgotten Server/"; altere o E:\Arquivos de OTServ\Forgotten Server/ para a pasta onde você extraio o seu OT no caso a pasta realmap-10x na Area De Trabalho, como mostra na imagem abaixo. Apos ter alterado o caminho no seu config.php basta salvar, entrar no seu navegador e usar o endereço http://127.0.0.1 caso der algum erro quando entrar no site More info: ERROR: #C-5 : Class::ConfigPHP - Key passwordType doesn't exist. nasta adicionar passwordType = "sha1" no config.lua abaixo de mysqlSock = "" E isso pessoal, espero ter ajudado e boa sorte em seu futuros projetos, essa semana ainda sairá um tutorial para compilar e montar o ot em Linux.2 pontos
-
Npc - Saffari Zone Automático!
Marshmello e um outro reagiu a Crypter por um tópico no fórum
È um sistema para poketibia que serio o Saffari totalmente automático. [+] O jogador não perde level(experience) ao morrer. [+] O jogador é teleportado quando acabar o tempo ou quando suas Saffari balls acabar! [+] Mostra o tempo restante num comando exclusivo !saffari time Pasta mods Saffari.xml <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Saffari" version="2.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="saffari_func"><![CDATA[ config = { price = 5000, level = 50, need_premium = false, minutes = 60, saffari_positions = {enter = {x=152,y=51,z=5}, exit = {x=163,y=51,z=5}}, saffari_balls = {11445,30}, -- itemid e quantidade blocked_pokeballs = {2146, 2147, 11437, 11441, 11445}, -- pokeball, ultraball, greatball, masterball, safarriball storages = {874547,874548} -- start, time } function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" and ") ret = ret:sub(b+1) end return ret end ]]></config> <event type="login" name="SaffariRegister" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "SaffariDeath") return true end]]></event> <talkaction words="/saffari;!saffari" event="buffer"><![CDATA[ domodlib('saffari_func') param = string.lower(param) if getPlayerStorageValue(cid, config.storages[1]) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"you are not in Saffari") return true end if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"invalid command, enter !saffari time or !safari leave") return true elseif isInArray({"time","tempo"}, param) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, (getPlayerStorageValue(cid, config.storages[2]) - os.time() > 0 and "Left "..timeString(getPlayerStorageValue(cid, config.storages[2]) - os.time()).."" or "Time is over. Please wait a moment.").."\nTo leave enter command: !saffari leave") return true elseif isInArray({"sair","leave"},param) then doTeleportThing(cid, config.saffari_positions.exit) setPlayerStorageValue(cid, config.storages[1], 0) setPlayerStorageValue(cid, config.storages[2], 0) doPlayerSendTextMessage(cid,22,'you left the saffari zone.') return true end ]]></talkaction> <globalevent name="SaffariCheck" interval="60" event="script"><![CDATA[ domodlib('saffari_func') function onThink(interval, lastExecution) local on = getPlayersOnline() if #on > 0 then for i = 1, #on do if getPlayerStorageValue(on[i], config.storages[1]) > 0 then if getPlayerItemCount(on[i], config.saffari_balls[1]) <= 0 or getPlayerStorageValue(on[i], config.storages[2]) - os.time() <= 0 then doTeleportThing(on[i], config.saffari_positions.exit) setPlayerStorageValue(on[i], config.storages[1], 0) setPlayerStorageValue(on[i], config.storages[2], 0) doPlayerSendTextMessage(on[i],22,'you left the saffari zone.') end end end end return true end ]]></globalevent> <event type="death" name="SaffariDeath" event="script"><![CDATA[ domodlib('saffari_func') function onDeath(cid, corpse, deathList) if isPlayer(cid) and getPlayerStorageValue(cid, config.storages[1]) >= 1 then setPlayerStorageValue(cid, config.storages[1], 0) setPlayerStorageValue(cid, config.storages[2], 0) doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 0) end return true end ]]></event> </mod> NPC Saffari Man.xml <?xml version="1.0"?> <npc name="Saffari Man" script="data/npc/scripts/saffari.lua" walkinterval="50000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. You want to {enter} in the {saffari} zone!" /> </parameters> </npc> saffari.lua domodlib('saffari_func') 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,msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,msg:lower() if isInArray({"saffari","enter","entrar"}, msg) then npcHandler:say('you can stay in the Saffari zone by '..config.minutes..' minutes, the price is '..config.price..' gp(s), You want enter? {yes}', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then for i = 1, #config.blocked_pokeballs do if getPlayerItemCount(cid, config.blocked_pokeballs[i]) >= 1 then npcHandler:say('Keep your '..getItemNameById(config.blocked_pokeballs[i])..'!', cid) return true end end if config.need_premium and not isPremium(cid) then npcHandler:say('Sorry, you need to be premium!', cid) return true elseif getPlayerLevel(cid) < config.level then npcHandler:say('Sorry, you must be at least level '..config.level..' to enter the Saffari zone!', cid) return true elseif not doPlayerRemoveMoney(cid, config.price) then npcHandler:say('Sorry, you do not have enough money!', cid) return true end doPlayerAddItem(cid, config.saffari_balls[1], config.saffari_balls[2]) selfSay("Thanks, you've been teleported to the Saffari zone and has "..config.minutes.." minutes, if you want to leave enter {!saffari leave}.", cid) doTeleportThing(cid, config.saffari_positions.enter) setPlayerStorageValue(cid, config.storages[1], 1) setPlayerStorageValue(cid, config.storages[2], os.time()+config.minutes*60) elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("then ok.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())2 pontos -
GLOBAL 100% 7.40 -7.4 Features: No Protection zone nos barcos e tapetes. - Spells, vocations e spells formuled baseada em Tibia 7.4. nao tem Hotkleys! -War System. -Cast System. -Anti Clone. -Task System (Mais de 50) -Party Sharing Experience. You can share experience in-party with your friends, and receive 10% bonus experience when actived (!share). -Nao tem runas no Shop. somente conjurada. -Editado, conjura runas 2x mais que real tibia (ex. Sd 2x). -Fast Soul Regen -Conjure Runes na backpack. ! -Nao tem Wands/Rods, Burst Arrowns baseado em magic level. >> Vocation Features: -Paladins conjure mais ammunition. (ex. exevo con = 15 arrows) -Mages conjure mais runes. (ex. adori vita vis = 2 SDs) -Damage melhorado em 10% para Knights and Paladins. -Attack speed melhorado em 10% for all vocations. >> NPCs: -Nao vende runes. -Pode comprar bp de MF (pode remover se quizer): "buy bp mf" -Pode comprar bp de LF (pode remover se quizer): "buy bp lf" -Djinns in ankrahmun (Precisa de Quest) -Eremo sells amulet of loss. >> Game Features: -Bank system. -Auto-stack items -Full HP and MP at level up. -Stone Skin Amulet nao tem em NPCs, dropa somente de Warlock ou Hydra. >> Extra Information: -Real Tibia map: Full real Tibia map, incluindo todos os NPCs, Port Hope, monsters e quests 100% RL. - POI quest e todas as rooms(Custom feita por min). -Demon Oak Quest (Custom feita por min). -Uptime: Muito Estavel. Cliente Próprio das 3 ultimas imagem, não acompanha o servidor (usei somente para tirar prints). DOWNLOAD OTSERV/SOURCES OTX 7.x/CLIENTE/WEBSITE/DATABASE (Pra Editar o cliente basta abrir o Tibia.exe com notepad procurar o ip 167.114.111.25 e alterar pelo o seu ip caso tenha a mesma quantidade de numeros) Executavel + DLLs Scan Virus Total PACOTE PREMIUM 7.40 EDUZZ - Mais completo e sem Erros. (Duvidas entre em contato) Creditos Qwizer- OTX1 ponto
-
[MODS](0.4-0.3.6) - Fire Storm Event
tarjaturunen reagiu a Crypter por um tópico no fórum
Nome: Evento for fun Infos: quem é atingido pelo fogo morre, o último a sobreviver ganha. O evento é automático, mas também possui um comando para dar inicio ao evento, só usar /firestart minutos exemplo: /firestart 1 Fire_Storm_Event.xml <?xml version="1.0" encoding="ISO-8859-1"?><mod name="Fire Storm Event" version="8.6" author="Vodkart" contact="" enabled="yes"><config name="fire_config"><![CDATA[Fire = { storages = {172354, 172355}, -- storage Count players = {min = 2, max = 50}, -- min, max players no evento minLevel = 20, -- level minimo para entrar no event rewards = {{2160,10},{2494,1}}, -- premios que vai receber timeToStartEvent = 30, -- segundos para começar o evento CheckTime = 5, -- time to check event teleport = {{x=158, y=53, z=7}, {x=189 , y=58, z=7}}, -- posição do teleport, posição para onde o jogador vai arena = {{x=186,y=54,z=7},{x=193,y=60,z=7}} -- posição começo e final da area}Fire_Days = { ["Monday"] = {"13:00","18:00","20:00","22:00"}, ["Tuesday"] = {"13:00","18:00","20:00","22:00"}, ["Wednesday"] = {"13:00","18:00","20:00","22:00"}, ["Thursday"] = {"13:00","18:00","20:00","22:00"}, ["Friday"] = {"13:00","18:00","20:00","22:00"}, ["Saturday"] = {"13:00","18:00","20:00","22:00"}, ["Sunday"] = {"13:00","18:00","20:00","22:00"}}function removeFireTp() local t = getTileItemById(Fire.teleport[1], 1387).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(Fire.teleport[1], CONST_ME_POFF)endfunction ZerarStorFire() setGlobalStorageValue(Fire.storages[1], 0) setGlobalStorageValue(Fire.storages[2], 0)endfunction getPlayersInFireEvent() local t = {} for _, pid in pairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), Fire.arena[1], Fire.arena[2]) then t[#t+1] = pid end end return tendfunction getFireRewards(cid, items) local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID for _, i_i in ipairs(items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then doAddContainerItem(backpack, item, amount) else for i = 1, amount do doAddContainerItem(backpack, item, 1) end end endendfunction doFireInArea(n) if #getPlayersInFireEvent() > 1 then for i = 1, n do local pos = {x=math.random(Fire.arena[1].x, Fire.arena[2].x), y=math.random(Fire.arena[1].y,Fire.arena[2].y), z=Fire.arena[1].z} local m = getTopCreature(pos).uid doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) if m ~= 0 and isPlayer(m) then doSendMagicEffect(getCreaturePosition(m), CONST_ME_FIREAREA) doCreatureSay(m, "Ooh Burn Burn", TALKTYPE_ORANGE_1) local corpse = doCreateItem(3058, 1, getPlayerPosition(m)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(m) .. ". He was killed by Fire Field.") doSendMagicEffect(getPlayerPosition(m), CONST_ME_POFF) doTeleportThing(m, getTownTemplePosition(getPlayerTown(m))) doPlayerSendTextMessage(m, MESSAGE_EVENT_ADVANCE, "[Fire Storm Event] You died burned out.") end end local x = 2700-(200*n) addEvent(doFireInArea, x <= 0 and 500 or x, n+1) elseif #getPlayersInFireEvent() == 1 then local cid = getPlayersInFireEvent()[1] doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) getFireRewards(cid, Fire.rewards) doBroadcastMessage("Fire Storm Event have finished. The winner is ".. getCreatureName(cid).. ". Congratulations.", MESSAGE_EVENT_ADVANCE) ZerarStorFire() else doBroadcastMessage("No one Won the Fire Storm Event.", MESSAGE_EVENT_ADVANCE) ZerarStorFire() endendfunction CheckFireEvent(delay) if getGlobalStorageValue(Fire.storages[1]) ~= (Fire.players.max+1) then if delay > 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.max then doBroadcastMessage("[Fire Stortm Event] Starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING) elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.min then for _, cid in pairs(getPlayersInFireEvent()) do doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end removeFireTp() doBroadcastMessage("The Fire Storm event could not start because of to few players participating.\n At least " .. Fire.players.min .. " players is needed!", MESSAGE_STATUS_WARNING) ZerarStorFire() elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) >= Fire.players.min then removeFireTp() doBroadcastMessage("Good Lucky! The event will start on "..Fire.timeToStartEvent.." seconds. get ready!") addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1) end addEvent(CheckFireEvent, 60000, delay-1) endend]]></config><globalevent name="Storm_Fire_Start" interval="60" event="script"><![CDATA[domodlib('fire_config')function onThink(interval, lastExecution) if Fire_Days[os.date("%A")] then local hrs = tostring(os.date("%X")):sub(1, 5) if isInArray(Fire_Days[os.date("%A")], hrs) and getGlobalStorageValue(Fire.storages[2]) <= 0 then local tp = doCreateItem(1387, 1, Fire.teleport[1]) doItemSetAttribute(tp, "aid", 45111) CheckFireEvent(Fire.CheckTime) setGlobalStorageValue(Fire.storages[1], 0) end end return trueend]]></globalevent><event type="login" name="Storm_Fire_Login" event="script"><![CDATA[domodlib('fire_config')function onLogin(cid) registerCreatureEvent(cid, "FireStormBatle") if isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end return trueend]]></event><event type="combat" name="FireStormBatle" event="script"><![CDATA[domodlib('fire_config')if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then doPlayerSendCancel(cid, "You may not attack this player.") return falseendreturn true]]></event><movevent type="StepIn" actionid ="45111" event="script"><![CDATA[domodlib('fire_config')function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, Fire.teleport[2]) end if getPlayerLevel(cid) < Fire.minLevel then doTeleportThing(cid, fromPosition, true) doPlayerSendCancel(cid, "You need to be at least level " .. Fire.minLevel .. ".") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end if getGlobalStorageValue(Fire.storages[1]) <= Fire.players.max then doTeleportThing(cid, Fire.teleport[2]) setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1) doBroadcastMessage(getPlayerName(cid) .. " entered the fire stortm event! Currently " .. getGlobalStorageValue(Fire.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED) if getGlobalStorageValue(Fire.storages[1]) == Fire.players.max then setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1) removeFireTp() doBroadcastMessage("The event will start on "..Fire.timeToStartEvent.." seconds. get ready!") addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1) end end return trueend]]></movevent><talkaction words="/firestart;!firestart" access="5" event="buffer"><![CDATA[domodlib('fire_config')if getGlobalStorageValue(Fire.storages[2]) > 0 then doPlayerSendCancel(cid, "The event is already starting.") return trueelseif not param or not tonumber(param) then doPlayerSendCancel(cid, "Use only numbers.") return true endlocal param = tonumber(param) <= 0 and 1 or tonumber(param)local tp = doCreateItem(1387, 1, Fire.teleport[1])doItemSetAttribute(tp, "aid", 45111)CheckFireEvent(tonumber(param))setGlobalStorageValue(Fire.storages[1], 0)setGlobalStorageValue(Fire.storages[2], 1)]]></talkaction><globalevent name="FireDebug-Start" type="start" event="buffer"><![CDATA[domodlib('fire_config')ZerarStorFire()return true]]></globalevent></mod> Baixa esse arquivo e adicione no seu servidor no respectivo lugar.! fire lua.rar fire lua.rar1 ponto -
Assistam em tela cheia para que possam ler: A PROPOSTA Provavelmente, alguns de vocês certamente já ouviram falar de Temeris RPG, quando o anunciamos pela primeira vez há quase dois anos. Após o desinteresse de nossa equipe, (dupla), decidimos retomar com amor e carinho esse projeto que consideramos tão grandioso. Reaproveitamos algumas ideias, mas outras foram repensadas e acabamos nos alegrando com os resultados, decidindo publicá-lo novamente. Não é nossa intenção escrever aqui um texto longo, descrevendo cada detalhe e curiosidade que adicionamos no servidor. No lugar disso, a vontade de nossos corações é que os jogadores mergulhem no mundo de Temeris e explorem por conta própria as terras fantásticas que, juntos, nós demos vida. Nosso objetivo é simples e claro: produzir um RPG, onde a exploração perigosa e recompensadora transborda por escuras cavernas e altas montanhas; é retratar o Tibia como o que ele é em sua mais profunda essência, um MMORPG feito de jogadores para jogadores. Vocês poderão escolher entre seis raças, cada uma guardando uma particularidade. Coleta Em Temeris você poderá coletar diversos itens com a utilização de faca ou picareta. Isso lhe possibilitará meios de obter itens muito poderosos e raros, seja por forja ou alquimia. Forja Com os objetos obtidos na coleta, você poderá forjar diversos itens, raros ou comuns, para facilitar suas viagens pelas terras sombrias de Temeris ou aumentar sua renda. Alquimia Também com os itens obtidos na coleta, você poderá criar poções, estas que servem de alternativa às runas e ainda possuem efeitos especiais, mais conhecidos como buffs. Ausência de luz ambiente Nosso objetivo é transmitir uma imersão muito distinta dos servidores comuns de Tibia. Aqui, não há ambient light: optamos por retirá-lo para manter uma identidade única e relembrar os tempos passados de Tibia. Magia branca e negra Magic Level? Não, nada disso. Aqui existem duas classificações de magia: a branca, voltada ao suporte do próximo e status positivos, e a negra, voltada ao dano e status negativo. Mas lembre-se, algumas magias serão tão poderosas que somente com o uso de canalizadores poderão ser executadas. Magia de alma Alma agora possui um objetivo diferente. Agora, existem também magias que farão seu uso, como foi descrito na história. Cada raça possui uma magia de alma única, mas poderão aprender outras ao longo de sua jornada. Tipos de combate Axe? Club? Sword? Não mais: agora, você se especializará com arma de duas mãos ou uma mão. Distância continua da mesma forma. Não se sinta preso a uma destas formas, já que você poderá aprender todas livremente. Habilidades específicas, condecoradas de técnicas especiais, deverão ser utilizadas somente com o tipo de arma correto equipado. Músicas Em locais específicos você poderá sentar-se e dançar ao som de músicas. A maioria das tavernas do jogo possuem temas escolhidos somente para elas, tornando-as únicas. Além disso, em certas masmorras também haverão músicas. E você, como um jogador, também poderá tocar músicas com as Palavras de Poder para encantar seus aliados. Estalagens Em algumas estalagens, além de escutar músicas, você também poderá dormir e regenerar sua mana e vida e a alma. Poções com exaustão Não mais deixaremos prevalecer o PVP onde aquele que carrega mais poções vence. Agora, as poções possuem exaustão, bem mais longa e demorada que a comum vista em magias. acesse o site para baixar e jogar agora: temeris.zapto.org:80801 ponto
-
[Encerrado] Action ID e UP
Slaybaman verde reagiu a Tingasgo por um tópico no fórum
Então galera, de novo aqui mas dessa vez queria pedir 3 coisas mais fáceis: 1: Então eu queria colocar pra quando o player upar o pokemon recarregasse a vida. 2:Uma alavanca que verifica se você tem uma storage e se você tiver ele te teletransporta pra algum lugar. (RESOLVIDO) 3:Como aumentar esse "(itemsss, sep1, sep2)" para ter mais... segue o function: OBS: Só uma perguntinha extra como cria spoiler, aquele "citar"? Obrigado pela atenção! Rep+++ pra quem resolver essas minhas perguntas queria muito resolver isso ^^ muito obrigado pela atenção xD1 ponto -
Como fazer um For infinito /(Loop infinito) em lua?1 ponto
-
Sinceramente eu nem sei como esse script consegue concatenar uma tabela usando o operador de atribuição(..). Isso em lua resulta em erro. Sinceramente, esse é o tipo do sistema que eu prefiro refaze-lo do que remenda-lo.1 ponto
-
[Encerrado] Utilizando o For
Deadpool reagiu a DuuhCarvalho por um tópico no fórum
Eu sei que a duvida já foi sanada, mas poderia me dizer a utilidade disso ?1 ponto -
Utiliza um while ou repeat. Mas caso tenha que ser exatamente o for, então faça assim. Sóque ele sempre vai ser 0 (zero).1 ponto
-
2- local text = "msg"local pos = {x=2510, y=2233, z=14} --locallocal stor = 65423 function onUse(cid, item, fromPosition, itemEx, toPosition)if getPlayerStorageValue(cid, stor) >= 1 then doTeleportThing(cid, pos) doPlayerSendTextMessage(cid, 25, text)else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "x") endreturn trueend Para criar Spoiler use assim: [spoiler.] Mensagem aqui [/spoiler.] (sem os pontos)1 ponto
-
[SPELL] Teleport to City
Slaybaman verde reagiu a Crypter por um tópico no fórum
Esta spell ao ser utilizada pelo player teleporta ele para sua cidade com um delay para se teleportar. spells.xml <instant name="Konoha teleport" words="Konoha teleport" lvl="1" mana="0" prem="1" aggressive="0" selftarget="1" exhaustion="10000" needlearn="0" event="script" value="citytp.lua"> </instant> citytp.lua function onCastSpell(cid, var) local waittime = 15.0 -- Tempo de exhaustion local storage = 115518 local function doTeleport(cid, count) if (not isPlayer(cid)) then return true end doSendAnimatedText(getCreaturePosition(cid), (10 - count).."s", COLOR_ORANGE) doSendMagicEffect(getCreaturePosition(cid), 54) if (count == 10) then return doCreatureSetNoMove(cid, false) and doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) else addEvent(doTeleport, 1000, cid, count + 1) end return true end if (not isPlayerPzLocked(cid)) then if (not getCreatureCondition(cid, 1024)) then return doCreatureSetNoMove(cid, true) and doTeleport(cid, 0) else doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"You cannot use this command while you are infight.") return false end else doPlayerSendTextMessage(cid,MESSAGE_STATUS_SMALL,"You cannot use this command while you are pz locked.") return false end end1 ponto -
Script function onUse(cid, item, fromPosition, itemEx, toPosition)local waittime = 3.0 -- Tempo de exhaustionlocal storage = 9999 -- storagelocal pid = getCreaturePosition(cid)local cura = 2000 -- qnt hp/mana vai curar if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, " Exausted ... " ) else doCreatureAddMana(cid, cura) -------- LEIA : ESTA SCRIPT ESTA CONFIGURADA PARA MANA , SE QUISER QUE SEJA HP BASTA MUDAR A PALAVRA " Mana " PARA A PALAVRA " Health " doPlayerRemoveItem(cid, thing.uid, 1) exhaustion.set(cid, storage, waittime ) doSendAnimatedText(pid, "+"..cura.."", 65) end return trueend XML <action itemid="13468" event="script" value="ramen.lua"/>1 ponto
-
[WEAPON] Wand com Critico
PablinRush reagiu a Sttorm por um tópico no fórum
XML <wand id="2524" level="100" event="script" value="sound.lua"> </wand> SCRIPT local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 4)setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -7.2, 1, -3.3, 1)local critical = createCombatObject()setCombatParam(critical, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)setCombatParam(critical, COMBAT_PARAM_DISTANCEEFFECT, 2)setCombatFormula(critical, COMBAT_FORMULA_LEVELMAGIC, -14.2, 1, -6.3, 1)function onUseWeapon(cid, var)local chance = 5 -- porcentagem de chance de dar criticalif isCreature(getCreatureTarget(cid)) and math.random(1,100) <= chance thendoCombat(cid, critical, var)local targetpos = getCreaturePosition(getCreatureTarget(cid))local pos = {x=targetpos.x+1, y=targetpos.y+1, z=targetpos.z}doSendMagicEffect(pos, 86)doSendAnimatedText(getCreaturePosition(cid), "S O U N D!", math.random(1,255))elsedoCombat(cid, combat, var)endreturn trueend1 ponto -
(0.3.6-0.4]Global-events[TOP 5 FRAGS no BroadCast]
Mendiguinho91 reagiu a Crypter por um tópico no fórum
Oque a script faz?? Anuncio os top5 jogadores com mais frags.! Data/globalevents/script topfrags.lua function getJogadorFrags(jogador) -- essa função já existia, só modifiquei uma parte local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. jogador .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = {day = table.maxn(contents.day),week = table.maxn(contents.week),month = table.maxn(contents.month)} return size.day + size.week + size.monthendfunction onThink(interval, lastExecution) local max = 5 -- quantidade max que vai aparecer no rank local str,k, p = "TOP "..max.." Rank Frags:\n\n", 0, {} -- n mexa em nd local players = db.getResult("SELECT `id`,`name` FROM `players`") if (players:getID() ~= -1) then repeat table.insert(p, {getJogadorFrags(players:getDataInt("id")), players:getDataString("name")}) until not players:next() end table.sort(p, function(a, b) return a[1] > b[1] end) for x = 1, table.maxn(p) do k = k + 1 str = str .. "\n " .. k .. ". ".. p[x][2] .." - " .. p[x][1] .. "" if k == max then break end end doBroadcastMessage(str, 22) return trueend TAG: <globalevent name="TopFrags" interval="3600" event="script" value="topfrags.lua"/>1 ponto -
[NTO] Kuchyose no jutsu!!
pokemonxps reagiu a Sttorm por um tópico no fórum
Venho trazer uma script que o nome ja diz tudo , você fala o nome da spell e ela invoca o summon. Spells.xml <instant name="Kuchyose gamaguren" words="Kuchyose gamaguren" lvl="200" mana="2500" prem="0" aggressive="0" exhaustion="10000" needlearn="0" event="script" value="naruto/pet.lua"> <vocation id="1"/> </instant> Configure de acordo com o que está pedindo , exemplo : Lvl : 200 -- Coloque o level que o player poderá usar a spell. Script ( Explicações na propria script ) function onCastSpell(cid, var)local from,to = {x=962, y=885, z=7},{x=973, y=892, z=7} -- começo e final do mapalocal from2,to2 = {x=979, y=901, z=7},{x=991, y=905, z=7} -- começo e final do mapalocal playerpos = getPlayerPosition(cid)local position1 = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} -- Não mechalocal position2 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z} -- Não mecha local MaximoSummon = 1 --- Maximo de Monstros Sumonados!! No Caso So Posso Sumonar 1 Cloneslocal monster = "Gamaguren" -- Nome do monstro que será sumonadolocal effect = 5local summons = getCreatureSummons(cid)if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) thendoPlayerSendCancel(cid, "Você não pode usar Summons Aqui!") return trueendif(table.maxn(summons) < MaximoSummon) then -- no summonslocal clone = doCreateMonster(monster, playerpos)doConvinceCreature(cid, clone)doSendMagicEffect(position1, effect)doSendMagicEffect(position2, effect)doPlayerSendTextMessage(cid,27,'Kuchyose no Jutsu.') return TRUEendend1 ponto -
Sistema simples que ao pisar em "X" item com a action id ele explode // Em data/lib Crie um arquivo chamado Mine.lua function setItemAid(uid, value)return doItemSetAttribute(uid, 'aid', value)endfunction removeBomba(pos, id)local item = getTileItemById(pos, id) if item.uid > 0 then doRemoveItem(item.uid) endreturn trueend Em data/movements/scripts Crie um arquivo chamado Mine.lua local config = {effect1 = 4, -- efeito ao pisareffect2 = 5, -- efeito ao explodirmsg = "Você foi acertado pela bomba.", -- msg que manda pra quem for acertadomindmg = 100, -- dmg minimo que tira (nao é necessariamente o dano que vai sair do cara pois precisa desconsiderar as defesas dele antes)maxdmg = 300, -- dmg maximo que tira (nao é o dano que vai sair do cara)self = true -- true/false pra ativar/desativar dano no cara que colocou a bomba caso ele mesmo passe na bomba.}local arr = {{0, 1, 0},{1, 3, 1}, -- area que vai acertar ao explodir a bomba{0, 1, 0},}local area = createCombatArea(arr)function onStepIn(cid, item, position) local player = getPlayerByNameWildcard(getItemAttribute(item.uid, 'ref')) doSendMagicEffect(position, config.effect1) if isCreature(player) then doAreaCombatHealth(player, COMBAT_FIREDAMAGE, position, area, -config.mindmg, -config.maxdmg, config.effect2) end if ((cid == player and config.self) or (not isPlayer(cid)) or (not isCreature(player))) then doCreatureAddHealth(cid, -1 * math.random(config.mindmg, config.maxdmg)) doSendMagicEffect(position, config.effect2) end if isPlayer(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msg) end doRemoveItem(item.uid)return trueend Em movements.xml <movevent type="StepIn" actionid="13245" event="script" value="Mine.lua"/> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Caso voce queira rodar esse movements em uma spell data/spells/scripts: Crie um arquivo chamado mine.lua local config = {itemid = 2180, -- Id do item que ira explodir duration = 10, -- duração para ser removidaactionid = 13245, --Nao mechaeffect = 1, -- efeitomsg = "Planted explosive mine!" -- mensagemcooldown = 120, --- tempo entre um uso e outro em segundo}function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 55695) >= config.cooldown then setPlayerStorageValue(cid, 55695, os.time()) local position = getCreaturePosition(cid) local item = doCreateItem(config.itemid, 1, position) setItemAid(item, config.actionid) doItemSetAttribute(item, 'ref', getCreatureName(cid)) doCreatureSay(cid, config.msg, 20) doSendMagicEffect(position, config.effect) addEvent(removeBomba, config.duration * 1000, position, config.itemid) elsedoPlayerSendCancel(cid, "Aguarde "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55695))).." segundos para plantar outra bomba!") endreturn trueend Em Spells.xml <instant name="Explosive Mine" words="Explosive Mine" lvl="1" mana="1" prem="0" aggressive="1" exhaustion="1000" needlearn="0" event="script" value="mine.lua"> <vocation id="1"/></instant> Se Voce Gostou da script da um REP+ e me Segui .!1 ponto
-
Mano... tudo isso escrito em verde, após os 2 traços "--" são comentários, não faz diferença, pode apagar se quiser, edita onde NÃO está em comentário.1 ponto
-
poderia me dar 1 mao? é o com esse msm script mas pra a proffisao, queria q quando usar o item da proffisao stylist (2553), adventurer (11454) , Teacher (11455) no NEWID (Item que é transformado depois de cortado no caso do stylist} fizer esse efeito de se transformar em varios items aki o script action: Lib1 ponto