Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Eai galera, hoje eu to trazendo pra vocês o meu Experience Weapon System. Pra quem não conhece é um sistema em que conforme você vai matando os monstros sua arma vai adquirindo parte da experiencia e upando de nível junto com você!

Eu abri um tópico pra sugestões mas os players foram tão criativos que eu decidi seguir meus instintos e fazer da minha própria maneira se não ia ficar muito ruim pra servers que não fossem derivados.

Testado em TFS 0.3.6 mas deve funcionar em qualquer um que tenha getThing(Pos) e onAttack e onKill ;]
Foi decidido por mim então fazer da seguinte maneira:

• Axes/ Swords/ Bows/ Crossbows:
Tem 5% de chance (pra cada nivel) de ferir gravemente o oponente e deixar ele sangrando, o nível do ferimento é proporcional ao nível da arma.


• Clubs:
Tem 5% de chance (pra cada nivel) de bater com tanta força que faça todos ao redor sentirem o tremor do seu ataque e levarem um dano baseado no nivel da arma e no ataque da mesma.


• Wands/ Rods:
Tem 5% de chance (pra cada nivel) de retirar uma quantidade de mana do player (proporcional ao nivel da arma) e ficar recuperando mana mais rapidamente durante 5 segundos após isso

 

Dito isso vamos ao que interessa:

Adiciona essas duas linhas no seu creaturescripts.xml:

<event type="kill" name="itemexp" script="itemexp.lua"/> 
<event type="attack" name="conditionitem" script="conditionitem.lua"/>

e no login.lua:

--------------- Experience System ----------------
registerCreatureEvent(cid,"itemexp")
registerCreatureEvent(cid,"conditionitem")

Agora crie um arquivo em data\lib\ chamado 037 - Experience System.lua e coloque isso dentro dele:

Mostrar conteúdo oculto

Feito isso crie um arquivo em creaturescripts\scripts chamado itemexp.lua e adicione isso daqui:

Mostrar conteúdo oculto



Agora crie outro arquivo em creaturescripts\scripts, adicione isso daqui nele e chame de conditionitem.lua:

Mostrar conteúdo oculto

Agora configurando:

Mostrar conteúdo oculto
No primeiro script não tem muito oque mudar, vc coloca a experiencia requerida pra cada nivel e o número de níveis, sendo 5 o padrão.

No segundo temos isso daqui:
 
Obs: tudo que está no local um serve pros locais dois, tres, quatro e cinco pra configurar o nivel de sangramento em cada nível, tanto a velocidade que sangra como o dano que sai. No caso, sendo nivel 1 ele vai tirar 3x de -5, 3x de -3 e 3x de -2 antes de sumir, isso dá  -30 de dano total em 9 segundos.

  Citar
if level > 0 and math.random(100) < ((level * 10)/2) --- aqui vc configura a formula da chance de ativar a passiva do item, é o nivel dela * 10 /2

 

  Citar
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, getThingPos(target), area, -2*(level + tonumber(damage)), -4*(level + tonumber(damage)), 34)

--- aqui vc tem o dano da club em área, o dano minimo é 2* o level da arma + o ataque dela e o dano máximo é 4* o level + o ataque dela

 

  Citar

doTargetCombatMana(cid, target, -(level * 25), -(level * 50), 1)

 

--- aqui vc tem o dano que vai tirar no roubo de mana das wands/rods.. no caso é o level da arma * 25 no minimo e o level da arma * 50 no máximo.
--- assim uma arma nivel 5 vai tirar no minimo 125 e no máximo 250 de mana

 



Bom, é isso aí, a minha idéia era trazer um pouco a mais de RPG e fazer o pessoal pensar 2x antes de sair trocando suas armas pela primeira que ele dropa que tenha + ataque que a dele pois assim ele passa a ter que valorizar mais os itens que já possui a um bom tempo;

Outro motivo é que agora os items vão valer mais e agora seu server vai ter mais movimento nas trocas ;]

Espero que tenham gostado e qualquer coisa é só falar nos comentários. Abraço do lobinho.

Ps: aqui tem duas fotinhas mas o resto só instalando mesmo porque tem bastante coisa pra mostrar.

E lembrando, se te ajudei clica em Gostei aqui embaixo. Fuis ;D

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

  • Respostas 109
  • Visualizações 10k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • [1] = {required = 1000}, -- qnt de exp precisa pra cada nivel no formato [nv] = {required = experiencia requerida} [2] = {required = 10000}, [3] = {required = 100000}, [4] = {required = 1000000}, [5]

  • @Coul, é só remover o restante dos prints agr que vc sabe que funciona   @Ayna, até daria pra fazer mas tem que fazer pela source pra n ficar gambiarra.. porque o player pode upar e qnd remover a es

  • Tava na hora de eu fazer um script da minha cabeça mesmo, fico sempre fazendo oque os outros pedem :~~~

Posted Images

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

Quem Está Navegando 0

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

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo