Просмотр полной версии : Можно ли где-нибудь узнать формулы прироста скила?
HammerHeaD
13.06.2004, 21:33
Качаю химию, и вот буквально с 50 бутылок, прирост на 0.4, а потом сто бутылок и прирост 0. Или с магией, качаешь полтора часа на инноксах, не прирастает, а потом в течение 1 минуты на 0.2 вырастет.
Мне кажется, что если это и рандом, то какой-то гнилой. Хотелось бы увидеть формулы этого самого рандома. Наверное это не такая закрытая информация, которую надо прятать от игроков. Вон выложили ведь на стратиксе точные формулы расчета повреждения. И не совсем понятно, почему бытует мнение, что когда народу много - качается плохо, качается помоему так же. Тогда это странная формула, если в ней ограничение на общий прирост скила на шарде, или на количество игроков.
прокачай себе все и не парься подобными вопросами
В сфере для роста скилла обычно указывается, вроде :D, 3 числа, например: (0, 10, 500)
Где ориентировочно в промежутке роста от 0 до 50 нужно сделать 0-10 удачных попыток для повышения на 0,1, от 50 до 100 - 10-500 :)
Это 3 циферки в скрипте для каждого скилла девелоперами прописываются индивидуально.
Все остальное высчитается некими формулами, с использованием этих 3х циферок, скрытыми в исходниках сферы.
Если вкратце - рандом дикий :)
ЗЫ: могу ошибаться ввиду плохой памяти т.к. последний раз в скрипты сферы лазил года 1.5 назад. :D
но вроде так, во всяком случае смысл таков
Narcomanser
14.06.2004, 10:14
Возмём 20,60,200
точно не помною но что 200 это точно это очень долгая скорость прокачки !
+чесло 20 это скорость роста от 0-35
+чесло 60 это скорость роста от 30-70
+чесло 200 скорость роста от 70 до гма
.
К томуже прошитывает сфера такие веши как айтем который ты крафтиш то биш нужный скилл на него ! И вычесляет определённый шанс роста скила и примерно рандомит его !
Я думаю не выдавать полностью все формулы потомучно ! там рандомит сама сфера так что ! это уже её дело !
Graf Lvov
14.06.2004, 14:52
Еще, насколько я знаю, рост скила очень сильно зависит от колличества игроков, качающих данный скил. Т.е. если в данный момент магию качает одновременно 100 человек (+к этому же относить любое ее использование), скил будет расти медленнее, чем при цифре в 10 человек. Например: когда я качал тэйлоринг, Наилучший рост был только с 5-6 утра до 11-12 часов дня при условии, что до этих 5-6 часов утра был дисконнект и народ, который на ночь ставил чара макросить слетал. Соответственно, народ, качающий тот же самый тэйлоринг уменьшался втрое, скилл летел как на дрожжах., после 11-12 дня, появлялись "слетевшие" макросники, и рост скила понижался в 1.5 раза. (Данные проверены неоднократно, на многих скилах).
Еще, насколько я знаю, рост скила очень сильно зависит от колличества игроков, качающих данный скил. Т.е. если в данный момент магию качает одновременно 100 человек (+к этому же относить любое ее использование), скил будет расти медленнее, чем при цифре в 10 человек. Например: когда я качал тэйлоринг, Наилучший рост был только с 5-6 утра до 11-12 часов дня при условии, что до этих 5-6 часов утра был дисконнект и народ, который на ночь ставил чара макросить слетал. Соответственно, народ, качающий тот же самый тэйлоринг уменьшался втрое, скилл летел как на дрожжах., после 11-12 дня, появлялись "слетевшие" макросники, и рост скила понижался в 1.5 раза. (Данные проверены неоднократно, на многих скилах).
Скорее всего это стало не потому , что меньше народу перестало кочать конкретное умение, а попросту потому, что на сервере стало меньше народу.
HammerHeaD
14.06.2004, 21:07
И все таки непонятно, может кто-нибудь из стаффа, или девелопперы скажут по каким формулам расчет идет? Или информация в исходника настолько закрыта, что даже девелопперы не знают как там все считается? Или хотя бы скрипты сферовские на скилы разные киньте, чтобы знать что тяжело качать, а что нет. Ответы типа карпу качать проще чем инскрипт не устраивают, а устраивают ответы типа иннскрипт качать в 2.83 раза тяжелее чем карпу. :D
[SKILL 23]
DEFNAME=Skill_Inscription
KEY=Inscription
TITLE=Scribe
PROMPT_MSG=
DELAY=3.0
STAT_STR=15
STAT_INT=100
STAT_DEX=15
BONUS_STR=0
BONUS_DEX=0
BONUS_INT=100
BONUS_STATS=90
ADV_RATE=800.0,200.0,10.0
VALUES=200,30,1
//ADV_RATE=800.0,200.0,10.0 - это 800.0 удачных попыток при 100% чтобы получить 0.1, 200.0 удачных попыток при 50% чтобы получить 0.1, 10.0 удачных попыток при 0% чтобы получить 0.1
P.S. более подробная инфа о других скиллах в spheretables.scp
А как формулы узнать?
Формулы к сожалению хардкодед в исходниках сферы. У меня есть исходники от 54, но я думаю в 55 примерно тоже самое.
//
// Calc.cpp
//
// Basic Numeric formulas.
#ifdef GRAY_AGENT
#include "../grayagent/stdafx.h"
#include "../grayagent/grayagent.h"
#elif defined(GRAY_MAP)
#include "../graymap/stdafx.h"
#include "../graymap/graymap.h"
#else
#include "graycom.h"
#endif
int Calc_GetLog2( UINT iVal )
{
// This is really log2 + 1
int i=0;
for ( ; iVal; i++ )
{
ASSERT( i < 32 );
iVal >>= 1 ;
}
return( i );
}
int Calc_GetRandVal( int iqty )
{
if ( iqty <= 0 )
return( 0 );
if ( iqty > RAND_MAX )
{
return( IMULDIV( rand(), (DWORD) iqty, RAND_MAX + 1 )) ;
}
return( rand() % iqty );
}
int Calc_GetBellCurve( int iValDiff, int iVariance )
{
// Produce a log curve.
//
// 50+
// |
// |
// |
// 25| +
// |
// | +
// | +
// 0 --+--+--+--+------
// iVar iValDiff
//
// АРГУМЕНТЫ:
// iValDiff = даёт значение близкое к 0
// 0 = 50.0% chance.
// iVariance = точка 25.0% различия в кривой нормального распределения
// ВОЗВРАЩАЕТ:
// (0-100.0) % шанс при этом iValDiff'е.
// шанс становится меньше Diff становится больше.
// ПРИМЕР:
// if ( iValDiff == iVariance ) return( 250 )
// if ( iValDiff == 0 ) return( 500 );
//
if ( iVariance <= 0 ) // это реально не должно произайти, только ради случая.
return( 500 );
if ( iValDiff < 0 ) iValDiff = -iValDiff;
#ifdef _DEBUG
int iCount = 32;
#endif
int iChance = 500;
while ( iValDiff > iVariance && iChance )
{
iValDiff -= iVariance;
iChance /= 2; // шанс усреднён для каждого периода колебания.
#ifdef _DEBUG
iCount--;
ASSERT( iCount );
#endif
}
return( iChance - IMULDIV( iChance/2, iValDiff, iVariance ));
}
int Calc_GetSCurve( int iValDiff, int iVariance )
{
// АРГУМЕНТЫ:
// iValDiff = Различие между уровнем вашего скилла и сложностью.
// positive = болшьшой шанс, negative = маленький шанс
// 0 = 50.0% шанс.
// iVariance = точка 25.0% различия в кривой нормального распределения
// ВОЗВРАЩАЕТ:
// какой (0-100.0)% шанс удачной попытки = 0-1000
// ЗАМЕТКА:
// Шанс прироста скилла это противоположность шанса удачной попытки.
//
int iChance = Calc_GetBellCurve( iValDiff, iVariance );
if ( iValDiff > 0 )
return( 1000 - iChance );
return( iChance );
}
P.S. комментарии переводил сам.
Старый добрый СЯ. Где брал...?
Старый добрый СЯ. Где брал...?
Один добрый человек дал исходники :D Если надо могу дать.. только вот я толком и не пойму от сферы они или от Grayworld'a... мне сказали от 54той сферы но я что-то не очень в этом уверен
Еще, насколько я знаю, рост скила очень сильно зависит от колличества игроков, качающих данный скил. Т.е. если в данный момент магию качает одновременно 100 человек (+к этому же относить любое ее использование), скил будет расти медленнее, чем при цифре в 10 человек. ит.д.(Данные проверены неоднократно, на многих скилах).
чушь. не верьте в это.
Отлично, почему ни единого слова о хавчике, походу все уже заметили что сытость так или иначе влияет, хотелось бы пару слов об этом.
по поводу хавки это мое конечно чубъективное мнение но по моему если и влияет то незначительно
Powered by vBulletin™ Version 4.0.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot