Помогите понять как это всё вычисляется и происходит
Хочу сделать чтоб с монстра падали редко эти боксы, я так понимаю это в rand надо менять там где 87 либо меньше либо больше? ну я ставил и так и так и всё равно небыло ни какого результата, а я бы хотел сделать чтоб бокс выпадал примерно 20% шанс его найти.
Второй вопрос как сделать так чтоб в этом же боксе вешь выпадала тоже редко?
[FUNCTION DROPPANDORA]
IF (<TAG0.PH>==1)
IF (<STR> < 101) && (rand(99)>87) //13%
SERV.NEWITEM i_box_pandora
NEW.TAG.LEVEL=1
STATSCOUNT PANDORA,1
STATSCOUNT PANDORA<NEW.dTAG0.LEVEL>,1
NEW.COLOR=0488
NEW.BOUNCE
[FUNCTION f_generate_arts]
IF (rand(200) < <eval <tag0.box_lvl>*2>)
DORAND 24
NEWITEM i_Serpent_dagger
ENDDO
NEW.TAG.LOOT=1
NEW.TAG.IDE=1000
NEW.BOUNCE
ELIF (rand(125) < <eval <tag0.box_lvl>*2>)
DORAND 48
NEWITEM i_amulet_fire
[FUNCTION DROPPANDORA]
IF (<TAG0.PH>==1)
IF (20 > <R100>) //20%
SERV.NEWITEM i_box_pandora
NEW.TAG.LEVEL=1
STATSCOUNT PANDORA,1
STATSCOUNT PANDORA<NEW.dTAG0.LEVEL>,1
NEW.COLOR=0488
NEW.BOUNCE
[FUNCTION f_generate_arts]
IF (RAND(200) < <EVAL <TAG0.box_lvl>*2>)
DORAND 24
NEWITEM i_Serpent_dagger
ENDDO
NEW.TAG.LOOT=1
NEW.TAG.IDE=1000
NEW.BOUNCE
ELIF (RAND(125) < <EVAL <TAG0.box_lvl>*2>)
DORAND 48
NEWITEM i_amulet_fire
ENDDO
там походу надо не только в одном месте корректировать шансы... видеть бы более скрипт чтоб окончательно понять.
ребят,я бы хотел чтоб шанс был минимум... где-то 3%
поможет кто нибудь?
вникай в математику, меняй формулу
тут ничего особенного нет и за тебя это делать вряд ли кто станет
IF (20 > <R100>) //20%
IF (20 > <R100>) //20%
[function loot_gold]
IF (<tag0.ph>==1)
tag.amount=(((<str>*27)/10)+(<str>/<eval({10 15})>))
ELIF (<TAG0.LOST>==1)
tag.amount=(((<str>*60)/10)+(<str>/<eval({10 15})>))
ELSE
tag.amount=(((<str>*18)/10)+(<str>/<eval({10 15})>))
ENDIF
STATSCOUNT GOLD,<tag.amount>
WHILE (<TAG0.AMOUNT> )
NEWITEM i_gold
IF (<TAG.AMOUNT> > 64999)
NEW.AMOUNT=65000
TAG.AMOUNT -= 65000
ELSE
NEW.AMOUNT=<TAG.AMOUNT>
TAG.AMOUNT=
ENDIF
NEW.BOUNCE
ENDWHILE
IF (rand(20)==1)
DORAND 8
NEWITEM i_elfian_cloak
NEWITEM i_elfian_sandals
NEWITEM i_elfian_ringmail_tunic
NEWITEM i_elfian_ringmail_gloves
NEWITEM i_elfian_ringmail_sleeves
NEWITEM i_elfian_ringmail_leggings
NEWITEM i_elfian_bow
NEWITEM i_elfian_mustang
ENDDO
NEW.TAG.LOOT=1
NEW.TAG.IDE=1000
NEW.BOUNCE
STATSCOUNT ELFITEM,1
ENDIF
RETURN 0
1) IF (<TAG.AMOUNT> > 64999)
NEW.AMOUNT=65000
TAG.AMOUNT -= 65000
ELSE
это защита "от дурака". Сфера не умеет "делать" кучки больше 16-тиричных FFFF тоесть 65535. Но "считать" умеет. По этому если надо создать кучку в, скажем, 80000 она создаст 2 кучки - 65000 и (80000-65000=) 15000.
Что бы уменьшить количество тебе надо править формулу
tag.amount=(((<str>*27)/10)+(<str>/<eval({10 15})>))
это зависимость от силы. Либо уменьшай силу моба либо увеличивай делитель
Вообще мне это напоминает японские рпг с их 9999 левелами, уроном в 20000 и 88888888 жизнями. По дефолту золото весит не 0. По этому все хранится на виртуальном счете в банке в виде цифирок а не кучек. И снимается нужное количество либо чеком либо небольшой кучкой. А с мобов и сокровищ падает максимум пара тысяч золотых. Но фришардникам всего мало по этому и приходится так заплатить. И появились мобы с тысячами единиц лута и сотнями тысячами золотых в карманах. И персонажи наносящие по 10000 урона на крите.
2) IF (rand(20)==1)
если случайно взятое число от 0 до 20 равно числу "1" (шанс 1к20)
IF (rand(100)==1)
если случайно взятое число от 0 до 100 равно числу "1" (шанс 1к100)
DORAND 8
выпадает один из 8 нижеперечисленных предметов
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)