
Tudo que luangop postou
-
Tile que só passa com X resets.
Revivendo post de 5 anos rsrs (cadê o meme da golden shovel) Mas, basta modificar essa linha: if resets and resets < item.actionid then Para: if resets and (resets + 100) < item.actionid then E no remeres, no action ID some 100 a quantia de resets. Por exemplo se você quer um tile para 20 resets, coloque actionID 120. =)
-
Dual Staff
O padrão de dual wielding é exatamente esse. Por exemplo: Se com 1 arma o player da 1 dano a cada 4 segundos, usando 2 armas dará 1 dano a cada 2 segundos, sendo cada dano respectivo à uma arma. Para somar o dano das duas armas em um único hit você teria que modificar o código da source e toda a mecânica do dual wield.
-
Ot tavando (Journal)
Garanto que esse arquivo nada tem ha ver com o ot cair. Isso é o próprio sqlite que cria para ir salvando o que está acontecendo na database antes de dar overwrite na database em sí.
-
TFS 3.6 No Linux
O mais utilizado para tfs 0.3.6 é o Ubuntu 14.04, existem vários tutoriais de compilação na internet.
-
[Action] Script de reviver pro ultimo SQM de minha morte (duvida)
Basta adicionar nesta parte: local block_area = { {{x=37770,y=36153,z=10}, {x=37796,y=36181,z=10}}, -- range 1 {{x=37770,y=36153,z=10}, {x=37796,y=36181,z=10}}, -- range 2 {{x=37770,y=36153,z=10}, {x=37796,y=36181,z=10}}, -- range 3 e por ai vai -- pos esquerda superior, pos direita inferior -- para adicionar mais areas basta colocar , e adicionar 2 novas posições }
-
Poup Up
local storage = "45451" local msg = [[ Seja Bem Vindo ao Azeroth Server Site: azerothserver.servegame.com Facebook: Azeroth Server Para acessar novas hunts diga: /ir No seu Default ira apararecer uma lista com os locais. Exemplo: /ir troll Info:Comando !info (Para informacoes do Servidor) Comandos: !commands (Para saber seus comandos) Promotions: (VIP Automatico) Humanos e Elfs NPC Malakias - Azeroth Orc's NPC General Khaz - orcpromo Premios: Level 40 - Boots Of Haste Level 60 - Tarrasque Ring Level 100 - Winged Helmet Treiners em Khalarar Treining Offline - /ir treineroff Para maiores informacoes acesse o site do servidor Em breve teremos mais informacoes. Atenciosamente, Azeroth Team.]] if getPlayerStorageValue(cid, storage) == - 1 then setPlayerStorageValue(cid, storage, 0) addEvent(doPlayerPopupFYI, 3000, cid, msg) end Te mostrei 2 coisas de uma vez: Para adicionar delay em algo, utilize addEvent. E para criar um texto grande com espaçamento como você fez, fica mais fácil de digitar da forma que eu fiz, substituindo o " por [[ e ]]
-
[ERRO] Problemas em deixar o OT Online (obs: comentado com fotos!!)
Poxa amigo, se resolveu poderia adicionar palavras-chave no tópico relacionado ao problema, e postar a solução para poder ajudar outras pessoas que tenham dúvidas no futuro! Mas, mesmo assim, que bom que conseguiu resolver!
-
Mudar posição na Action
-- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 100 -- chance de curar em cada volta da aura, em porcentagem quantheal = 1 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 5000 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 97 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 92 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) if(isCreature(cid)) then local atual = {x = getPlayerPosition(cid).x + 1, y = getPlayerPosition(cid).y + 0, z = getPlayerPosition(cid).z} local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendMagicEffect(getPlayerPosition(cid), tipoaura) else doSendMagicEffect(getPlayerPosition(cid), tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendMagicEffect(getPlayerPosition(cid), tipoaura) elseif(i<8) then doSendMagicEffect(getPlayerPosition(cid), tipoaura) end if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then return efeitosAura(1,0,cid) else return TRUE end else return TRUE end end function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Aura desligada!") else doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) end return TRUE end
-
NPC que só deixa voce passar se nao tiver item na mochila
Qual servidor ou website você utiliza como base? Aqui você deve colocar qual SERVIDOR (TFS/OTX) você usa. Por exemplo: Tfs 0.3.6 / Tfs 0.4 / Tfs 1.x ... Se você já tiver um NPC que faça algo parecido e só falte adicionar a parte de verificar o item, poste que ajuda bastante.
-
Como por Dois Effect em um move só
doSendMagicEffect({x = pos[n].x, y = pos[n].y + 1, z = pos[n].z}, 187)
-
addManaSpentInPvPZone = false
Só essa parte: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } return ConditionGeneric::executeCondition(creature, interval); } Muda para isso: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(creature->getZone() != ZONE_PROTECTION) { if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(internalManaTicks >= manaTicks) { internalManaTicks = 0; creature->changeMana(manaGain); } } return ConditionGeneric::executeCondition(creature, interval); } Não esqueça de compilar novamente.
-
addManaSpentInPvPZone = false
condition.cpp na função bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) Se não tiver conhecimento de C++, poste aqui a função toda para que eu analise. Lembrando que alterações na source requer compilar novamente depois.
-
addManaSpentInPvPZone = false
Bom, creaturescript não é.. Sua source é custom? provavelmente é na source isso.
-
Ajuda Regeneração de Stamina OFF
Bastava você simplesmente ler o código... timeToAdd = 3, -- intervalo de tempo para adicionar. Ou seja ~> a cada 3 minutos vai ganhar stamina. addTime = 5, -- quanto vai adicionar. ~~> A cada timeToAdd minutos vai encher timeToAdd stamina.
-
addManaSpentInPvPZone = false
Você verificou se não existe nenhum creaturescript fazendo isso? Pode ser um script criado justamente para fazer essa regeneração.. Se quiser poste seu creaturescripts.xml que eu analiso.
-
Spell Createitem
local cfg = { item = 7590, infinite = true, --Poderá pegar o item infinitas vezes? [true/sim] [false/não] tempo = 10, -- tempo em segundos para o item sumir. storage = 91991, -- storage para o exhaust. exstTime = 50 -- tempo em segundos do exhausted. } local storage = 91838 function onCastSpell(cid, var) if getPlayerStorageValue(cid, cfg.storage) > os.time() then return doPlayerSendCancel(cid, "Aguarde ", getPlayerStorageValue(cid, cfg.storage) - os.time() ," segundos para usar novamente.") and false end if cfg.infinite then doPlayerAddItem(cid, cfg.item, 1) addEvent(doPlayerRemoveItem, cfg.tempo*1000, cid, cfg.item, 1) setPlayerStorageValue(cid, cfg.storage, os.time()+(cfg.exstTime*1000)) else if getPlayerStorageValue(cid, storage) < 1 then doPlayerAddItem(cid, item, 1) addEvent(doPlayerRemoveItem, cfg.tempo*1000, cid, cfg.item, 1) setPlayerStorageValue(cid, storage, 1) setPlayerStorageValue(cid, cfg.storage, os.time()+(cfg.exstTime*1000)) else return doPlayerSendCancel(cid, "Você já pegou seu item.") end end return true end
-
Spell Createitem
bugou um pouco minha mente pelo fato de estar sendo criado 3 items... (quantidade 3) e vc não deu detalhes de pra que este item serve... local cfg = { item = {7590, 3}, infinite = true, --Poderá pegar o item infinitas vezes? [true/sim] [false/não] tempo = 10, -- tempo em segundos para o item sumir. storage = 91991, -- storage para o exhaust. exstTime = 50 -- tempo em segundos do exhausted. } local storage = 91838 function onCastSpell(cid, var) if getPlayerStorageValue(cid, cfg.storage) > os.time() then return doPlayerSendCancel(cid, "Aguarde ", getPlayerStorageValue(cid, cfg.storage) - os.time() ," segundos para usar novamente.") and false end if cfg.infinite then newitem = doPlayerAddItem(cid, cfg.item[1], cfg.item[2]) addEvent(doRemoveItem, cfg.tempo*1000, newitem) setPlayerStorageValue(cid, cfg.storage, os.time()+(cfg.exstTime*1000)) else if getPlayerStorageValue(cid, storage) < 1 then newitem = doPlayerAddItem(cid, item[1], item[2]) addEvent(doRemoveItem, cfg.tempo*1000, newitem.uid) setPlayerStorageValue(cid, storage, 1) setPlayerStorageValue(cid, cfg.storage, os.time()+(cfg.exstTime*1000)) else return doPlayerSendCancel(cid, "Você já pegou seu item.") end end return true end
-
Erro auto /autoloot By Luck
Para seu lib funcionar dessa forma, vc precisa ter declarado uma variável global para 'ITEM_SLAYER_COIN' em algum lugar, ou simplesmente substituir esse 'ITEM_SLAYER_COIN' por 2157 no script. Sobre o erro do talkaction, seria interessante vc postar seu script da forma que está no seu servidor para análise.
-
Como faço para não poder usar essa magia em monstro?
function onCastSpell(cid, var) local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y+1, z=getThingPosition(getCreatureTarget(cid)).z} local waittime = 15 --tempo em segundos local storage = 2560 --storage do exuast, em cada magia uma storage diferente. local target = getCreatureTarget(cid) if not isPlayer(target) then return doPlayerSendTextMessage(cid, 23, "Essa magia só pode ser usada em players.") and false end if exhaustion.check(cid, storage) then doPlayerSendTextMessage(cid, 23, "Essa magia saira do cooldown em " .. exhaustion.get(cid, storage) .. " segundos.") return false end exhaustion.set(cid, storage, waittime) local Hp = (getCreatureHealth(target))*0.2 if isCreature(target) then doCreatureAddHealth(target, -Hp) -- remove o valor de 20% da vida do jogador doSendMagicEffect(position1, 269) -- EFEITO DA MAGIA end return true end
-
Spell Createitem
local cfg = { item = {7590, 3}, infinite = true, --Poderá pegar o item infinitas vezes? [true/sim] [false/não] tempo = 10 -- tempo em segundos para o item sumir. } local storage = 91838 function onCastSpell(cid, var) if cfg.infinite then newitem = doPlayerAddItem(cid, cfg.item[1], cfg.item[2]) addEvent(doRemoveItem, cfg.tempo*1000, newitem.uid) else if getPlayerStorageValue(cid, storage) < 1 then newitem = doPlayerAddItem(cid, item[1], item[2]) addEvent(doRemoveItem, cfg.tempo*1000, newitem.uid) setPlayerStorageValue(cid, storage, 1) else return doPlayerSendCancel(cid, "Você já pegou seu item.") end end return true end
-
[DAT EDITOR 8.60] Click map passar em cima de fire
O bug acontece pois não basta modificar o client, precisa também alterar no items.otb dentro do servidor para ficar igual.
-
É possivel adicionar script 0.4 para 0.5?
Existe. Todos te perguntam pois a TFS 0.5 é rara, muitos poucos têm, pouquíssimos sabem da sua existência (como você vê no comentário do amigo Toruk) e não existe para download em lugar algum. Ela é uma tfs 0.4 melhorada, muito otimizada, procuro a muito tempo mas não encontro em lugar algum e quem têm não compartilha.
-
Acesso boss diario + quest
Mano, uma dica que dou pra todo mundo que está aprendendo programação/script... aprenda usar identação. Ajuda muito hehe. movement: Creaturescript:
-
Como por Dois Effect em um move só
Seria de grandiosa ajuda se você postar como está seu script atualmente, para que alguém possa te mostrar onde e como 'encaixar' essa parte.
-
Wand dois hits elementais
w = { [1] = {ef = 37, sh = 4, dmg = COMBAT_ENERGYDAMAGE}, [2] = {ef = 43, sh = 36, dmg = COMBAT_ICEDAMAGE}, } function onUseWeapon(cid, var) local storage = getPlayerStorageValue(cid, 8445601) if storage <= 0 then atual = 1 else atual = 2 end min, max = 110, 150 -- dano minimo e maximo target = getCreatureTarget(cid) if target ~= 0 then wx = w[atual] doSendDistanceShoot(getThingPos(cid), getThingPos(target), wx.sh) addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) setPlayerStorageValue(cid, atual == 1 and 1 or 0) end return true end