TO
dúvida

Monster Loot REP+

Por totonho18, 23 de mar. de 2014 em Scripts

resolvido
10
1.5k
totonho18T
23 de março de 2014 às 01:31

Quero colocar uma quantidade mínima no loot do monster.

quando vou programar uso essa tag:

<item id="2148" count="143" chance="100000"/>

Traduzindo ela tem 100% de chance de dropar no mínimo 1 e no maximo 143 itens de natureza 2148!

 

Eu quero programar o loot para dropar um quantidade mínima de itens.

EXEMPLO que drope no mínimo 80 e no maxmo 143.

Eu imagino q seria uma tag desse estilo,aqui \/ porém esse já testei,e n deu certo!!!

<item id="2148" countmin="80" countmax="143"chance="100000"/>

como faço pra programar a quantidade mínima de itens ao meu gosto?

REP+

lucasromeroL
23 de março de 2014 às 10:12

Tentou separar o " do chance?

<item id="2148" countmin="80" countmax="143" chance="100000"/>
otherealityO
23 de março de 2014 às 10:37

não existe uma maneira de fazer isso em xml.
vc pode fazer um creaturescript onDeath ou onKill pra isso.

mas se tu quer que drope um mínimo de gold eu aconselho por 100gp na forma de 1 platinum que sempre dropa.

SlicerS
23 de março de 2014 às 10:46

se tu tiver as sources do teu serv e souber mexer um pouco nelas da pra fazer isso ae...

 

vai em monsters.cpp e acha essa parte:

if(readXMLInteger(node, "count", intValue) || readXMLInteger(node, "countmax", intValue))
   lootBlock.count = std::max(1, std::min(100, intValue));
else
   lootBlock.count = 1;

dai eh soh saber oq ta fazendo ^^ -ps: o loot maximo eh de 100 [std::min(100, intValue)]... em tese, n adianta tu botar 143 o.O-

totonho18T
23 de março de 2014 às 17:28
Melhor resposta

Slicer sua ideia seria perfeita pra mim,porém meu server não é open source,ai já descarta essa possibilidade,agora a ideia do creaturescript seria legal,até acho q eu seria capaz de criar um script assim,mas creio q teria q criar um script pra cada monster,aí é trabalho demais. Mas valeu então não vai ter solução,pode fechar o tópico e obrigado!

 

Slicer disse!

dai eh soh saber oq ta fazendo ^^ -ps: o loot maximo eh de 100 [std::min(100, intValue)]... em tese, n adianta tu botar 143 o.O-

 

funciona colocar + de 100 unidades sim amigão,nos ots mais novos pelo menos eu tenho certeza q da,a partir do 9.10 todos os servers q controlo já são capazes de usar esse artifício porém tem o jeito certo de usar!

<item id="2148" countmax="955" chance="100000"/> -- ERRADO! DESSE JEITO N FUNCIONA
<item id="2148" count="955" chance="100000"/> -- CORRETO,assim funciona é só tirar o "max"

Abraços! e vlw

zipter98Z
23 de março de 2014 às 17:36

Tópico movido para a seção de dúvidas e pedidos resolvidos.

SlicerS
25 de março de 2014 às 22:07

eh n sei.. o pedaço do codigo q botei ali eh de 854 entao... ;p

otherealityO
26 de março de 2014 às 11:33

no meu 8.54 funciona aqui.
colocar 143 é como colocar um de 100 outro de 43.
eu acho.
vou até testar pra ver.

edit:
eu testei e funciona sim.
e detalhe eu usei "countmax" e não só "count", acredito que os dois funcionam exatamente do mesmo jeito.

Editado Março 26 por OtheReality

SlicerS
26 de março de 2014 às 11:42

/\ eh bom testar entao... pq pela linha de codigo q botei ali n eh pra acontecer isso... ele ta limitando o valor maximo a 100, std::min(100, intValue)... a n ser q tuas sources sejam editadas ou q seja feita uma outra checagem em outro lugar sei la...

otherealityO
27 de março de 2014 às 13:15

psé eu vi o código, realmente não deveria passar de 100, mas passa. e ainda dá o gold em 2 slots diferentes como se fosse mesmo um de 1 a 100 e outro de 1 a 43.
talvez seja a versão que é diferente ou uma outra checagem mesmo. eu uso 0.3.6pl1, eu passei pra 8.60, mas a source é do 8.54.