Ir para conteúdo
  • Cadastre-se

Ajuda, to com ideia preciso de ajuda!


Posts Recomendados

Vamos lá, Primeiro bom dia, tarde ou noite!!

 

Minha ideia é assim, eu queria uma Pedra que quando clica no item ela refina, mais diferente.

 

Vai existir 3 tipos de Pedras:

 

Pedra Attack: dando + 30% de dano.

Pedra Defense: dando +30% de Defesa.

Pedra Life: dando +30% da sua Vida máxima.

 

Só vai poder usar em Sword! só pode colocar uma delas.

 

ai quando dar look no item mostra qual pedra estar nela. alguem me ajudar?

 

 

No caso são 3 actions, não sei se usar LIB.

Link para o post
Compartilhar em outros sites

Olha é sempre bom posta qual servidor usa para ter mais precisão na resposta, no caso vou tenta passar como seria nas duas forma 0.4/otx e tfs 1.x/otx3, orienta e não orientada a objetos.

Você teria q fazer uma action dessa forma para cada pedra.

onUse(cid/player, item, fromPos, itemEx/target, toPos)

 

Esse são um exemplo dos parâmetros usado em action.

Então basicamente terá que adicionar um customAttribute no itemEx/Target, e mudar sua descrição para o efeito ganho. 

 

Na action referente a pedra você coloca verificação do tipo do item que ela foi usada (itemEx/Target) pra confirma se é sword:

getItemInfo(itemEx.itemid).weaponType

ou

itemType(target:getID()):getType()

 

 

as funções pra mudar descrição do item para os efeitos que quiser.

doItemSetAttribute(itemEx.uid, "description", "TODO TEXTO AQUI")

ou

target:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "TODO TEXTO AQUI")

 

 

e adicionar um customAttribute com valor para nos conseguir identificar e fazer o efeito, assim:

 

doItemSetAttribute(itemEx.uid, "buff", "attack")

ou

target:setCustomAttribute("buff", "attack")

Aqui você terá q altera os valor dependendo da pedra, "attack" por "defence" ou "life" e etc.

 

 

e por ultimo remova a pedra usada:

doRemoveItem(item.uid)

ou

item:remove()

 

Para elaborar isso deve entender logica de programação e sua funções basica, if, and, or, the, else, end, se não souber melhor começa por isso.

 

Agr que o item ja tem oq nos precisa, tem q fazer o efeito acontecer, será lá em creaturescript, já que estamos lidando com creature (player), primeiro o attack e defense:

Você terá q criar um script onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin), dessa forma:

 

0.4/otx

 em tfs 0.4/otx é onStatusChange, vou confirma uma coisa pois a maioria utiliza de forma errada essa função e ja edito.

 

tfs 1.3/otx3

function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
--
Aqui dentro colocara as verificações que irei descrever abaixo.
--
    return primaryDamage, primaryType, secondaryDamage, secondaryType
end

 

 

Primeiro precisara verificar se o item equipado do attacker é uma sword e tem attributo buff

 

pega o item,

item = getPlayerWeapon(cid)

ou

item = attacker:getSlotItem(CONST_SLOT_RIGHT) 

ou CONST_SLOT_LEFT

 

e pega o atributo a partir do "item":

getItemAttribute(item.uid, "buff")

ou

item:getCustomAttribute("buff")

 

Faça uma verificação se o atributo pego for igual "attack":

Então ira pegar o parametro primaryDamage e fazer +30% algo desse tipo:

primaryDamage = primaryDamage * (1.0 + 0.3)

 

Agora podera verificar se a creature esta com attribute "defence" na sword, usando a mesma forma de verificar "attack" apenas mudando o attacker por creature

E devera novamente altera o dano, agora em -30% :

primaryDamage = primaryDamage * (1.0 - 0.3)

 

terminando essa duas verificações ele retorna o valor do dano corretamente.

Lembre de colocar verificações de segurança como se o player existe, e se existe o attribute "buff".

 

Agora o novo script para modificar a life, sera em movement com as funções onEquip e onDeEquip.

Se chegar até esse momento acredito q entendeu a logica de como as coisa funciona, então talvez consiga elaborar sozinho se nao eu detalho para você depois.

 

Aqui vou deixa 1 exemplo de onEquip e onDeEquip de cada src, vc tera q aplica a mesma logica para verificar o item e buff, e compara com "life":

tfs 0.4/otx

tfs 1.3/otx3

Usando essas funções como base você altera o conteudo dela conforme fez no creaturescript.

E poderá aumenta a vida máxima do player quando ele equipar (onEquip) e diminuir quando ele desequipar (onDeEquip), usando

setCreatureMaxHealth(cid, health)

ou

creature:setMaxHealth(health)

 

Talvez não seja isso que queria, mas se conseguir entender e montar vai ter um avanço que precisa. Não tenha pressa, entende a logica da programação e lua, e depois olhe outros script mais simples para tenta entender como tudo é montado.

 

Qualquer duvida manda q demoro mas respondo, e se realmente tenta e não conseguir futuramente faço e posto.

 

Agora se oq queria era um pedido pronto, pode colar isso no tópico e alguém faz pra você talvez.

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link para o post
Compartilhar em outros sites
8 horas atrás, Naze disse:

Olha é sempre bom posta qual servidor usa para ter mais precisão na resposta, no caso vou tenta passar como seria nas duas forma 0.4/otx e tfs 1.x/otx3, orienta e não orientada a objetos.

Você teria q fazer uma action dessa forma para cada pedra.

onUse(cid/player, item, fromPos, itemEx/target, toPos)

 

Esse são um exemplo dos parâmetros usado em action.

Então basicamente terá que adicionar um customAttribute no itemEx/Target, e mudar sua descrição para o efeito ganho. 

 

Na action referente a pedra você coloca verificação do tipo do item que ela foi usada (itemEx/Target) pra confirma se é sword:


getItemInfo(itemEx.itemid).weaponType

ou


itemType(target:getID()):getType()

 

 

as funções pra mudar descrição do item para os efeitos que quiser.


doItemSetAttribute(itemEx.uid, "description", "TODO TEXTO AQUI")

ou


target:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, "TODO TEXTO AQUI")

 

 

e adicionar um customAttribute com valor para nos conseguir identificar e fazer o efeito, assim:

 


doItemSetAttribute(itemEx.uid, "buff", "attack")

ou


target:setCustomAttribute("buff", "attack")

Aqui você terá q altera os valor dependendo da pedra, "attack" por "defence" ou "life" e etc.

 

 

e por ultimo remova a pedra usada:


doRemoveItem(item.uid)

ou


item:remove()

 

Para elaborar isso deve entender logica de programação e sua funções basica, if, and, or, the, else, end, se não souber melhor começa por isso.

 

Agr que o item ja tem oq nos precisa, tem q fazer o efeito acontecer, será lá em creaturescript, já que estamos lidando com creature (player), primeiro o attack e defense:

Você terá q criar um script onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin), dessa forma:

 

0.4/otx


 em tfs 0.4/otx é onStatusChange, vou confirma uma coisa pois a maioria utiliza de forma errada essa função e ja edito.

 

tfs 1.3/otx3


function onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin)
--
Aqui dentro colocara as verificações que irei descrever abaixo.
--
    return primaryDamage, primaryType, secondaryDamage, secondaryType
end

 

 

Primeiro precisara verificar se o item equipado do attacker é uma sword e tem attributo buff

 

pega o item,


item = getPlayerWeapon(cid)

ou


item = attacker:getSlotItem(CONST_SLOT_RIGHT) 

ou CONST_SLOT_LEFT

 

e pega o atributo a partir do "item":


getItemAttribute(item.uid, "buff")

ou


item:getCustomAttribute("buff")

 

Faça uma verificação se o atributo pego for igual "attack":

Então ira pegar o parametro primaryDamage e fazer +30% algo desse tipo:


primaryDamage = primaryDamage * (1.0 + 0.3)

 

Agora podera verificar se a creature esta com attribute "defence" na sword, usando a mesma forma de verificar "attack" apenas mudando o attacker por creature

E devera novamente altera o dano, agora em -30% :


primaryDamage = primaryDamage * (1.0 - 0.3)

 

terminando essa duas verificações ele retorna o valor do dano corretamente.

Lembre de colocar verificações de segurança como se o player existe, e se existe o attribute "buff".

 

Agora o novo script para modificar a life, sera em movement com as funções onEquip e onDeEquip.

Se chegar até esse momento acredito q entendeu a logica de como as coisa funciona, então talvez consiga elaborar sozinho se nao eu detalho para você depois.

 

Aqui vou deixa 1 exemplo de onEquip e onDeEquip de cada src, vc tera q aplica a mesma logica para verificar o item e buff, e compara com "life":

tfs 0.4/otx

tfs 1.3/otx3

Usando essas funções como base você altera o conteudo dela conforme fez no creaturescript.

E poderá aumenta a vida máxima do player quando ele equipar (onEquip) e diminuir quando ele desequipar (onDeEquip), usando


setCreatureMaxHealth(cid, health)

ou


creature:setMaxHealth(health)

 

Talvez não seja isso que queria, mas se conseguir entender e montar vai ter um avanço que precisa. Não tenha pressa, entende a logica da programação e lua, e depois olhe outros script mais simples para tenta entender como tudo é montado.

 

Qualquer duvida manda q demoro mas respondo, e se realmente tenta e não conseguir futuramente faço e posto.

 

Agora se oq queria era um pedido pronto, pode colar isso no tópico e alguém faz pra você talvez.

Entao me desculpe não falar a tfs, é 0.4, Minha ideia é uma pedra de refinar, na real sao 3 pedras uma Def, atk e Vida.

 

 

mais que elas fiquem no item: quando da look nele. e so pode ter 1 tipo dela.

Link para o post
Compartilhar em outros sites

Como falei se quiser pronto altere para pedido e aguarde alguem quer a boa vontade e tempo de fazer, ficar floodando "UP" é contra as regras e não vai ajudar em nada. 

Estou sem PC no momento mas me parece que vc quer algo pronto então não aguarde por mim. 

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link para o post
Compartilhar em outros sites
Agora, Naze disse:

Como falei se quiser pronto altere para pedido e aguarde alguem quer a boa vontade e tempo de fazer, ficar floodando "UP" é contra as regras e não vai ajudar em nada. 

Estou sem PC no momento mas me parece que vc quer algo pronto então não aguarde por mim. 

não sou muito bom com script, queria pelo menos uma base para eu mexer tlgd?

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo