Ir para conteúdo

Featured Replies

Postado

Olá povo do TK! Vim aqui pra pedir que me tragam suas idéias para sistemas de um servidor RPG, o qual poderá ou não ser finalizado, já que está sendo feito para estudo.

 

Nota: Sistemas que forem concluídos, se não forem usados no servidor final, serão disponibilizados ao público.

 

Idéias Aceitas:

[Nome da Idéia] - @Usuário

  • Respostas 5
  • Visualizações 1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • NPC que verifica se você tem equipamento Y e uma skill/ml de no mínimo Y para para te ensinar uma skill especial ou para promover você ao próximo ranking. Exemplo: Um knight lvl 20 precisa de 50 de sw

Postado
  • Autor
Em 07/09/2017 em 09:40, underewarr disse:

è o seguinte um novo slot e um novo slot type

type = spellitem

cada spellitem pode ser alugado ou comprado e quando equipado libera uma nova skill.

 

Não foi exatamente o que você pediu, pois não criei um slottype novo e nem um slot novo, porém, limitei a spell pelo fato do player ter ou não X item equipado.

Como funciona: em "local equip = {2475, 2474}" é onde está listado o IDs do helmets que irão habilitar ou não o uso da magia, no caso, Winged Helmet e Warrior Helmet, o script checará se o helmet usado é um dos dois, se for, executará a magia, se não, irá enviar uma mensagem de erro.

 

Aqui, usei a spell "exori" como exemplo:

local combat = Combat()
local equip = {2475, 2474} -- Items que permitirão a magia a ser executada pelo jogador.
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat:setParameter(COMBAT_PARAM_USECHARGES, true)
combat:setArea(createCombatArea(AREA_SQUARE1X1))

function onGetFormulaValues(player, skill, attack, factor)
	local min = (player:getLevel() / 5) + (skill * attack * 0.03) + 7
	local max = (player:getLevel() / 5) + (skill * attack * 0.05) + 11
	return -min, -max
end

combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
	if isInArray(equip, getPlayerSlotItem(creature, CONST_SLOT_HEAD).itemid) then -- Se o HELMET (CONST_SLOT_HEAD) for igual a algum da array/table equip (definida no topo do script), então:
		return combat:execute(creature, variant) -- retorna a execução da spell
	else creature:sendTextMessage(MESSAGE_STATUS_WARNING, "You need some kind of equipment to be able to cast this spell.") -- se algum dos HELMETs listados não estiver equipado, retornará esta mensagem de erro.
	end
end

 

Editado por Oneda (veja o histórico de edições)

Postado

Um item com atributo especifico, que ao usar ele adicionasse o atributo ao item, mais no item que tem o atributo, vem dizendo qual item ele se encaixa.

 

Exemplo Item 1 = +2 de distance (Só pode adicionar esse atributo ao capacete)

Exemplo item 2 = +1 magic level (Só pode adicionar esse atributo a uma Wand)

 

Ficaria do na descrição do item, como se fosse um sistema de slot, mais só que por item especifico que já adiciona o atributo pronto e não randomico.

Postado
  • Administrador
5 horas atrás, Oneda disse:

 

Não foi exatamente o que você pediu, pois não criei um slottype novo e nem um slot novo, porém, limitei a spell pelo fato do player ter ou não X item equipado.

Como funciona: em "local equip = {2475, 2474}" é onde está listado o IDs do helmets que irão habilitar ou não o uso da magia, no caso, Winged Helmet e Warrior Helmet, o script checará se o helmet usado é um dos dois, se for, executará a magia, se não, irá enviar uma mensagem de erro.

 

Aqui, usei a spell "exori" como exemplo:


local combat = Combat()
local equip = {2475, 2474} -- Items que permitirão a magia a ser executada pelo jogador.
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
combat:setParameter(COMBAT_PARAM_BLOCKARMOR, true)
combat:setParameter(COMBAT_PARAM_USECHARGES, true)
combat:setArea(createCombatArea(AREA_SQUARE1X1))

function onGetFormulaValues(player, skill, attack, factor)
	local min = (player:getLevel() / 5) + (skill * attack * 0.03) + 7
	local max = (player:getLevel() / 5) + (skill * attack * 0.05) + 11
	return -min, -max
end

combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onCastSpell(creature, variant)
	if isInArray(equip, getPlayerSlotItem(creature, CONST_SLOT_HEAD).itemid) then -- Se o HELMET (CONST_SLOT_HEAD) for igual a algum da array/table equip (definida no topo do script), então:
		return combat:execute(creature, variant) -- retorna a execução da spell
	else creature:sendTextMessage(MESSAGE_STATUS_WARNING, "You need some kind of equipment to be able to cast this spell.") -- se algum dos HELMETs listados não estiver equipado, retornará esta mensagem de erro.
	end
end

 

 

Muito bom, vou usar no meu servidor.

E dar uma editadinha pra ficar como eu quero.

Editado por Erimyth (veja o histórico de edições)

TibiaKing Team- KingTópicos
www.tibiaking.com

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo