Blazera 8.60
blazera.net
SOBRE O BLAZERA
Um fresh start em um servidor 8.6 clássico, com real map, focado na experiência raiz do Tibia. | Classic Real Map • Fresh Start • Client 8.6 • Old School Gameplay • Active Community
Inicia em:
--
Participar
Histórico de Curtidas
-
krellgaming deu reputação a Cat em [NPC] Elfo Ferreiro V1.0Testado em: TFS 1.0 (10.31)
Funciona em: TFS 1.0 e TFS 0.4
Descrição: Você leva uma determinada espada até o npc, fala com ele, ele vai pegar essa espada e ficar com ela por um certo tempo (3min), claro, você irá pagar uma quantia. Ao retornar, sua espada estará melhorada (no caso dos ids utilizados o npc irá trocar o item). Se houver algum bug, reporte que arrumaremos.
Créditos: Jamison, Daniel.
---------- • ----------
Diálogo:
22:21 Daniel [250]: hi
22:21 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item!
22:21 Daniel [250]: transform
22:21 Blacksmith Elf: From time to time fate smiles upon those who take great risks and have strong dreams! If you have money, we can try to transform your umbral swords, axes, clubs, bows, crossbows or spellbooks.
22:21 Daniel [250]: club
22:21 Blacksmith Elf: One handed or two handed?
22:21 Daniel [250]: one handed
22:21 Blacksmith Elf: Do you want to spend your money to transform your crude umbral mace, yes or no?
22:21 Daniel [250]: yes
22:21 Blacksmith Elf: Great! Alright, I need a while to finish this club for you. Come ask me later. 22:22 Daniel [250]: hi
22:22 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item!
22:22 Daniel [250]: transform
22:22 Blacksmith Elf: Have you left anything here to transform ?
22:22 Daniel [250]: yes
22:22 Blacksmith Elf: You must wait until : 22:24:49. 22:25 Daniel [250]: hi
22:25 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item!
22:25 Daniel [250]: transform
22:25 Blacksmith Elf: Have you left anything here to transform ?
22:25 Daniel [250]: yes
22:25 Blacksmith Elf: Here you have it.
---------- • ----------
Fotos
---------- • ----------
Script:
data/npc/Blacksmith Elf.lua
data/npc/scripts/blacksmith_elf.lua
-
krellgaming deu reputação a Johncore em Gesior 1.2 Premium Pack - ANTI SQL INJECTION - TFS [1.x / OTX]Gesior 1.2 Premium Pack - TFS [1.x / OTX]
Changelog 1.1
• Layout do tibia 2017 atualizado • ANTI SQL INJECTION • Site 100% seguro • Aba de Teamspeak configuravel • Pagina de Download com mais facilidade • Adicionada Pagina "Change Name" • Correção da página "Donate" • Adicionado metodos de pagamento como Pagseguro, Paypal, Deposito em conta e Picpay(Configuravel) • Site já vem com contador regressivo configuravel • Remoção de algumas paginas por ter falha de segurança. • Corrigido criação de contas • Corrigido pasta cache • Pagina de Prey, Reward e Imbuing • Cast System. • Login.php atualizado
SCAN:
DOWNLOAD
Creditos
ADM Argel, Qwizer, Gesior, Erimyth
-
krellgaming recebeu reputação de endo64 em [Action] Mistery BoxGalera, vou colocar aqui um script que desenvolvi para o meu servidor.
Nada mais é que uma box onde você clica e ganha um item aleatório.
Primeiro vamos ao código, crie um arquivo chamado misterybox.lua em actions/scripts:
local items = {2647, 2650, 2661, 2668, 2393} local chancenada = 10 function onUse(cid, item) if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end if math.random(1, 100) <= chancenada then doPlayerSendCancel(cid, "Nao veio nada.") doRemoveItem(item.uid, 1) return true end doPlayerAddItem(cid, items[math.random(1, #items)], 1) doRemoveItem(item.uid, 1) return true end Agora explicando:
local items = {2647, 2650, 2661, 2668, 2393}
Os números colocados dentro do { } e separados por vírgula, são os ids dos itens que podem vir da mistery box.
Ou seja, para adicionar um item novo, você coloca uma vírgula e põe outro id. Para remover, retire um id e uma vírgula.
Ex adicionar:
local items = {2647, 2650, 2661, 2668, 2393, 2392}
Ex retirar:
local items = {2647, 2650, 2661, 2668, 2393}
Entenderam?
Agora vamos explicar o "chancenada"
Ali você põe um valor entre 0 e 100 que vai corresponder à chance em % de não vir nada na misterybox.
No caso está 10% de chance de não vir nada.
No script ela tá configurada pra ser usada só por premmium accounts, mas se quiser mudar é só retirar isso aqui:
if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end Agora adicione em actions/actions.xml:
<action itemid="132" script="misterybox.lua"/> Onde 132, é o id do item "mistery box", que é o item que você da use no jogo e ganha algum item aleatório depois.
Eu criei no meu servidor o item mistery box, editando o items.otb e colocando um item novo, mas você pode usar algum já existente e apenas editar, ou faça do jeito que achar melhor!
Bom galera, por agora é isso! Um abraço à todos!
-
krellgaming recebeu reputação de Reds em [ACT/MOV] KeyDoor with StorageJá vi alguns tutoriais, alguns scripts sobre doors e key doors e sinceramente quase nenhum me agradou, nem atendeu a alguns requisitos que eu queria.
Entao vi um topico aqui no Suporte e resolvi fazer o script pro cara que tava pedindo e tambem vou usar no meu server.
Funciona assim: Voce pega uma key especifica, e clica numa porta especifica, entao a key some e voce pode passar pela porta pra sempre.
E so quem tiver a key e usar ela na porta, vai poder passar.
PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos) local storage = 304392 -- coloque o storage aqui local porta = 7049 -- id da porta local uniqueidporta = 12000 if item2.uid == uniqueidporta and item2.itemid == porta then setPlayerStorageValue(cid, storage, 1) doRemoveItem(cid, item.uid, 1) else doPlayerSendTextMessage(cid, 22, "Porta errada!") end return TRUE end Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition) local storage = getPlayerStorageValue(cid, 304392) if storage == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.") else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.") end return true end Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
-
krellgaming recebeu reputação de shadowfall em [ACT/MOV] KeyDoor with StorageJá vi alguns tutoriais, alguns scripts sobre doors e key doors e sinceramente quase nenhum me agradou, nem atendeu a alguns requisitos que eu queria.
Entao vi um topico aqui no Suporte e resolvi fazer o script pro cara que tava pedindo e tambem vou usar no meu server.
Funciona assim: Voce pega uma key especifica, e clica numa porta especifica, entao a key some e voce pode passar pela porta pra sempre.
E so quem tiver a key e usar ela na porta, vai poder passar.
PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos) local storage = 304392 -- coloque o storage aqui local porta = 7049 -- id da porta local uniqueidporta = 12000 if item2.uid == uniqueidporta and item2.itemid == porta then setPlayerStorageValue(cid, storage, 1) doRemoveItem(cid, item.uid, 1) else doPlayerSendTextMessage(cid, 22, "Porta errada!") end return TRUE end Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition) local storage = getPlayerStorageValue(cid, 304392) if storage == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.") else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.") end return true end Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
-
krellgaming recebeu reputação de eviltox em [PEDIDO]-Transformar Script Talkaction em MovementNao tem como criar uma condicao OnDeath ou OnLogout para desligar o script quando a pessoa logar/morrer?
Nao to com tempo pra mexer em scripts agora, mas é uma ideia ai pra voces pensarem.
Se quiser depois eu dou uma olhada no script.
-
krellgaming recebeu reputação de Wiz Khalifa em [ACT/MOV] KeyDoor with StorageFui eu quem fiz do 0, portanto largue de hating só porque você ripa códigos e poe o seu nome no arquivo. E ah, apagou o topico que eu falava sobre voce só porque tinha muita gente concordando comigo? Engracado.
Ah, um ps... reportado por abuso de "autoridade", se é que você tem alguma.
Abracos!
-
krellgaming deu reputação a Cat em Mapa para FireStorm EventAqui está: https://www.mediafire.com/?et969x1z966ec8d
-
krellgaming deu reputação a Slec em PoH, Cyclops and Outlaws. [Slec]Algumas áreas de caça aleátorias.
Quote
Quote
/Slec
-
krellgaming deu reputação a Slec em Banshee [Slec]Map Info:
Undead Area.
Versão: 10.31
Tamanho: 97kb
download: http://www.speedysha...UpT/banshee.rar
Enjoy,
Slec.
-
krellgaming deu reputação a Slec em [Link Quebrado] RPG City - Prima e Valkaria [By Slec]To liberando alguns mapas antigos meus.
Minimap:
Quote
Quote
Screenshots:
Prima
Valkaria
/Slec.
-
krellgaming recebeu reputação de luanluciano93 em (Resolvido)AJUDA! - SCRIPT /m ( TFS 1.0 )place_monster.lua function onSay(cid, words, param) local player = Player(cid) if not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local orig = player:getPosition() local creatureId = doSummonCreature(param, orig) if creatureId ~= false then local monster = Monster(creatureId) monster:getPosition():sendMagicEffect(CONST_ME_TELEPORT) orig:sendMagicEffect(CONST_ME_MAGIC_RED) else player:sendCancelMessage("There is not enough room.") orig:sendMagicEffect(CONST_ME_POFF) end return false end <talkaction words="/m" separator=" " script="place_monster.lua" /> -
krellgaming recebeu reputação de luanluciano93 em [ACT/MOV] KeyDoor with StorageJá vi alguns tutoriais, alguns scripts sobre doors e key doors e sinceramente quase nenhum me agradou, nem atendeu a alguns requisitos que eu queria.
Entao vi um topico aqui no Suporte e resolvi fazer o script pro cara que tava pedindo e tambem vou usar no meu server.
Funciona assim: Voce pega uma key especifica, e clica numa porta especifica, entao a key some e voce pode passar pela porta pra sempre.
E so quem tiver a key e usar ela na porta, vai poder passar.
PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos) local storage = 304392 -- coloque o storage aqui local porta = 7049 -- id da porta local uniqueidporta = 12000 if item2.uid == uniqueidporta and item2.itemid == porta then setPlayerStorageValue(cid, storage, 1) doRemoveItem(cid, item.uid, 1) else doPlayerSendTextMessage(cid, 22, "Porta errada!") end return TRUE end Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition) local storage = getPlayerStorageValue(cid, 304392) if storage == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.") else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.") end return true end Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
-
krellgaming recebeu reputação de Hadagalberto Jr. em (Resolvido)Usar Chave na porta e ganhar permissão para abri-la para sempre.PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos)
local storage = 304392 -- coloque o storage aqui
local porta = 7049 -- id da porta
local uniqueidporta = 12000
if item2.uid == uniqueidporta and item2.itemid == porta then
setPlayerStorageValue(cid, storage, 1)
doRemoveItem(cid, item.uid, 1)
else
doPlayerSendTextMessage(cid, 22, "Porta errada!")
end
return TRUE
end
Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition)
local storage = getPlayerStorageValue(cid, 304392)
if storage == 1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.")
else
doTeleportThing(cid, fromPosition)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.")
end
return true
end
Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
-
krellgaming recebeu reputação de poko360 em (Resolvido)Usar Chave na porta e ganhar permissão para abri-la para sempre.PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos)
local storage = 304392 -- coloque o storage aqui
local porta = 7049 -- id da porta
local uniqueidporta = 12000
if item2.uid == uniqueidporta and item2.itemid == porta then
setPlayerStorageValue(cid, storage, 1)
doRemoveItem(cid, item.uid, 1)
else
doPlayerSendTextMessage(cid, 22, "Porta errada!")
end
return TRUE
end
Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition)
local storage = getPlayerStorageValue(cid, 304392)
if storage == 1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.")
else
doTeleportThing(cid, fromPosition)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.")
end
return true
end
Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
-
krellgaming recebeu reputação de Sematico em (Resolvido)[RESOLVIDO] Tornar objeto impossivel de se mover!Se você colocar uma actionid no item pelo mapa, ele não se move.
-
krellgaming recebeu reputação de KennyXD em (Resolvido)Usar Chave na porta e ganhar permissão para abri-la para sempre.PS: coloque uma porta normal, não locked.
faça um arquivo chamado doorkeystorage.lua e coloque em actions/scripts
function onUse(cid, item, frompos, item2, topos)
local storage = 304392 -- coloque o storage aqui
local porta = 7049 -- id da porta
local uniqueidporta = 12000
if item2.uid == uniqueidporta and item2.itemid == porta then
setPlayerStorageValue(cid, storage, 1)
doRemoveItem(cid, item.uid, 1)
else
doPlayerSendTextMessage(cid, 22, "Porta errada!")
end
return TRUE
end
Em actions.xml:
<action itemid="ID DA CHAVE" script="doorkeystorage.lua"/>
<action uniqueid="12000" script="doorkeystorage.lua"/>
Aí você põe na porta no map, o uniqueid 12000
e a chave tal, quando usada na porta, dá o storage pro jogador.
em movements/scripts crie um arquivo com o nome doorkeystorage.lua
function onStepIn(cid, item, position, fromPosition, toPosition)
local storage = getPlayerStorageValue(cid, 304392)
if storage == 1 then
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Siga em frente.")
else
doTeleportThing(cid, fromPosition)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Somente players que liberaram esta passagem, podem passar.")
end
return true
end
Em movements.xml adicione:
<movevent type="StepIn" actionid="ACTION QUE VC VAI POR NO PISO EM BAIXO DA PORTA" event="script" value="doorkeystorage.lua"/>
-
krellgaming deu reputação a beto06 em Beto06 - Show OffBreve compilação de meus melhores mapas..
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
#15
#16
ROOKGAARD'S REVAMP
Parte 1
Parte 2
-
krellgaming recebeu reputação de luanluciano93 em [Action] Mistery BoxGalera, vou colocar aqui um script que desenvolvi para o meu servidor.
Nada mais é que uma box onde você clica e ganha um item aleatório.
Primeiro vamos ao código, crie um arquivo chamado misterybox.lua em actions/scripts:
local items = {2647, 2650, 2661, 2668, 2393} local chancenada = 10 function onUse(cid, item) if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end if math.random(1, 100) <= chancenada then doPlayerSendCancel(cid, "Nao veio nada.") doRemoveItem(item.uid, 1) return true end doPlayerAddItem(cid, items[math.random(1, #items)], 1) doRemoveItem(item.uid, 1) return true end Agora explicando:
local items = {2647, 2650, 2661, 2668, 2393}
Os números colocados dentro do { } e separados por vírgula, são os ids dos itens que podem vir da mistery box.
Ou seja, para adicionar um item novo, você coloca uma vírgula e põe outro id. Para remover, retire um id e uma vírgula.
Ex adicionar:
local items = {2647, 2650, 2661, 2668, 2393, 2392}
Ex retirar:
local items = {2647, 2650, 2661, 2668, 2393}
Entenderam?
Agora vamos explicar o "chancenada"
Ali você põe um valor entre 0 e 100 que vai corresponder à chance em % de não vir nada na misterybox.
No caso está 10% de chance de não vir nada.
No script ela tá configurada pra ser usada só por premmium accounts, mas se quiser mudar é só retirar isso aqui:
if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end Agora adicione em actions/actions.xml:
<action itemid="132" script="misterybox.lua"/> Onde 132, é o id do item "mistery box", que é o item que você da use no jogo e ganha algum item aleatório depois.
Eu criei no meu servidor o item mistery box, editando o items.otb e colocando um item novo, mas você pode usar algum já existente e apenas editar, ou faça do jeito que achar melhor!
Bom galera, por agora é isso! Um abraço à todos!
-
krellgaming recebeu reputação de luanluciano93 em [Action] Mistery BoxOlha, pelo pouco que eu entendo o return true devolveria o valor true para a função OnUse, e acho que daria na mesma do return false. A diferença no caso é que executaria a ação onuse mas não teria nenhuma ação no jogo, e no false não daria ação OnUse, aí acho que apareceria (You cannot use this object) ou até mesmo nada, então como a true funcionou eu resolvi deixar assim mesmo hahahaha
Bom você ajudou a dar uma simplificada boa no script, é que como eu não queria me enrolar muito nos else ifs, acabei fazendo com ações progressivas, onde tem uma condição universal, se ela for falsa checa a próxima, ou seja, eu faço por método de exclusão, pra mim fica mais simples de entender sabe? Mas é doidera minha, talvez fique até melhor mais compacto como você postou é que é o meu jeitinho de fazer! Hahahaha
Bom, valeu pelo feedback mano, fico feliz! To aqui pensando pra caramba e bolando umas coisas novas pro meu servidor, o que eu não acho aqui no fórum eu acabo criando e divido aqui com vocês
Abraços man!
-
krellgaming deu reputação a luanluciano93 em [Action] Mistery BoxSimples, mas bem bolado.
No caso para ele não continuar a ler o script não teria que ser um return false?
Essa parte tem o return true tbem, mas não sei ..
E não ficaria melhor assim? (só uma dica)
local items = {2647, 2650, 2661, 2668, 2393} local chancenada = 10 function onUse(cid, item) if (getPlayerPremiumDays(cid) >= 1) then if math.random(1, 100) > chancenada then doPlayerAddItem(cid, items[math.random(1, #items)], 1) else doPlayerSendCancel(cid, "Nao veio nada.") end doRemoveItem(item.uid, 1) else doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") end return true end Mesmo assim, muito bom seu script, é bom ver alguém criando coisas novas ...
-
krellgaming deu reputação a MaTTch em (Resolvido)[Ajuda] Fazer magia que deixa target imóvel funcionarlocal time = 3 -- tempo em segundos que vai ficar imovel local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, time*1000) setConditionParam(condition, CONDITION_PARAM_SPEED, -5000) local function doSpell(cid, target, var) if not isCreature(cid) or not isCreature(target) then return true end if isPlayer(target) then doCreatureSetNoMove(target, true) addEvent(function() if isPlayer(target) then return doCreatureSetNoMove(target, false) end end,time*1000) else doAddCondition(target, condition) end return doCombat(cid, combat, var) end function onCastSpell(cid, var) return doSpell(cid, getCreatureTarget(cid), var) end -
krellgaming deu reputação a luanluciano93 em TalkAction !stamina (Recupera stamina e dá uma potion de stamina)Legal cara, obrigado por compartilhar, reputado.
-
krellgaming recebeu reputação de luanluciano93 em TalkAction !stamina (Recupera stamina e dá uma potion de stamina)Primeiramente agradecer à:
http://www.tibiaking.com/forum/topic/32839-tfs-10-stamina-refuel/
Que serviu como uma das bases para esse script.
É o seguinte o script acima é o de stamina potion que eu adaptei aqui, e a partir dele criei uma talkaction !stamina
Onde você compra stamina, recebe de brinde um stamina potion e a sua stamina se enche para 42 horas.
É tudo configurável e vou tentar explicar ao máximo como fazer isso.
PS: Os dois scripts ainda não foram testados mas acho que estão ok!
Primeiro o do potion:
Adicione em actions.xml a seguinte linha:
<action itemid="9000" script="staminapotion.lua"/> É o seguinte, eu ainda não defini qual é o item stamina potion, por isso deixei o id "9000", mas vocês poderão escolher um item no seu servidor e definir ele como stamina potion, basta pegar o itemid dele e colocar no lugar de 9000.
Crie agora um arquivo com o nome de staminapotion.lua em actions/scripts e coloque isso dentro:
function onUse(cid, item, fromPosition, itemEx, toPosition) local stamina_full = 42 * 60 -- config. 42 = horas local player = Player(cid) if player:getStamina() >= stamina_full then player:sendCancelMessage("Your stamina is already full.") elseif player:getPremiumDays() < 1 then player:sendCancelMessage("You must have a premium account.") else player:setStamina(stamina_full) player:sendTextMessage(MESSAGE_INFO_DESCR, "Your stamina has been refilled.") Item(item.uid):remove(1) -- player:removeItem(item.uid) ??? end return true end Ao ser clicado, o item escolhido acima, vai adicionar X horas de stamina ao seu jogador, e remover o item em seguida.
Lembrando que este script funciona apenas para premmium account.
Caso queira que funcione para qualquer player, remova as linhas em verde no script acima.
Bom, até aí foi basicamente o post que eu citei no começo do tópico. Agora vamos entrar na talkaction que eu editei e criei algumas coisas para funcionar legal. Quer dizer, espero que funcione!
Vamos lá galera!
Primeiro adicione em talkactions.xml a seguinte linha:
<talkaction words="!buystamina" event="script" value="stamina.lua"/> Ou seja, a partir do comando !buystamina, o jogador poderá executar o script stamina.lua
Que nós vamos conhecer agora!
Adicione um arquivo chamado stamina.lua na pasta talkactions/scripts e coloque dentro:
function onSay(cid, words, param, channel) local config = { stamina = getPlayerStamina(cid), -- Nao precisa mexer staminasafe = 40 * 60, -- Nao esta em uso no script, mas posso explicar depois costPremiumDays = 1, -- Quanto custa pra comprar stamina com o comando !buystamina quant = 1, -- Quantas potions você ganha de brinde com o comando !buystamina premdays = 20, -- O minimo de premdays para comprar a stamina } local stamina_full = 42 * 60 -- config. 42 = horas local player = Player(cid) local staminapotion = 9000 -- ID do item stamina potion (igual ao da action do outro script) if config.stamina >= stamina_full then doPlayerSendCancelMessage("Your stamina is already full.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < config.costPremiumDays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sorry, not enough premium time. Calling for stamina costs " .. config.costPremiumDays .. " days.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < config.premdays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You must have more than " .. config.premdays .. "premmium days in order to purchase more stamina.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < 39000) then doPlayerAddPremiumDays(cid, -config.costPremiumDays) end player:setStamina(stamina_full) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have fullfilled stamina and lost " .. config.costPremiumDays .. " days of premium time.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) doPlayerAddItem(cid, staminapotion, config.quant) if isPlayer(cid) then doPlayerPopupFYI(cid, "Your stamina is "..config.stamina..".") end return true end O que o script faz?
Você compra stamina, ganha uma ou mais potions de stamina de brinde, e paga com Premmium Days.
Quando você usa o comando, ele checa como está sua stamina, se estiver cheia você não pode comprar.
Depois ele checa se você é premmium account ou não, se não for e não tiver premmium days o suficiente, não pode comprar.
Depois ele checa se você tem no mínimo 20 dias de Prem Days, para evitar que se gaste muitos Premmium Days nesse comando, ele bloqueia a compra de quem tiver menos que, ou 20 dias.
Depois disso, se você passou pelas validações anteriores e tiver PremDays, você consegue comprar a stamina, ela se enche na hora, você ganha x potions de brinde e recebe uma mensagem dizendo de quanto é a sua stamina.
Bom, agora explicando só o porque coloquei staminasafe lá no começo...
Se você quiser que o player só compre stamina caso a dele esteja menor do que 40 horas ou outra hora, você pode tanto mudar o horário no stamina_full
ou colocar uma linha a mais no código, em baixo de
if config.stamina >= stamina_full then doPlayerSendCancelMessage("Your stamina is already full.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end você colocaria:
if config.stamina > config.staminasafe then doPlayerSendCancelMessage("Your stamina must be lower than " .. config.staminasafe .. ", to buy more stamina.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end O que iria colocar uma condição nova para comprar a !stamina, que é de que você tem que ter menos de X stamina para poder comprar, e esse valor você define em staminasafe = 40 ou o valor que você quiser.
Se tiver algum erro ou alguma dúvida, podem perguntar! Obrigado e um abraço à todos!
E detalhe, o ITEM de itemid 9000 é só um exemplo, não sei que item é esse e ainda não defini um para o staminapotion pois não testei no otserver isso ainda, portanto não usem o 9000 porque eu não sei que item é e se for algum item estranho pode bugar. -
krellgaming recebeu reputação de Forgiven2012 em [Show-OFF] ForgivenFicou muito bom, gostei... ta de parabéns, não tem muito o que falar hahahaha quero ver mais trabalhos depois!