Histórico de Curtidas
-
Source deu reputação a hellz01 em Bloquear Acesso do Account Manager No SiteOla Galera Estou com uma duvida em meu site para usar o account manager + o Gesior junto consigo faser tudo certo seguindo mais quando chega na parte de bloquear o acesso da conta do account manager no site nao consigo bloquear ai qualquer player tem acesso e muda a senha ou deleta o account manager eu sei que tem algo relaciona com o accountmanagement.php do Gesior ja tentei mexer la e nao consegui alguem pode me ajudar ? grato rep + para quem ajudar
-
Source deu reputação a Adriano SwaTT em Bloquear Acesso do Account Manager No SiteBoa tarde,
Para quem não obteve êxito no bloqueio com o código acima.
No mesmo arquivo, procure por:
$account_players = $account_logged->getPlayersList();
E adicione este abaixo:
$acc_id = $account_logged->getId(); if($acc_id == 1) die("Está conta está BLOQUEADA."); (Mesmo código só que em lugar diferente pois comigo também não havia funcionado do outro modo)
Salve e teste.
Lembre-se de atualizar a página antes de testar.
Boa sorte.
-
Source deu reputação a ZORAN em [Tutorial] Compilando TFS v1.0 com MSVC 2013Olá amigos da Comunidade Tibiaking venho trazer a vocês este tutorial de como compilar o TFS v1.0 em windows 32 or 64 bits com Microsoft Visual Studio 2013 (Obs: Eu uso a 2013 Ultimater Recomendo). Vamos ao tutorial >> 1) Primeito baixe os programas abaixo se não tiver claro: MSVS 2013 >> Click Here http://www.visualstudio.com/downloads/download-visual-studio-vs Agora baixar os Programas do TFS v1.0: TFS Sdk >> Click Here - Link 2: (Mirror)
Source Do TFS v1.0 >> Click Here
Atenção Baixe apenas a Boost da versão do Pc 32 or 64 Bits. Boost MSVS 2013 32Bits >> Click Here
Boost MSVS 2013 64Bits >> Click Here
2) Agora vamos começar a instalar os Programs do TFS v1.0 >> Primeiro instale o Boost 32 or 64Bits No diretorio raiz do seu HD: Print >>
Agora coloque o SDK Extraido na raiz do Seu HD: Print >> Faça a mesma coisa com a source do TFS v1.0: Print>> Depois de ter feito tudo isso abra a pasta da source e abra a pasta vc12 e siga a print: ( Obs: Você vera Boost32 isso acontece porque na instalação eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost ( A letra C:\ Refere-se a letrado do seu HD ela pode ser D - H - F e Etc... Varia de Pc a Pc.) ) Print >> Com o Visual Studio (2013 Recomendado) aberto Siga as Prints abaixo: Click com botão direito no projeto e vá em propriedades: Print >> Depois Click em Cofiguration manager: Print >> Vamos as explicações: 1 >> Click la Primeiro Quando abrir a caixa com os passos 2-3 and 4 siga-os abaixo >> 2>> Coloque release e só nada mais. 3>> escolha para qual sistema de 32 or 64Bits. (Lembrado que ali e de acordo com a Boost oks. ) 4>> Só Click lá quando terminar de fazer os passos acima. Rsrs.] ------------------------------------|||||------------------------------- 3) Terceira parte Passos 1 do tutorial vamos lá >> Primeiro agora depois de fazer os passos anteriores faça os seguintes passos Click em C/C++ >>> General e siga a Print: Print>> Caso você não entendeu siga as explicações: Vamos as explicações: 1>> Onde você Deve clicar C/C++ >> General. 2>> Click onde a seta esta apontado e click em edit ou de dois clicks. 3>> Quando abrir a caixa de dialogo deixe os diretórios iguais ao da foto e de um Ok. ( Obs: Você vera Boost32 isso acontece porque na instalação eu coloquei no diretório como Boost32 (Primeira foto) mas basta você deixar como C:\Boost ) Terceira parte passo 2 Click em Linker >> General e siga as Prints >> Prints >> Vamos as explicações: 1>> Onde você deve Clicar depois de fazer os passos anteriores da terceira parte passos 1. Oks. 2>> igual ao passo 2 da parte 1 da terceira parte só que mais explicativo. 3>> Click em Edit e espere abrir a caixa de Dialogo siga a Print 2. Print 2>> Deixe igual a caixa de dialogo onde esta marcado com o 1 Grande Oks. Depois basta da um OK e um Apply e Ok e esperar aparecer Ready >>
Print>> Explicações: 1>> Esperar o Ready. 2>> Click com o botão direito no projeto e depois em BuilD. Basta Esperar terminar a compilação e Pronto. Caso o tutorial não tenha sido bem explicativo Posso melhorá-lo a sugestão e depois posto a foto final da compilação Oks. Se quiser me agradecer eu serei grato pois deu trabalho fazer esse tutorial pois bugo algumas vezes. Um grande abraço e fiquem com Deus! Nota: Eu Tenho permissão do autor do tutorial Original em Inglês para criar o post em PT-Br Não e permitido copiar ou reproduzir sem a devida autorização de Dominique120. Não e permitido postar o Faq do mesmo aqui neste tutorial para ver mais informações siga o LINK ou Veja os #créditos. #Creditos: -------------------///------------------ Dominique120 >> Click aqui para ver o tutorial original -------------------///-------------------- ZORAN >> Click aqui para ver o meu perfil -
Source deu reputação a xWhiteWolf em [Boss Skill] Aegis of Immortalvc precisaria trocar o onStatsChange que não existe mais por onHealthChange e fazer as edições necessárias..
-
Source deu reputação a xWhiteWolf em TauntTaunt é uma magia bem simples que eu fiz me baseando na New Library, pra magia funcionar no seu servidor você vai precisar ter a New Lib instalada (veja esse tópico http://www.tibiaking.com/forum/topic/46015-new-library-v-10/)
A magia em si não tira dano, ela apenas provoca um inimigo fazendo ele andar até a sua direção mas ela possui uns efeitos bem legais e acho que vai ser ótima pra um servidor com bastante foco em RPG;
Aqui tem um pequeno GIF mostrando como a magia funciona.
Bom, dito isso vamos para o código da spell.. como a função taunt já existe na new lib tudo que vc vai precisar adicionar no script da spell é isso daqui:
local config = { walks = 4, -- qnts passos ele vai dar delay = 750, -- de qnts em qnts milisegundos ele dá cada passo speed = 100 -- velocidade que ele vai ficar enquanto estiver sob efeito do taunt } function onCastSpell(cid, var) Taunt(cid, variantToNumber(var), config.delay, config.walks) doChangeSpeed(variantToNumber(var), (config.speed - getCreatureBaseSpeed(variantToNumber(var)))) addEvent(function() if isCreature(variantToNumber(var)) then doChangeSpeed(variantToNumber(var), (-config.speed + getCreatureBaseSpeed(variantToNumber(var)))) end end, config.delay * (config.walks + 1)) return true end
e você configura ali no 300 que é o tempo em milisegundos entre cada passo e 4 é o número de passos que o monstro/player vai andar na sua direção.
Agora é só adicionar isso daqui no spells.xml:
<instant name="TK" words="taunt" lvl="8" mana="35" prem="0" exhaustion="1500" range="4" needtarget="1" needlearn="0" event="script" value="taunt.lua"> </instant> Espero que vocês gostem da spell e façam um bom proveito!
Edit: Deixei o efeito do taunt mais bonito, espero que tenham gostado
-
Source deu reputação a dezon em Shop Admin Gesior 2012 (TFS 0.3.6 ~ 0.4, 1.0)[+] Shop Admin Gesior 2012 (TFS 0.3.6 ~ 0.4, 1.0) [+]
[+] Nova versão 2015 [+]
Olá pessoal!
Quero apresentar a mais nova versão do meu script para administrar Web Shop do Gesior 2012.
[+] O que tem de novo?:
O script foi revisado; Comentado as principais partes; Escrito algumas funções e ações novas; Revisado anti-inject; Agora você pode adicionar pontos para quem fizer doação; De uma forma geral, foi revisado de cabo à rabo ! [+] Imagens:
[+] Galeria de imagens online
http://postimg.org/gallery/1ssnwbf1i/
[+] Instalação:
Basta você ter o Gesior 2012 instalado junto aos scripts LUA de shop do mesmo; Ter o banco de dados instalado e um servidor TFS 0.3.6+, TFS 1.0, 1 rodando também.
+ Vá na pata {seu_web_server}\www ou htdocs\pages\ e renomeie o arquivo 'shopadmin.php' para 'shopadmin.php.old';
+ Faça download do script novo e cole na pasta que citei à cima;
+ Faça download desse arquivo http://item-images.ots.me/items_images_1076.zip;
+ Copie e cole a pasta que vem dentro desse arquivo e cole na pasta {seu_web_server}\www ou htdocs\images\ ficando assim {seu_web_server}\www ou htdocs\images\items\ e dentro dessa pasta as imagens dos itens do tibia;
+ Pronto!
[+] Download:
http://www.mediafire.com/view/z62d9zxylpg36dz/shopadmin.php
[+] Scan:
https://www.virustotal.com/pt/file/c06a2f7e1c1909b34f4dee2a7c27930a6c7cad1882edfcdf101689b0b61899d9/analysis/1399682407/
[+] ATENÇÃO: Bug encontrado:
Na realidade o shopadmin.php desenvolvido por mim, não contém bug's, ele faz o registro das ofertas corretamente, o que eu não consegui consertar foi o data/globalevents/scripts/others/shop.lua.
Ele não consegue criar o container e adicionar os itens dentro desse container da oferta cadastrada, exemplo: se você criar uma BP de SD, dá o seguinte erro:
Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/others/shop.lua:onThink LuaScriptInterface::luaPlayerAddItemEx(). Item not found stack traceback: [C]: in function 'addItemEx' data/lib/compat/compat.lua:363: in function 'doPlayerAddItemEx' data/globalevents/scripts/others/shop.lua:50: in function <data/globalev ents/scripts/others/shop.lua:7> Claro que estou correndo atrás de resolver esse problema, mas se por um acaso alguém tiver a solução, peço que por gentileza, poste aqui que darei os devidos créditos!
[+] Como adicionar items?
Para adicionar items ao shopping é muito fácil, basta você seguir igual eu postei nas fotos a configuração, respeitando o ID do item, Quantidade, o Tipo da oferta e etc, assim você enviará uma nova oferta para o seu site.
Para adicionar uma oferta do tipo Container (Bp, Bag, etc) é fácil também, basta você preencher como na imagem à seguir:
[+] Explicando:
Coloque o 'Nome' da oferta. Insira uma 'Descrição' para essa oferta. Diga a quantidade de 'Premium points' necessários. Selecione o tipo da oferta: 'Item' ou 'Container'. Coloque o 'ID Item 1' à ser vendido, caso seja um item normal: armadura, espada, etc. Preencha a 'Qtde. Item 1' que o player irá receber quando comprar essa oferta. Deixe em branco 'ID Item 2' e 'Qtde. Item 2'. Caso seja BP, selecione o tipo para 'Container', no 'ID Item 1' coloque o Id da BP. Em 'Qtde. Item 1' você deve colocar a quantidade para cada item dentro do container, exemplo: se for BP de Runa, para preencher a BP você terá um total de 20 slots preenchidos pela quantidade de runas do 'Qtde. Item 2', então coloque 20, pois representa a quantidade de slots dentro do container. Agora em 'ID Item 2' você coloca o ID da Runa ou do item que você está vendendo dentro do container. Preencha a 'Qtde. Item 2' com a quantidade para cada slot do container que você está vendendo. Clique em salvar. Pronto, adicionado! [+] Isso é necessário:
Lembrando que você precisa estar já com os scripts em lua funcionando corretamente do sistema de shop do Gesior 2012, você pode encontrá-los aqui: http://otland.net/threads/gesior2012-items-shop-installation-administration.170654/
Obrigado à todos!!!
-
Source deu reputação a Danihcv em Como mudar o town_id que o player recebe quando criado?Dentro do arquivo config.php que está dentro da pasta xampp\htdocs\config vc procura por ['newchar_towns'] (como o @luanluciano93 disse), aí pra esoclher o ID da cidade, vc muda o valor dentro do array(1)
O numero em vermelho é o ID da town.
-
Source deu reputação a Charles Santos em Mostrar Set do PLAYER ( AJUDA )MODIFIQUE A SUA CHARACTERS.PHP POR ESSA.
characters.php
-
Source deu reputação a Danihcv em [Duvida]Como mudar a posição do temploExecuta isso na sua data base:
UPDATE `NOME DA SUA DATA BASE`. `players` SET `town_id` = "2", `posx` = "32369", `posy` = "32241", `posz` = "7" Não esqueça de configurar tudo aí. Coloque o nome da sua data base no lugar indicado, em town_id coloque o id da cidade que vc qr que os players nasçam e em posx, posy e em posz coloque as coordenadas certas do templo dessa cidade.
-
Source deu reputação a xWhiteWolf em Critical Skill Systemsim cara, funciona pra tudo esse critical aí.
-
Source deu reputação a xWhiteWolf em Critical Skill Systemobrigado hahaha espero que daqui a um tempo eu possa entrar num server famoso e ver um dos meus scripts lá *-*
EDIT: arrumei o erro que dava qnd vc passava em fire field's ou até mesmo qnd usava a função doPlayerAddHealth pra retirar vida.
substituam a versão anterior por essa nova.
-
Source deu reputação a xWhiteWolf em Critical Skill Systemsim, a chance do critical é definida por um storage:
if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000)
Se o valor do storage * 3 for igual ou maior que um numero aleatorio entre 0 e mil solta o crítico. Se vc quiser que todos os players tenham crítico é só colocar no login.lua pra se o player tiver esse valor de storage = -1 então setar pra 50. Daí todos os players terão 15% de chance de dar crítico. No creaturescripts onAdvance vc tb pode colocar pra ganhar 1 ponto por nível (setar o storage como sendo o storage +1).. Dá pra vc editar praticamente do jeito que vc quiser, por isso é um system
-
Source deu reputação a xWhiteWolf em Critical Skill Systemagora dá
--[[Critical System By Night Wolf]] local lvlcrit = 48913 local multiplier = 1.5 local efeito = 2 --- efeito que vai sair do player/criatura que tomar o crítico function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) doSendMagicEffect(getCreaturePos(attacker), efeito) return false end end return true end -
Source deu reputação a xWhiteWolf em Critical Skill SystemFala galera do TK, vejo que tem bastante gente procurando esse sisteminha que é praticamente igual ao dodge system, então eu decidi fazer visto que na realidade era só mudar 3 linhas kkkk em todo caso ta aí pra quem quiser:
creaturescripts.xml:
<!-- CRITICAL SYSTEM --> <event type="statschange" name="critical" event="script" value="critical.lua"/> creaturescripts\scripts\login.lua:
--- CRITICAL SYSTEM ---- registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48913) == -1 then setPlayerStorageValue(cid, 48913, 0) end creaturescritps\scripts\critical.lua:
--[[Critical System ------------------------- By Night Wolf]] local lvlcrit = 48913 local multiplier = 1.5 function onStatsChange(cid, attacker, type, combat, value) if isPlayer(attacker) and (not (attacker == cid)) and (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then dano = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -dano, -dano, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) return false end end return true end lvlcrit é o storage que fica salvo o seu level de critical e multiplier é o multiplicador do dano para ataques críticos.. nesse caso um ataque critico vai ser 1,5 vezes maior doque um ataque normal (50% maior)
Agora em actions.xml adicione:
<action itemid="1294" script="criticalrock.lua"/> e em actions\scripts\criticalrock.lua adicione:
--- CRITICAL System by Night Wolf local config = { effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48913 -- storage que será verificado } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,config.effectonuse) doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/"..config.levelscrit.."].") setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1) elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!") return 0 end return 1 end Feito isso tá pronto, pra editar o item que dá a skill de critical vc edita no actions.xml mesmo:
<action itemid="1294" << ID do item que será usado pra dar a skill.
A config tá bem simples:
effectonuse = 14, -- efeito que sai
levelscrit = 100, --- leveis que terão
storagecrit = 48913 -- storage que será verificado.
Lembrando que cada pedra utilizada dará 0,3% a mais de chance.. 10 pedras dão 3% de chance de dar critico a cada ataque e 100 pedras (NIVEL MÁXIMO PADRÃO) dará 30% de chance de dar crítico em cada ataque.
Espero que vcs gostem, qualquer coisa deixem os comentários aqui.
Obs: aqui tá uma foto
Note que esse script só funciona em players, se vc quiser que funcione em monstros você vai ter que abrir um por um todos os monstros do server e colocar essa tag aqui:
<script> <event name="critical"/> </script> coloque antes de </monster>
Minha dica: coloquem apenas no Trainer pra que o player consiga ver que ele tem o critical e quanto ele tira e deixem avisado que o sistema só vai funcionar em players.
-
Source deu reputação a Vodkart em (resolvido) [Dúvida] Sqm que precisa de storagefunction onStepIn(cid, item, position, fromPosition) if item.actionid == 29856 then local storage = 82736 if getPlayerStorageValue(cid, storage) <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "você precisa fazer a quest de carlin para passar aqui.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end end return true end tag: <movevent type="StepIn" actionid="29856" event="script" value="nome do seu script.lua"/>
-
Source deu reputação a GiovaniRodrigo em [Pedido] Npc Que Teleporta Por LevelCrie um arquivo chamado James.lua na pasta data/npc/scripts e cole isso
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 local cfg = { toPos = {x=359, y=1667, z=7}, -- Posição que o jogador sera teleportado level = 170, -- Level necessário para ser teleportado price = 50 -- Dinheiro a ser cobrado para ser teleportado } 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, 'rocket') then selfSay('You are sure you want to go? You can not return.', cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if getPlayerLevel(cid) >= cfg.level then if doPlayerRemoveMoney(cid, cfg.price) then doTeleportThing(cid, cfg.toPos) talkState[talkUser] = 0 else selfSay('You don\'t have enough money.', cid) end else selfSay('You need level having above '.. cfg.level ..'.', cid) end elseif msgcontains(msg, 'no') then selfSay('Skirt here!', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configurando
Crie um arquivo chamado Kiru.xml na pasta data/npc e cole isso
<?xml version="1.0" encoding="UTF-8"?> <npc name="James" script="data/npc/scripts/James.lua" walkinterval="25" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="128" head="114" body="12" legs="57" feet="114" addons="0" /> <parameters> <parameter key="message_greet" value="Hello, |PLAYERNAME|! Would like to travel to {rocket} quest?"/> <parameter key="message_walkaway" value="Hey Hey, where you go ?"/> <parameter key="message_farewell" value="Bye bye!"/> </parameters> </npc>
Não testado.
Dúvidas? Me avise.
Att.
Giovani Rodrigo
-
Source deu reputação a dolver em (8.60)The Forgotten Server 0.3.6 ~ [Crying Damson]V8.2Versão 8.2 ~
E ai brothers, beleza? To trazendo pra vocês hoje um servidor que tem aqui já, mas é uma versão anterior e está com os links quebrados.
Este servidor foi testado durante 15 horas online, ele não caiu, está muito mais estável que as versões anteriores.
Palavras do criador:
Porque eu vou disponibilizar isto? Porque meu servidor fechou e eu não preciso mais disto aqui, eu coloquei o servidor em um exe 0.3.6 e editei os monstros, spells, etc...
O que eu quero? Apenas REP+ me deixaria feliz. eu não quero dinheiro e também não vou destruir o computador de ninguém com isto, vou postar um link de Scan.
Se você quiser disponibilizar isso em outro site, por favor coloque meus créditos.
Depois de ter minha caixa de mensagens/e-mails lotada de mensagens sobre bugs e falhas, eu decidi reservar algum tempo e resolver tudo que pude e excluir as coisas que causavam falhas/bugs no servidor.
Changelog(traduzido por mim):
DOWNLOADS:
Servidor compilado: Clique aqui.
Source: Clique aqui.
Lembre-se este é o TFS 0.3.6 que eu fiz upgrades para 8.60 adicionei recursos e arrumei alguns bugs. Todos os créditos para o TFS team.
Por favor, comentem e reputem! Abraço.
-
Source deu reputação a Fir3element em (Resolvido)Duvida , Como editar os creditos que aparecem no distro?otserv.cpp, só dar ctrl+v no nome de algum:
std::cout << STATUS_SERVER_NAME << ", version " << STATUS_SERVER_VERSION << " (" << STATUS_SERVER_CODENAME << ")" << std::endl; std::cout << "Compiled with " << BOOST_COMPILER << " at " << __DATE__ << ", " << __TIME__ << "." << std::endl; std::cout << "A server developed by Elf, slawkens, Talaturen, KaczooH, Lithium, Kiper, Kornholijo." << std::endl; std::cout << "Visit our forum for updates, support and resources: http://otland.net." << std::endl << std::endl;
Você deve achar umas 3x quase o mesmo code, um é pro linux, outro pra versão console e o último pra versão GUI.
-
Source deu reputação a xWhiteWolf em Dash.Uma magia que solta um dash, que é controlado ao mudar a direção que você está olhando (ctrl + seta)
~~~~Script baseado no AvaOT/Korelin
dash.lua
-- dash as it was in avaOT by Night Wolf local damage = 20 -- dano que toma qnd bate em algum obstáculo local speed = 910 -- velocidade do player ao usar o dash (vai de 0 a mil) local pzprotect = true -- nao deixa entrar em pz com a spell local distance = 15 -- quantos sqms anda local function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function onWalk(cid) if isCreature(cid) then local poslook = getCreatureLookPosition(cid) poslook.stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE if isWalkable(poslook, false, false, pzprotect) then if not isCreature(getThingfromPos(poslook).uid) then doMoveCreature(cid, getPlayerLookDirection(cid)) doSendMagicEffect(getPlayerPosition(cid), 14) else doCreatureAddHealth(cid, -damage) doSendMagicEffect(getPlayerPosition(cid), 31) doSendAnimatedText(getPlayerPosition(cid), "-"..damage , 180) end else doCreatureAddHealth(cid, -damage) doSendMagicEffect(getPlayerPosition(cid), 31) doSendAnimatedText(getPlayerPosition(cid), "-"..damage , 180) end end return true end function onCastSpell(cid, var) for i = 0, distance do addEvent(onWalk, (1001- math.min(speed, 1000)) *i, cid) end return true end no começo você edita o dano que recebe ao bater num obstáculo e aqui
local distance = 15 você configura a distancia máxima que o player percorre antes do dash acabar.
no Spells.xml você adiciona essa tag aqui
<instant name="Dash" words="utani dash hur" direction="1" lvl="100" mana="200" prem="1" exhaustion="7000" event="script" value="dash.lua"> <vocation id="7"/> <vocation id="6"/> <vocation id="5"/> </instant> EDIT:: ALGUMAS IMAGENS
-
Source deu reputação a xWhiteWolf em Energy Strike++Eai galera, sei que ando meio ausente mas hoje vim trazer um script que fiz pra um amigo via skype, fiz em uns 15 minutos e gostei de como ficou então vim compartilhar com vcs.
Trata-se de um exori vis com chance de errar o alvo e acertar os sqms em volta dele com uma % definida.
<instant name="Energy Strike" words="exori vis2" lvl="12" mana="20" prem="1" range="4" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/exoriviscomerro.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5"/> <vocation id="6"/> </instant> Ela só vai funcionar com target mas assim dá pra vc usar a criatividade e fazer uma spell mais forte que o normal só que com chance de errar e atacar uma pessoa/monstro do lado, até porque os magos não tem nada no tibia que faça eles errarem dano e essa é uma das magias iniciais então faz sentido que ele não acerte o golpe sempre.
Espero que gostem e usem o código como fonte de estudo pra criar outras magias fodas haha, abraços do lobo
Obs: uma edição que seria legal vcs fazerem seria a chance de errar ser proporcional ao ml e "experiencia" (vulgo level).
Aqui tem uma pequena imagem de eu usando a spell e errando o target.
-
Source deu reputação a xWhiteWolf em Chain LightningHoje vim trazer à pedidos uma spell do League of Legends que é a chain Lightning do personagem Ryze:
Aqui tem um vídeo explicativo:
Teoricamente está idêntico porém não tive a chance de testar então vou postar aqui e esperar que vocês me falem sobre os erros que podem dar (apesar de eu achar que não vai dar nenhum)
Crie um arquivo em data\spells\scripts chamado chainlight.lua e coloque isso dentro dele:
E agora no spells.xml:
<instant name="TK" words="chainlight" lvl="8" manapercent="8" maglv="15" prem="0" exhaustion="1500" range="4" needtarget="1" needlearn="0" event="script" value="especiais/chainlight.lua"> </instant> Qualquer duvida postem aí, e se gostou da spell é só clicar em "gostei". Vou dormir agora que faz umas 20 horas to acordado scriptando pro tk auheuha flw pra vcs
EDIT: Troquei o arquivo, a outra versão estava bugada então refiz do 0 e agora está funcionando.
EDIT2: Se você usa a New Lib ela já possui uma função pra essa spell então apenas use esse arquivo aqui:
-
Source deu reputação a xWhiteWolf em Oque um OTSERVER precisa?Fala galera do TK, hoje vim trazer pra vocês uma discussão matura:
Em sua opinião, qual seria a versão de um futuro servidor de sucesso? e oque esse servidor precisaria pra ter vocês como jogadores?
A pergunta inicialmente é direcionada à servidores alternativos (ATS) mas aceito sugestões de qualquer tipo de servidor desde 0.4 baiakão zuero 99999x até 1.1 Global. Deixem suas opiniões.
Respondam essas duas perguntas e estejam preparados pra ouvir opiniões de outros membros.
PS: Se possível tentem organizar um pouco as respostas tomando esse exemplo abaixo.
Versão: Tibia 8.6 Motivo: É uma versão que vai abrangir muitos players Oque um servidor precisaria pra me conquistar: Todas as coisas que vc gostaria/não gostaria de ver Abraços do lobo.
-
Source deu reputação a xWhiteWolf em Magia que EmpurraBom galera, a um tempo atrás um amigo pediu uma magia que empurrasse e minha primeira iniciativa foi dar uma procura por aí. A maioria dos scripts que eu achei não funcionava, o resto funcionava cheio dos mais variados bugs então eu decidi pegar um desses scripts como base e fazer a magia que empurra.
Testado e funcionando em TFS 0.3.6 (Crying Damson).
Não lembro de onde eu peguei e nem quem fez porque o autor não colocou créditos no script mas quero deixar bem claro de que
80% dos créditos vão pra esse pessoa, visto que eu apenas me baseei na metodologia dele pra fazer o script funcionar sem bugs
Sem mais delongas, vamos ao script:
OBS: Ele está 200% funcional, não empurra pra dentro de pz e nem buga de nenhuma forma.
Agora no spells.xml adicione:
<instant name="Get off here" words="exani grav" lvl="160" mana="500" prem="1" direction="1" exhaustion="2000" needlearn="0" event="script" value="empurrar.lua"> <vocation id="6"/> <vocation id="7"/> <vocation id="5"/> </instant> Faça bom proveito!!
EDIT: Algumas imagens pra vocês
PS: Dano adicionado pelo membro @Emersonssss ;]
-
Source deu reputação a xWhiteWolf em Experience SystemEai galera, eu acabei criando um sistema bem legal que você mata certos bixos e acumula parte da experiencia deles na sua arma, por enquanto tá bem rudimentar mas eu gostaria de saber a opinião de vocês.. esses leveis a mais deveriam significar oque??
Comentem as sugestões doque vocês acham que o level da arma deveria influenciar no sistema que depois eu vejo de postar ele
Uma arma +5 deveria ter oque em relação à uma arma que não tem level ainda? É isso que eu quero que vcs comentem com sugestões pra terminar o sistema. Aqui tá uma lista de coisas que eu pensei mas sintam-se livres pra falar opções que vcs considerem melhores:
• Dropar mais gold dos monstros
• Adicionar skills pro player
• Aumentar vida/mana
• Tirar mais dano (+ attack)
• Deixar ele tomando alguma condition (poison/curse/fire/energy)
• Liberar novas magias pro player
• Ao clicar nela/Ao atacar soltar um efeito bonito
• Fazer um efeito em area em volta do char que possuir uma arma de nivel alto
• Aumentar a experiencia ganha
• Roubar vida/Mana de quem atacar dependendo do level
• Aumentar chance de critical dependendo do level
Então, essas foram as coisas que eu pensei.. eu também fiz uma votação pra vcs colocarem se eu devo continuar com essa idéia ou se ela é uma merda auheuhuha
-
Source deu reputação a xWhiteWolf em Dodge System (Por Item)Fala galera do TK, hoje vim trazer pra vocês à pedidos do grande @azzouks uma versão do meu Dodge System por equips.
Explicação: É um sistema onde vc pode colocar uma % de esquiva nos itens e ao usá-los você ganha a chance de desviar dos ataques e levar somente metade do dano.
Qualquer semelhança com esse > http://www.tibiaking.com/forum/topic/8223-mod-reflect-system-01/ < mod do @Aluccard não é mera coincidência, eu usei o mod dele como base pra fazer o meu *-*
Sem mais delongas vamos ao script:
Vá na pasta do seu server e abra uma pasta chamada "mods".. lá dentro crie um arquivo com o nome que vc quiser (sério) de extensão.xml e adicione o seguinte nele:
Configurando:
Se você não manja de script então eu sugiro que vcs só alterem essa parte aqui:
em vermelho é o máximo que uma pessoa pode ter de dodge: se ela tiver usando um full set que deixe ela com um total de 99% de dodge ela só vai poder aproveitar 50%. Isso foi feito pra evitar um bug.. vocês podem se sentir livres pra alterar esse numero mas não coloquem nada muito grande pra evitar que seus servers explodam.
em verde é a porcentagem do dano que vocês vao tomar ao desviar.. nesse caso os ataques que eu der dodge darão 50% do dano (0.5)
em azul é a porcentagem inicial que todos os players vão ter. Por padrão está 0 mas se vc quiser que todos os players do seu server tenham 20% e que cada item dê 5% também é possível editando esse 0 pra 20.
Feito isso vá em data\lib\function.lua e adicione essas linhas
function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") end function doPlayerAddDodgeItem(cid, itemid, percent) local item = doPlayerAddItem(cid, itemid) doItemSetAttribute(item, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(item, "dodgePercent", percent) end Agora é só aproveitar no seu server.. toda vez que vc for usar num script vc poderá utilizar as funções getItemDodgePercent(item)
e a doPlayerAddDodgeItem(cid, itemid, percent).
Pra finalizar aqui tem um exemplo de uma quest que dá uma plate armor com 0.8% de dodge:
Espero que gostem!
EDITADO:
Fiz um script de action pra ser uma pedra que vai dar dodge nos items. Ele tem muito que melhorar mas por ora ele tá 99% pronto pra ser colocado em algum server que utilize esse dodge system.
function isHandItem(uid) -- NW based on Mock uid = uid or 0 if isInArray({1,2,3,4,5,6}, getItemWeaponType(uid)) then return true end return false end function getItemDodgePercent(itemuid) return getItemAttribute(itemuid, "dodgePercent") or 0 end function setItemDodgePercent(uid, percent) doItemSetAttribute(uid, "description", "[Dodge: "..percent.."%]") doItemSetAttribute(uid, "dodgePercent", percent) end function onUse(cid, item, fromPosition, itemEx, toPosition) level = 0 local upgrade = { [1] = {min = 1, max = 5, chance = 100}, [2] = {min = 5, max = 10, chance = 80}, [3] = {min = 10, max = 20, chance = 60}, [4] = {min = 20, max = 40, chance = 40}, [5] = {min = 40, max = 50, chance = 20} } function isWearing(uid) -- NW based on Mock uid = uid or 0 if isInArray({uid}, getPlayerSlotItem(cid, 1).uid) or isInArray({uid}, getPlayerSlotItem(cid, 4).uid) or isInArray({uid}, getPlayerSlotItem(cid, 7).uid) or isInArray({uid}, getPlayerSlotItem(cid, 8).uid) then return true end return false end if isHandItem(itemEx.uid) or isWearing(itemEx.uid) then local name = getItemName(itemEx.uid) local atual = math.floor(getItemDodgePercent(itemEx.uid)*10)/10 for i = 1, #upgrade do if string.find(tostring(name),"+".. i .."") then level = i end end if level >= #upgrade then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your item is already on max level, you can't upgrade it any further.") return true end if math.random(0,100) <= upgrade[level + 1].chance then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You leveled your "..getItemNameById(itemEx.itemid).." to ".. level+1 ..".") setItemDodgePercent(itemEx.uid, atual + (math.random(upgrade[level+1].min,upgrade[level+1].max))/10) doItemSetAttribute(itemEx.uid,'name', getItemNameById(itemEx.itemid)..' +'..(level+1)) doSendMagicEffect(toPosition, math.random(28,30)) else doRemoveItem(itemEx.uid, 1) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Your "..getItemNameById(item.itemid).." has failed and destroyed your "..getItemNameById(itemEx.itemid).." in the process") doSendMagicEffect(toPosition, 4) end else doPlayerSendTextMessage(cid, 24,"You cant refine this item.") end return true end
Note que pra colocar dodge num item ele tem que: Estar equipado se for qualquer tipo de armadura (legs, boots, helmet, armor) ou livremente (se for weapon/shield).. Necklaces, rings e pendants não são possíveis de colocar dodge.. se vc quiser que seja edita essa função dentro do script pros slots de ring e necklace mas eu não aconselharia a fazer isso.
e no xml coloque:
<action itemid="8306" script=upgraderock.lua"/>