А верите ли вы что...
-
Doredel, насчет того что "Тенденция роста статов всегда сохранялась у всех гомов" хочу поспорить. Имеется хомяк (ваниль, если быть точным). До 50 лвла отменно качала инт, кальк предсказывал 1116 матки аж на 89 лвл, но вот подзабил он на инт лвла с 60 до 66, потом с 74 по 76... и теперь кальк прогнозирует 867 матк на 99.
Вот тебе и сохраняется тенденция.
З.Ы. я верю что рост статов зависит не тока от рандома, незнаю почему, но верю )))
Пойду выложу скрин статов своего кошмарика.... -
- xMysTicaLx * уху такое часто встречается, но заметил такую штуку, если до 40-го лвла слабо качает инт, то лудше почему то не будет уже, докачивал максимум до 48 лвла и потом удалял так как понимал что много теряю не вкачанной на ранних лвлах инты, знаю лично товарища который упорно не хотел удалять кривого гома , надеялся что всё исправится, и в результате на 75-м лвле с морфом 416 матк, в конечном результате килл и по новой кач гома но уже осмысленно следя за ростом инты на ранних лвлах ...
-
@"xMysTicaLx":
Doredel, насчет того что "Тенденция роста статов всегда сохранялась у всех гомов" хочу поспорить. Имеется хомяк (ваниль, если быть точным). До 50 лвла отменно качала инт, кальк предсказывал 1116 матки аж на 89 лвл, но вот подзабил он на инт лвла с 60 до 66, потом с 74 по 76... и теперь кальк прогнозирует 867 матк на 99.
Ну тут по-разному быть может.
Я же не говорю что у него строгий план выкачки статов. У него при рождении могут генериться диапазоны роста на каждый стат. Мне просто слабо верится что могут быть настолько разные по статам гомы, если рандом на всех один и тот же. К 99 лвл у любого гома статы бы устаканивались. -
А где холиворы? Где кровопролитные споры о том, кто прав, а кто нет? Ну так неинтересно...
-
а к чему они?? каждый проголосовал или высказал свою точку зрения ...
-
Ну а дальше? А доказать, что все это фигня? Должны же простые нубики знать мифы и легенды покемоноводчества.
-
а как ты это докажешь?
каждый проголосовал за что то, пока лидер последний вариант знач все с этим согласны -
По порядку.
1, 2 - исходники сервера
3 - теория вероятности, основанная на пунктах 1,2
4 - есть пример (кто-то отписывался в свое время о том, что после копирования чаров на тестовый существующий хомяк получился отличным от исходного)
5 - исходники сервера или много тестов
6 - очевидно для разбирающихся в скриптостроении :lol:
7 - тесты или исходники
8 - нужно уточнение, что имеется в ввиду под "нужным болтом". А так - исходники сервера + теория вероятностей
9 - факты + обоснование на основе обработки команд сервером
10 - здравый смысл + привет от Кэпа: десятый пункт - наглое и бессовестное вранье :lol: -
ничё не понял при чём тут исходники сервера, думаю если бы можно было это посмотреть, как минимум это где то бы указали, на всех форумах одни и те же споры по первым 2-м пунктам,
наёмы так же настраиваются как и гомы, только не видел патруля у наёма, правда небыло особого желания разбирацо -
Контроль хомяка с компьютера игрока заключается исключительно в отправке команд поведения (для этого скрипты и нужны). Все остальное, в том числе шансы варки, вылупления и развития хомяка обсчитывает сервер. Так же, как и дроп с мобов, к примеру. Отсюда логичный вывод - все алгоритмы можно посмотреть в исходниках. Другое дело, что исходники Aegis (или что там официалки используют) недоступны простым смертным, но нам это и не надо. Мотр основан на еафине, а ее код открыт. Так что вот.
-
интересно как рандом описан в еафине? я не силён в програмизме, поэтому у меня удивление в твоей уверености об исходниках ... если исходники еафины открыты и ты в этом нехило шариш, раздупли мотровцев хотябы ...
-
[code:3tfnwgry]/* generates a random number on [0,0xffffffff]-interval /
static unsigned long atn_int32_randommt(void)
{
unsigned long y;
static unsigned long mag01[2]={0x0UL, MATRIX_A};
/= x * MATRIX_A for x=0,1 */if (mti >= N) { /* generate N words at one time */ int kk; if (mti == N+1) /* if init_genrand() has not been called, */ atn_srandommt(5489UL); /* a default initial seed is used */ for (kk=0;kk<N-M;kk++) { y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK); mt[kk] = mt[kk+M] ^ (y >> 1) ^ mag01[y & 0x1UL]; } for (;kk<N-1;kk++) { y = (mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK); mt[kk] = mt[kk+(M-N)] ^ (y >> 1) ^ mag01[y & 0x1UL]; } y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK); mt[N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1UL]; mti = 0; } y = mt[mti++]; /* Tempering */ y ^= (y >> 11); y ^= (y << 7) & 0x9d2c5680UL; y ^= (y << 15) & 0xefc60000UL; y ^= (y >> 18); return y;
}
long atn_int31_randommt(void)
{
return (long)(atn_int32_randommt()>>1);
}[/code:3tfnwgry]
Код функции генератора случайных чисел еафины за билдом нумер 2268. Не вдаваясь в подробности и ОЧЕНЬ утрированно - при запуске сервер создает случайное число. Все дальнейшие вызовы этой функции (а вызывается она часто - перемещение мобов по локации, дроп, скиллы, заточка и куча всего другого) над этим числом производятся хитрые преобразования, по результатам которых получается следующее число. И т.д. для каждого рандомайза. Суть в том, что теоретически возможно предсказать следующее значение, которое выдаст данная функция. Но для этого надо, чтобы данную функцию не вызывал вообще никто, кроме игрока (т.е. сервер должен держать абсолютно пустые локации. К примеру, замки не во время гв). Зная начальное значение генератора, можно добиться нужного нам результата, если рассчитать последовательность случайных чисел на мноооого шагов вперед и "сбрасывать" неподходящие значения ненужным вызовом этой функции (к примеру, быть мсом и пытаться нубоножик заточить). Отсюда вывод - при наличии сферического сервера в вакууме и большого количества упрямства можно корейским рандомом рулить.Теперь что касается покемончиков. Т.к. сейчас на компе афины у меня нет, а качать билд мне лень, точно сказать не могу. Но с огромной долей уверенности предположу, что в описании обработки левел апа гомункулуса идет вызов этого самого генератора, дабы определить рост статов. Учитывая вывод предыдущего абзаца - при наличии сферического сервера в вакууме и ОЧЕНЬ большого количества упрямства можно наутюжить себе идеального покемона, у которого рост статов на каждом уровне будет максимален для своего вида.
Но, повторюсь, это не в реалиях игровых серваков. Это на локальном-то фиг сделаешь (да и зачем?).Кстати, отсюда же опровержение того, что рост хомяка закладывается при рождении. Я крайне сомневаюсь, что на каждого покемона сервер создает файл, в котором закладывает значения для роста статов на левел-апы. Ибо нафиг надо разработчикам так делать. Логичнее при каждом уровне взывать ко всемогущему рандому.
Так что вот. Надеюсь, хоть сколько-то стало понятнее х___х
PS Цензура десу х_х заменила нехорошие слова на хорошие, но смысл остался тот же.
-
[code:18sdic9l]int merc_hom_levelup(struct homun_data *hd)
{
тут было бла бла про получение скилпоинтом и много чего еще, но не хочу огромных цитатgrowth_max_hp = rand(min->HP, max->HP); growth_max_sp = rand(min->SP, max->SP); growth_str = rand(min->str, max->str); growth_agi = rand(min->agi, max->agi); growth_vit = rand(min->vit, max->vit); growth_dex = rand(min->dex, max->dex); growth_int = rand(min->int_,max->int_); growth_luk = rand(min->luk, max->luk); //Aegis discards the decimals in the stat growth values! growth_str-=growth_str%10; growth_agi-=growth_agi%10; growth_vit-=growth_vit%10; growth_dex-=growth_dex%10; growth_int-=growth_int%10; growth_luk-=growth_luk%10; hom->max_hp += growth_max_hp; hom->max_sp += growth_max_sp; hom->str += growth_str; hom->agi += growth_agi; hom->vit += growth_vit; hom->dex += growth_dex; hom->int_+= growth_int; hom->luk += growth_luk;
тут было еще немного бла бла
}
[/code:18sdic9l]Это к теме левел апа. Считается прирост, откидываются знаки после запятой, прирост прибавляется к статам. Функция rand генерирует случайные числа между min и max. Значения статов для аргументов (например min->str, max->str) указаны в отдельном файле и для каждого типа свои.
Почему иначе было бы крайне нелогично хорошо расписано у Aiko Star.
Код из Revision 13695. -
А я верю в то, что если накормить хомячка до 200%, он раздуется и лопнет :sorry:
-
а ешё его разорвёт капля никатина
-
вот вам для раздумий:
Был у меня на сервере Терра хим с гомункулом Филир. очень хотелось посмотреть, что с ним(гомом) будет на 99 лвле..
Когда появился тестовый Альтаир, и был произведен перенос персов туда, то я решил исполнить свою мечту и покачать его там, заодно посмотреть как раскидываются статы... следил за ними последующие 10 лвлов
прокачал его на АЛьтаире, удовлетворился тестами и решил докачать на терре...
и что бы вы могли подумать? статы у гома вкачивались именно так, как это происходило на Альтаире.. точь-в-точь..
Совпадение? -
На Терре не могло быть гома, лол.
-
терра наверно нынешний мотр, ибо сириус на терру переносили
-
Переноса с сервера на сервер с гомункулами не было.
Сначала были терра+сириус, потом открыли альтаир, на который в какой-то момент перенесли дб с терры, а потом с сириуса.
Потом альтаир вайпнули, а на новый сервер, мотр, перенесли дб с сириуса и терры, где гомов не было. -
Мда долги был процесс.
Думаю парень чтото напутал, но суть в том, что гом получился такойже...