Script Hats Aleatórios

PrntScrn

New member
Messages
66
Points
0
Github
PrntScrn
Emulator
rAthena
Estou com esse script más tem hora que ele dar 2 hats e eu quero q ele só de 1 apenas

function script Aleatorio Hats { setarray .BoxItems[0],5389,5125,5132,5486,5338,5129,5183,5431; setarray .BoxItems2[0],5788,5490,5480,5827,5410,5283; set .Random, 5; set .Random2, 10; getitem .BoxItems[ rand( .Random ) ], 1; getitem .BoxItems2[ rand( .Random2 ) ], 1; end;} 
set .Random, 5; =  5% Percentagem

 
Random2 é 10 mas vc nao tem 10 items na BoxItems2, imagino q ele esteja pegando um numero q vc nao tem ae nao vem item nenhum

 
Random2 é 10 mas vc nao tem 10 items na BoxItems2, imagino q ele esteja pegando um numero q vc nao tem ae nao vem item nenhum
Não amigo isso seria a percentagem do drops pela caixa

 
Se não me engano, o

set .random, não funciona exatamente assim, tem que por o mínimo e máximo, ou seja.. algo assim:

set .random,1,5; 


Não me lembro bem..

 
Do jeito que você fez, ele não estava usando o critério de randomificação em 100% e sim utilizando aquela numeração para encontrar um dos IDS. O caso de vir 2 itens era quando os 2 rands estavam dando um número que existia na array. Quando só vinha um era porque sua array não tinha a quantidade de itens suficientes.

Acho que algo igual a isso poderia funcionar.

Code:
function	script	Aleatorio Hats	{	setarray .BoxItems[0],5389,5125,5132,5486,5338,5129,5183,5431;	setarray .BoxItems2[0],5788,5490,5480,5827,5410,5283;    	set @r,rand(getarraysize(.BoxItems));	set @r2,rand(getarraysize(.BoxItems2));	set @r3,rand(100);	if(@r3<=10 && @r3>5) { getitem .BoxItems2[@r],1; }	if(@r3<=5) { getitem .BoxItems[@r],1; }	end;}
 
Back
Top