
Tudo que xWhiteWolf postou
- Spell de speed que muda outfit até tal ação
-
Spell de speed que muda outfit até tal ação
não sei como funciona a getCreatureTarget no seu servidor, mas usa assim q deve dar certo: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 2) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- seta por tempo ilimitado setConditionFormula(condition, 0.7, -56, 0.7, -56) setCombatCondition(combat, condition) local function checker(uid, health) if isPlayer(uid) then if (getCreatureTarget(uid) and isCreature(getCreatureTarget(uid))) or getCreatureHealth(uid) < health then --se ele tiver um target ou perder vida cancela. if getCreatureCondition(uid, CONDITION_HASTE) doRemoveCondition(uid, CONDITION_HASTE) end if getCreatureCondition(uid, CONDITION_OUTFIT) doRemoveCondition(uid, CONDITION_OUTFIT) end doSendMagicEffect(getCreaturePosition(uid), 2) else local health = getCreatureHealth(uid) addEvent(checker, 200, uid, health) -- checa a cada 200 milisegundos end end return true end function onCastSpell(cid, var) doSetCreatureOutfit(cid, {lookType = 318}, -1) -- seta o outfit 318 por tempo ilimitado checker(cid, getCreatureHealth(cid)) doCombat(cid, combat, var) return true end
-
verificar TILE antes de dar TP no player
getTileThingByPos(pos).itemid vai te retornar o itemid do tile localizado em pos. Executando uma única vez: if isInArray(x, getTileThingByPos(pos).itemid) then -- procura outra posição end Executando até achar um tile livre: repeat -- procura uma posição until not isInArray(x, getTileThingByPos(pos).itemid)
-
Spell de speed que muda outfit até tal ação
onde tá not getCreatureTarget(uid) coloca getCreatureTarget(uid) ~= nil --------------------------------------------------------------------- Eu uso uid porque é uma convenção.. na vdd eu posso colocar qualquer coisa ali. Pensa numa função que recebe um numero qualquer e incrementa 10 no valor dele: local function increment10 (x) return x + 10 end se eu trocar o nome do x no parâmetro e trocar ali no return continua a mesma coisa local function increment10 (qualquercoisa) return qualquercoisa + 10 end uid é a sigla para uniqueid e cid é a sigla para creatureid, muita gente adota cid em tudo mas usar cid em parametros de funções locais pode acabar confundindo quem não é programador e induzindo a pensar que cid representa sempre o player, oque não é verdade. local function increment10 (cid) return cid + 10 end
-
Spell de speed que muda outfit até tal ação
muito complexa a sua linha de raciocínio.. pensa cmg: Uma spell que seta a outfit e velocidade por tempo indeterminado, caso o player perca vida ou ataque alguém ela remove as conditions responsáveis pelo haste e pelo outfit -> e temos isso daqui: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 2) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- seta por tempo ilimitado setConditionFormula(condition, 0.7, -56, 0.7, -56) setCombatCondition(combat, condition) local function checker(uid, health) if isPlayer(uid) then if not getCreatureTarget(uid) and getCreatureHealth(uid) >= health then --se ele tiver um target ou perder vida cancela. local health = getCreatureHealth(uid) addEvent(checker, 200, uid, health) -- checa a cada 200 milisegundos else if getCreatureCondition(cid, CONDITION_HASTE) doRemoveCondition(uid, CONDITION_HASTE) end if getCreatureCondition(cid, CONDITION_OUTFIT) doRemoveCondition(uid, CONDITION_OUTFIT) end doSendMagicEffect(getCreaturePosition(uid), 2) end end return true end function onCastSpell(cid, var) doSetCreatureOutfit(cid, {lookType = 318}, -1) -- seta o outfit 318 por tempo ilimitado checker(cid, getCreatureHealth(cid)) doCombat(cid, combat, var) return true end
-
Pedido de Script Simples
seu texto ficou meio ambíguo, Assim que o teleport fechar (depois de meia hora) depois de meia hora que ele fechar ou depois de meia hora que ele abrir (assim que fechar)? Pq tipo, se ele abre 20:00 e fecha 20:30 e o evento acabar as 20:30, pode ser que alguém tenha acabado de entrar e consiga ter duas ou mais pessoas na arena. Agora se ele acaba 21:00 a chance disso acontecer é menor. No caso de empate ninguém ganha, ambos ganham ou seleciona aleatoriamente um vencedor?
-
[DUVIDA] GEMS QUE DÃO AURA
cara, vc testou a modificação que eu falei? e outra.. a mensagem continua a mesma?, não é possível. Vc tá dando reload ao fazer as modificações? Se sim, para de dar reload e reabre o servidor; edit: esquece esse sistema aí.. usa esse daqui http://www.tibiaking.com/forum/topic/45316-pedido-gema-rep/
-
[DUVIDA] GEMS QUE DÃO AURA
Seu script não condiz com a imagem, geralmente isso é o suficiente pra fazer eu desistir de ajudar alguém... não faça mais isso. if (getPlayerPromotionLevel(cid) == 1) then troca == por >= que vai resolver.
-
Problema com função getPlayerMagLevel(cid)
Vamos ler a descrição do erro e tentar entender oque ela significa: Description: <luaGetPlayerMagLevel> Player not found ao usar a função getPlayerMagLevel ele não encontrou o player que vc tá tentando fazer a checagem. Ok, mas por que isso ocorre? Bom, você colocou lá em cima: local cura = getPlayerMagLevel(cid) Mas oque é esse cid aí? De onde ele vem? Parece que achamos o problema... vc tá tentando puxar o ml de algo que não está definido ainda. "Mas Lobo, cid é o player que executa a spell, certo?" SIM, mas só dentro do escopo da spell. Acompanhe: Pra você fazer uma spell que recupera dependendo do ml vc precisa fazer um callback nessa spell.. segue esse tutorial aqui
- Gran Castle Event (8.54+)
- Gran Castle Event (8.54+)
- Arrumar Exausted do Correr player usa muinto e fica lento
-
Removendo Weapons
sim, se tiver na bp dá pra remover ainda.. pra mudar isso vc vai precisar compilar um outro callback na sua source chamado onMoveItem, tem tutoriais dele aqui
- Arrumar Exausted do Correr player usa muinto e fica lento
- Gran Castle Event (8.54+)
-
Removendo Weapons
http://www.tibiaking.com/forum/topic/33490-aura-bold-system/
-
Glacier Set dando conditions em área
nãao, é muita diferença entre as versões: de 0.36 pra 1.2
- Gran Castle Event (8.54+)
-
Gran Castle Event (8.54+)
dá algum erro? isso de relogar e não continuar tem a ver com o login.lua, verifica se vc instalou tudo certinho e colocou as tags corretinhas. Agr reiniciar o sv e sair é muito estranho.. acho que seu servidor limpa os globalstorages ao reabrir, nesse caso vc vai ter q mudar isso (n sei onde é) ou dxa o servidor on sempre
-
Trocar +1,+2,+3 por nomes nesse script refin [10 reps]
Testa assim, acredito que possa dar erro ao tentar dar upgrade em um item Épico caso as outras checagens do script falhem, mas a lógica tá impecável: Edit: entra nesse site aqui https://repl.it/languages/Lua/ e coloca esse código na caixa à esquerda e clica em Run ► local itemname = "UNIQ KATANA" nameLv = { [1] = "UNIQ", [2] = "RARE", [3] = "EPIC" } lvl = 0 for r, v in ipairs(nameLv) do if itemname:find(v) then lvl = r end end print("O level atual do item é: "..lvl) if lvl >= #nameLv then print("O item não pode ser mais customizado.") else local a = lvl > 0 and nameLv[lvl + 1].." "..itemname:gsub((nameLv[lvl].." "), "") or nameLv[1].." "..itemname print("Após a customização o item ficará como: ".. a) end Apenas mudando o nome do item ali em cima vc consegue simular oque aconteceria no script;
-
Retornar para ball quando sair do fly/ride/surf
é foda pq tem muitas funções aí que desconheço e que provavelmente sejam Lua-made e elas podem conter esse creatureSetSkullType, não dá pra saber. dsclpe nao ser útil
- Magma Boots absorvendo dano
- Magma Boots absorvendo dano
-
Retornar para ball quando sair do fly/ride/surf
tenta assim:
-
Ajuda aqui
local gain = { gainArmor='&p+(1)',loseArmor='&p-(1)', gainShield='&s+#',loseShield='&s-(#+1)', gainAttack='&a+(1*(#))',loseAttack='&a-(1*(#+1))', gainDefense='&d+(1*(#))',loseDefense='&d-(1*(#+1))', chance='(100/math.sqrt((((@/4)+(#*2))/@)*#))', maxlvl = 10, Você pode arrumar diminuindo o maxlvl diretamente ou modificar as tabelas de gain. Observa cmg: gainAttack = &a + (1 * #). -- # = nivel do item -- &a = weapon attack Então basicamente o quanto vc ganha de ataque é o ataque inicial + o level. Nivel 1 se tem 54 eu fico com 55 nv 2 vai ter 55 e eu ganho + 2 ficando 57 nv 3 vai ter 57 e ganho + 3 ficando 60... e assim por diante. Só arrumar e deixar como vc quiser.