Thread: Формулы!
View Single Post
Old 10-02-2004, 07:21   #12
Silicoid
Камрад
 
Join Date: апр 2003
Posts: 330
t_G_M_
И, прости если лезу под руку, но вместо бешенного количества одинаковых процедур (2-х видов, в конце) можно было создать 2 процедуры и назначить их в Events\OnChange или Events\OnClick
Программу заканчивал наспех в 2 часа ночи так что уж извиняйте
Исходники у вас есть так что можете менять и оптимизировать там все что угодно.

gif77
Так вот имеет ли смысл кастить этот щит именно епископом? Или самураем будет также хорошо?
Проверю эту ситуацию...

gif77
Кстати (хотя может, и не кстати, сорри) а не влияет ли ношение самурайских доспехов, с типом веса "Особый" (До-мару, Тосейдо, и... и... Хрен-Запомнишь-Что-Это-Было) на вероятность молниеносного удара?

Все, товарищи! Вопрос с молниеносным ударом решен! Упустил один важный, но очень необычный момент. Если бы своими собствеными глазами не видел в коде, никогда бы не догадался! Вот он:

===============================================================
Общий алгоритм допустимости молниеносного удара:

Есть переменая для каждого перса назовем ее Previous Round Action (PRA) -
показывает, что делал перс в предыдущем ходу.

Таблица зависимостей PRA от действий в течении хода:

Событие: действие
1. Начало боя: всем персам PRA = -1
2. Перс провел атаку ближнего боя: PRA перса = 0
3. Перс пропустил ход из-за отсутствия цели: PRA перса = 4
4. В течении хода команда двигалась: Цикл по всем персам, для каждого перса кидается "кубик",
если значение "кубика" > количества оставшегося движения (0-100),
то PRA текущего обрабатываемого перса = -1

Теперь как работает молниеносный удар:
1. Начало хода, Цикл по всем персам (самураям),
Если PRA перса = 0 то Попытаться_кинуть_молниеносный_удар (см. формулу в предыдущих постах)
2. Осуществить атаки, удары и т.п. (записывая для всех персов новые PRA)
3. GOTO 1

Выводы:
1. В первом ходу боя никогда не будет молниеносного удара.
2. Если перс пропустил ход из-за отсутствия цели, в следующем ходу молниеносного удара не будет!
3. Если команда двигалась в течении хода, то есть шанс что в следующем ходу молниеносные удары у самураев не выпадут даже если они атаковали в предыдущем ходу.

Короче говоря молниеносный удар выпадает только если атаки идут вслитняк, малейшее прерывание и обломс самураю.
Отсюда следует совет: Никогда не давайте самураю пропускать текущий ход, иначе в следующем ходу не видать вам молниеносного удара как своих собственных ушей

P.S. Данный момент я упустил в прошлый раз, потому что тестировал молниеносный удар
на королевском крабе причем в начале хода сразу подбежал и потом не двигался,
да еще и цель всего одна, поэтому все мои самураи никогда не пропускали ход вот у меня
и шли один за другим молниеносные удары без перерыва (я сделал себе для тестирования вероятность 100% )

P.P.S Зависимостей от нагрузки по прежнему не обнаружил

================================================================

... продолжение темы о росте навыка:

Формула расчета вероятности увеличения навыка на единицу для одной попытки (про попытки см. пост выше)

ATTR = INT((Attributes1 + Attributes2)/2)
---------------------------------------------
X = НАВЫК*100
X = INT((X*1374389535)/2^32)
X = INT(X/32)
X = 100-X
X = X*ATTR
X = INT((X*1374389535)/2^32))
X = INT(X/32)
RND = Random[1..100]
ЕСЛИ RND<X ТО
count = count + 1
ЕСЛИ count>8 ТО
count = 0
увеличить_навык_на_единицу
КОНЕЦ
КОНЕЦ

ГДЕ:
Attributes1, Attributes2 - первый и второй атрибут от которых зависит навык
НАВЫК - текущее значение навыка
count - внутрений счетчик, для каждого навыка свой, это как бы доля навыка (меняется от 0 до 7)
1374389535 = 0x51EB851F


P.S. Кстати все время забываю сказать, все приводимые формулы актуальны для версии 1.24 уровень сложности Normal. Так что для easy и expert-а поправки делайте сами, я не тестирую эти уровни сложности из-за недостатка времени.



to be contunue...
Silicoid is offline   [Ответить с цитированием]