„ASPD” változatai közötti eltérés

A Ragna.ro Wiki wikiből
32. sor: 32. sor:
  
 
==Kalkulátor==
 
==Kalkulátor==
 
<script language="JavaScript">
 
 
if(!language || language == "en")
 
{
 
JobName = ["Novice","Swordsman","Thief","Acolyte","Archer","Magician","Merchant","Knight","Assassin","Priest","Hunter","Wizard","Blacksmith","Crusader","Rogue","Monk","Bard","Dancer","Sage","Alchemist", "Super Novice","Taekwon Kid","Taekwon Master","Soul Linker", "Ninja","Gunslinger", "Lord Knight","Assassin Cross","High Priest","Sniper","High Wizard", "Mastersmith", "Paladin", "Stalker", "Champion", "Minstrel", "Gypsy", "Professor", "Biochemist", "Rune Knight", "Guillotine Cross", "Arch Bishop", "Ranger", "Warlock", "Mechanic", "Royal Guard", "Shadow Chaser", "Shura", "Minstrel", "Wanderer", "Scorcerer", "Genetic"];
 
 
WeaponName = ["Unarmed","Dagger","Sword","Two-handed Sword","Spear","Two-handed Spear","Axe","Two-handed Axe","Mace","Rod","Bow","Katar","Book","Knuckle","Instrument","Whip","Huuma Shuriken","Handgun","Rifle","Shotgun","Gatling Gun","Grenade Launcher"];
 
 
SpeedPotName = ["None","Concentration Potion","Awakening Potion","Berserk Potion"];
 
 
SpeedBoostName = ["None", "Andrenaline Rush", "Two Hand Quicken", "Frenzy"];
 
 
AddFieldName = ["Weapon","Aspd Potion","Shield","Aspd Skill","Trans","Class","Weapon/Skill/Other","Results","Remaining Stat Points:","Total Stat Points:","Stat Points Used:"];
 
 
}
 
 
if(language == "kr")
 
{
 
JobName = ["노비스", "검사", "도둑", "복사", "궁수","마술사","상인","기사","어쌔신","프리스트","헌터","위저드","블랙스미스","크루세이더", "로그","몽크","바드","댄서","세이지","알케미스트", "슈퍼노비스","태권소년/소녀","권성", "소울링커","닌자","건슬링거", "로드나이트","어쌔신크로스","하이프리스트","스나이퍼","하이위저드", "화이트스미스", "팔라딘", "스토커", "챔피언", "크로운", "집시", "프로페셔", "크리에이터", "룬 나이트", "길로틴 크로스", "아크비숍", "레인져", "워록", "미케닉", "로열 가드", "쉐도우 체이서", "수라", "민스트렐", "원더러", "소서러", "제네릭"];
 
 
WeaponName = ["맨손","단검","한손검","양손검","창","양손창","도끼","양손도끼","둔기","지팡이","활","카타르","책","손톱","악기","채찍","풍마 수리검","리볼버","라이플","샷건","개틀링건","그레네이드런쳐"];
 
 
SpeedPotName = [" -- ","집중의 포션","각성의 포션","버서크 포션"];
 
 
SpeedBoostName = [" -- ", "아드레날린 러쉬", "투핸드 퀴큰", "버서크"];
 
 
AddFieldName = ["무기종류","공속포션","방패","공속스킬","전승","직업","무기/스킬/기타","결과","남은 스탯포인트:","총 스탯포인트:","사용된 스탯포인트:"];
 
}
 
 
if(language == "jp")
 
{
 
JobName = ["ノービス","ソードマン","シーフ","アコライト","アーチャー","マジシャン","マーチャント","ナイト","アサシン","プリースト","ハンター","ウィザード","ブラックスミス","クルセイダー","ローグ","モンク","バード","ダンサー","セージ","アルケミスト","スーパーノービス","テコン","拳聖","ソウルリンカー","忍者","ガンスリンガー", "ロードナイト","アサシンクロス","ハイプリースト","スナイパー","ハイウィザード","ホワイトスミス","パラディン","チェイサー","チャンピオン","クラウン","ジプシー","プロフェッサー","クリエーター",
 
"ルーンナイト", "ギロチンクロス", "アークビショップ", "レンジャー", "ウォーロック", "メカニック", "ロイヤルガード", "シャドウチェイサー", "修羅", "ミンストレル", "ワンダラー", "ソーサラー", "ジェネリック"];
 
 
WeaponName = ["素手","短剣","片手剣","両手剣","片手槍","両手槍","片手斧","両手斧","鈍器","杖","弓","カタール","本","ナックル","楽器","鞭","風魔手裏剣","ハンドガン","ライフル","ショットガン","ガトリングガン","グレネードガン"];
 
 
SpeedPotName = ["なし","スピードアップポーション","ハイスピードポーション","バーサークポーション"];
 
 
SpeedBoostName = ["なし", "アドレナリンラッシュ", "ツーハンドクイッケン", "バーサーク"];
 
 
AddFieldName = ["武器タイプ:","スピードポーション:","盾:","Aspdスキル:","転生:","クラス","武器/スキル/その他","結果","残りのステータスポイント:","ステータスポイントの総計:","使用済みのステータスポイント:"];
 
 
}
 
 
n_maxlvl = 99;
 
n_maxstats = 99;
 
 
for(i=0; i<=100; i++)
 
{
 
document.calcForm.A_STRplus.options[i] = new Option(i,i);
 
document.calcForm.A_AGIplus.options[i] = new Option(i,i);
 
document.calcForm.A_VITplus.options[i] = new Option(i,i);
 
document.calcForm.A_INTplus.options[i] = new Option(i,i);
 
document.calcForm.A_DEXplus.options[i] = new Option(i,i);
 
document.calcForm.A_LUKplus.options[i] = new Option(i,i);
 
}
 
 
for(i=0; i<=100; i++)
 
{
 
document.calcForm.A_AspdPercent.options[i] = new Option(i + "%",i);
 
}
 
 
function StCalc()
 
{
 
n_str = eval(document.calcForm.A_STR.value);
 
n_agi = eval(document.calcForm.A_AGI.value);
 
n_vit = eval(document.calcForm.A_VIT.value);
 
n_int = eval(document.calcForm.A_INT.value);
 
n_dex = eval(document.calcForm.A_DEX.value);
 
n_luk = eval(document.calcForm.A_LUK.value);
 
 
stpoint = 0;
 
 
for(i = 1; i < n_str; i++)
 
stpoint += StCalc2(i);
 
for(i = 1; i < n_agi; i++)
 
stpoint += StCalc2(i);
 
for(i = 1; i < n_vit; i++)
 
stpoint += StCalc2(i);
 
for(i = 1; i < n_int; i++)
 
stpoint += StCalc2(i);
 
for(i = 1; i < n_dex; i++)
 
stpoint += StCalc2(i);
 
for(i = 1; i < n_luk; i++)
 
stpoint += StCalc2(i);
 
 
//n_baselv = eval(document.calcForm.A_BaseLV.value);
 
 
 
//Force jobs to trans/non trans as needed
 
if(n_class >= 7 && n_class <= 25)
 
document.calcForm.IsTrans.checked = 0;
 
if(n_class >= 26 && n_class <= 38)
 
document.calcForm.IsTrans.checked = 1;
 
 
 
if(eval(document.calcForm.IsTrans.checked))
 
totalstat = 100;
 
else
 
totalstat = 48;
 
 
for(i = 1; stpoint > totalstat && i < 150; i++)
 
{
 
if(i < 100)
 
totalstat += Math.floor((i) / 5) + 3;
 
else
 
totalstat += Math.floor((i - 100) / 10) + 23;
 
}
 
 
if(i > n_maxlvl)
 
i = n_maxlvl;
 
 
//set base level and remaining stat values.
 
document.calcForm.A_BaseLV.value = i;
 
 
myInnerHtml("A_StPoint",totalstat - stpoint,0);
 
myInnerHtml("A_StPointUsed",stpoint,0);
 
myInnerHtml("A_StPointTotal",totalstat,0);
 
 
StSubStatCalc();
 
//ChangeJob();
 
}
 
 
function StCalc2(sp)
 
{
 
if(sp < 100)
 
return Math.floor((sp - 1) / 10) + 2;
 
else
 
return Math.floor((sp - 100) / 5) * 4 + 16;
 
}
 
 
function StSubStatCalc()
 
{
 
n_baselv = eval(document.calcForm.A_BaseLV.value);
 
n_str = eval(document.calcForm.A_STR.value);
 
n_str += eval(document.calcForm.A_STRplus.value);
 
 
n_agi = eval(document.calcForm.A_AGI.value);
 
n_agi += eval(document.calcForm.A_AGIplus.value);
 
 
n_vit = eval(document.calcForm.A_VIT.value);
 
n_vit += eval(document.calcForm.A_VITplus.value);
 
 
n_int = eval(document.calcForm.A_INT.value);
 
n_int += eval(document.calcForm.A_INTplus.value);
 
 
n_dex = eval(document.calcForm.A_DEX.value);
 
n_dex += eval(document.calcForm.A_DEXplus.value);
 
 
n_luk = eval(document.calcForm.A_LUK.value);
 
n_luk += eval(document.calcForm.A_LUKplus.value);
 
 
atk = Math.floor(n_str + n_baselv / 4 + n_dex / 5 + n_luk / 3);
 
matk = Math.floor(n_int * 1.5) + Math.floor(n_dex / 5) + Math.floor(n_baselv / 4) + Math.floor(n_luk / 3);
 
def_s = Math.floor(n_baselv / 2 + n_agi / 5 + n_vit / 2);
 
mdef_s = Math.floor(n_baselv / 4) + Math.floor(n_vit / 5) + Math.floor(n_dex / 5) + n_int;
 
hit = 175 + n_baselv + n_dex + Math.floor(n_luk / 3);
 
flee = 100 + n_baselv + n_agi + Math.floor(n_luk / 5);
 
flee_p = Math.floor(n_luk / 10);
 
crit = 1 + Math.floor(n_luk / 3);
 
 
myInnerHtml("A_Atk",atk + " + 0",0);
 
myInnerHtml("A_MAtk",matk + " + 0",0);
 
myInnerHtml("A_Def",def_s + " + 0",0);
 
myInnerHtml("A_MDef",mdef_s + " + 0",0);
 
myInnerHtml("A_Hit",hit,0);
 
myInnerHtml("A_Flee",flee + " + " + flee_p,0);
 
myInnerHtml("A_Crit",crit,0);
 
 
//Attack Speed calculation from here.
 
n_aspd = CalcAspd();
 
 
myInnerHtml("A_Aspd",n_aspd,0);
 
}
 
 
function CalcAspd()
 
{
 
n_class = eval(document.calcForm.A_Class.value);
 
n_weaponaspd = eval(document.calcForm.A_WeaponType.value);
 
n_agi = eval(document.calcForm.A_AGI.value);
 
n_agi += eval(document.calcForm.A_AGIplus.value);
 
n_dex = eval(document.calcForm.A_DEX.value);
 
n_dex += eval(document.calcForm.A_DEXplus.value);
 
n_boost = eval(document.calcForm.A_AspdBoost.value);
 
n_bonus = eval(document.calcForm.A_SpeedPOT.value);
 
 
n_percent = eval(document.calcForm.A_AspdPercent.value);
 
 
n_bonus += n_boost;
 
 
//Check and apply shield modifier if needed.
 
n_shield = eval(document.calcForm.A_Shield.checked);
 
 
if(n_shield)
 
{
 
n_shield = ItemAspd[n_class][23];
 
 
//Exception for bishop additional shield penalty unarmed
 
if(n_class == 41 && eval(document.calcForm.A_WeaponType.selectedIndex) == 0)
 
n_shield = -10;
 
}
 
else
 
n_shield = 0;
 
 
// Block calculations where no base aspd value was provided.
 
if(n_weaponaspd == -1)
 
{
 
myInnerHtml("A_AspdCalc","",0);
 
return "N/A";
 
}
 
 
n_bow = 0;
 
 
//Calculate bow exception
 
 
//Thief Type Job
 
if((n_class == 2 || n_class == 14 || n_class == 33 || n_class == 46) && eval(document.calcForm.A_WeaponType.selectedIndex) == 3)
 
n_bow = 1;
 
 
//Archer Type Job (with Bow)
 
if(n_class == 35 || n_class == 36 || n_class == 42 || n_class == 29 || n_class == 10 || n_class == 4)
 
{
 
if(eval(document.calcForm.A_WeaponType.selectedIndex) == 2)
 
n_bow = 1;
 
}
 
 
//Gunslinger
 
if(n_class == 25 && eval(document.calcForm.A_WeaponType.selectedIndex) > 0)
 
n_bow = 1;
 
 
//Bard & Dancer with instrument
 
if((n_class == 16 || n_class == 17 || n_class == 35 || n_class == 36 || n_class == 48 || n_class == 49) && eval(document.calcForm.A_WeaponType.selectedIndex) == 3)
 
n_bow = 1;
 
 
 
//Calculate new aspd value
 
if(!n_bow)
 
realaspd = n_weaponaspd + Math.floor(Math.sqrt(((n_agi*n_agi)/2)+((n_dex*n_dex)/5))/4+(n_bonus*n_agi/200)+n_shield);
 
else
 
realaspd = n_weaponaspd + Math.floor(Math.sqrt(((n_agi*n_agi)/2)+((n_dex*n_dex)/7))/4+(n_bonus*n_agi/200)+n_shield);
 
 
//Cap aspd to 190 or 193 depending on if they are 3rd job
 
if(n_maxlvl == 99)
 
{
 
if(realaspd > 190)
 
realaspd = 190;
 
}
 
else
 
{
 
if(realaspd > 193)
 
realaspd = 193;
 
}
 
 
//For the formula display section
 
if(!n_bow)
 
var aspdcalc = "aspd = " + n_weaponaspd + " + floor(sqrt((" + n_agi + "^2/2) + (" + n_dex + "^2/5))/4 + (" + n_bonus + "*" + n_agi + "/200) + " + n_shield + ")";
 
else
 
var aspdcalc = "aspd = " + n_weaponaspd + " + floor(sqrt((" + n_agi + "^2/2) + (" + n_dex + "^2/7))/4 + (" + n_bonus + "*" + n_agi + "/200) + " + n_shield + ")";
 
 
if(n_percent > 0)
 
{
 
if(n_maxlvl == 99)
 
maxaspd = 190;
 
else
 
maxaspd = 193;
 
 
aspdcalc = aspdcalc + "<br>aspd = " + realaspd;
 
aspdcalc = aspdcalc + "<br> aspd = " + realaspd + " + round((" + maxaspd + " - " + realaspd + ") * (" + n_percent + "/100))";
 
 
realaspd = realaspd + Math.round((maxaspd - realaspd) * (n_percent / 100));
 
}
 
 
aspdcalc = aspdcalc + "<br>aspd = " + realaspd;
 
 
myInnerHtml("A_AspdCalc",aspdcalc,0);
 
 
 
return realaspd;
 
}
 
 
function ChangeJob()
 
{
 
n_class = eval(document.calcForm.A_Class.value);
 
 
document.calcForm.A_WeaponType.options.length=0;
 
j = 0;
 
for(i = 0; i<22; i++)
 
{
 
n_itemaspd = ItemAspd[n_class][i+1];
 
if(n_itemaspd != 0)
 
{
 
document.calcForm.A_WeaponType.options[j] = new Option(WeaponName[i],n_itemaspd);
 
j++;
 
}
 
}
 
 
if(n_class >= 7 && n_class <= 25)
 
document.calcForm.IsTrans.checked = 0;
 
 
if(n_class >= 26 && n_class <= 38)
 
document.calcForm.IsTrans.checked = 1;
 
 
document.calcForm.A_BaseLV.options.length=0;
 
document.calcForm.A_STR.options.length=0;
 
document.calcForm.A_AGI.options.length=0;
 
document.calcForm.A_VIT.options.length=0;
 
document.calcForm.A_INT.options.length=0;
 
document.calcForm.A_DEX.options.length=0;
 
document.calcForm.A_LUK.options.length=0;
 
if(n_class <= 38)
 
{
 
n_maxlvl = 99;
 
n_maxstats = 99;
 
}
 
else
 
{
 
n_maxlvl = 150;
 
n_maxstats = 120;
 
}
 
 
for(i=1; i<=n_maxlvl; i++)
 
document.calcForm.A_BaseLV.options[i-1] = new Option(i,i);
 
 
for(i=1; i<=n_maxstats; i++)
 
{
 
document.calcForm.A_STR.options[i-1] = new Option(i,i);
 
document.calcForm.A_AGI.options[i-1] = new Option(i,i);
 
document.calcForm.A_VIT.options[i-1] = new Option(i,i);
 
document.calcForm.A_INT.options[i-1] = new Option(i,i);
 
document.calcForm.A_DEX.options[i-1] = new Option(i,i);
 
document.calcForm.A_LUK.options[i-1] = new Option(i,i);
 
}
 
 
ActiveBoost = [1,0,0,0];
 
 
switch(n_class)
 
{
 
case 39:
 
case 26:
 
//Rune Knight/Lord Knight
 
ActiveBoost[3] = 1;
 
 
case 7:
 
ActiveBoost[2] = 1;
 
break;
 
case 12:
 
case 31:
 
case 44:
 
ActiveBoost[1] = 1;
 
}
 
 
document.calcForm.A_AspdBoost.options.length=0;
 
j = 0;
 
for(i=0; i < 4; i++)
 
{
 
if(ActiveBoost[i] == 1)
 
{
 
document.calcForm.A_AspdBoost.options[j] = new Option(SpeedBoostName[i],AspdBoost[i]);
 
j++;
 
}
 
}
 
 
StCalc();
 
}
 
 
for(i=0; i<=51; i++)
 
{
 
document.calcForm.A_Class.options[i] = new Option(JobName[i],i);
 
}
 
 
document.calcForm.A_SpeedPOT.options[0] = new Option(SpeedPotName[0],0);
 
document.calcForm.A_SpeedPOT.options[1] = new Option(SpeedPotName[1],4);
 
document.calcForm.A_SpeedPOT.options[2] = new Option(SpeedPotName[2],6);
 
document.calcForm.A_SpeedPOT.options[3] = new Option(SpeedPotName[3],9);
 
 
ChangeJob();
 
StSubStatCalc();
 
 
//Translation
 
myInnerHtml("T_Weapon",AddFieldName[0],0);
 
myInnerHtml("T_Aspdpot",AddFieldName[1],0);
 
myInnerHtml("T_Shield",AddFieldName[2],0);
 
myInnerHtml("T_Aspdboost",AddFieldName[3],0);
 
myInnerHtml("T_Trans",AddFieldName[4],0);
 
myInnerHtml("T_Class",AddFieldName[5],0);
 
myInnerHtml("T_WeaponSkill",AddFieldName[6],0);
 
myInnerHtml("T_Results",AddFieldName[7],0);
 
myInnerHtml("T_StatsRemaining",AddFieldName[8],0);
 
myInnerHtml("T_StatsTotal",AddFieldName[9],0);
 
myInnerHtml("T_StatsUsed",AddFieldName[10],0);
 
 
ItemAspd = [
 
[0,156,141,139,0,0,0,0,0,146,132,0,0,0,0,0,0,0,0,0,0,0,0,-10],
 
[1,156,149,149,142,139,131,141,136,146,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[2,156,148,146,0,0,0,0,0,0,0,143,0,0,0,0,0,0,0,0,0,0,0,-6],
 
[3,156,0,0,0,0,0,0,0,151,137,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[4,156,141,0,0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[5,146,136,0,0,0,0,0,0,0,142,0,0,0,0,0,0,0,0,0,0,0,0,-10],
 
[6,156,-1,-1,-1,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[7,156,147,151,144,141,136,146,141,151,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[8,156,154,146,0,0,0,145,0,0,0,0,154,0,0,0,0,0,0,0,0,0,0,-6],
 
[9,156,0,0,0,0,0,0,0,153,136,0,0,152,136,0,0,0,0,0,0,0,0,-5],
 
[10,156,143,0,0,0,0,0,0,0,0,148,0,0,0,0,0,0,0,0,0,0,0,-9],
 
[11,-1,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[12,156,146,146,0,0,0,150,143,148,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[13,156,148,153,141,143,144,146,141,151,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[14,156,151,146,0,0,0,0,0,0,0,142,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[15,156,0,0,0,0,0,0,0,153,126,0,0,0,156,0,0,0,0,0,0,0,0,-5],
 
[16,156,143,0,0,0,0,0,0,0,0,148,0,0,0,151,0,0,0,0,0,0,0,-7],
 
[17,156,143,0,0,0,0,0,0,0,0,148,0,0,0,0,151,0,0,0,0,0,0,-7],
 
[18,151,143,0,0,0,0,0,0,0,141,0,0,153,0,0,0,0,0,0,0,0,0,-5],
 
[19,156,146,151,0,0,0,151,144,151,0,0,0,0,0,0,0,0,0,0,0,0,0,-4],
 
[20,156,-1,-1,0,0,0,-1,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[21,156,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[22,156,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,-5],
 
[23,146,146,0,0,0,0,0,0,0,143,0,0,0,0,0,0,0,0,0,0,0,0,-8],
 
[24,156,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,-6],
 
[25,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,151,139,106,146,96,-6],
 
[26,156,147,151,144,141,136,146,141,151,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[27,156,154,146,0,0,0,145,0,0,0,0,154,0,0,0,0,0,0,0,0,0,0,-6],
 
[28,156,0,0,0,0,0,0,0,153,136,0,0,152,136,0,0,0,0,0,0,0,0,-5],
 
[29,156,143,0,0,0,0,0,0,0,0,148,0,0,0,0,0,0,0,0,0,0,0,-9],
 
[30,-1,-1,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[31,156,146,146,0,0,0,150,143,148,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[32,156,148,153,141,143,144,146,141,151,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[33,156,151,146,0,0,0,0,0,0,0,142,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[34,156,0,0,0,0,0,0,0,153,126,0,0,0,156,0,0,0,0,0,0,0,0,-5],
 
[35,156,143,0,0,0,0,0,0,0,0,148,0,0,0,151,0,0,0,0,0,0,0,-7],
 
[36,156,143,0,0,0,0,0,0,0,0,148,0,0,0,0,151,0,0,0,0,0,0,-7],
 
[37,151,143,0,0,0,0,0,0,0,141,0,0,153,0,0,0,0,0,0,0,0,0,-5],
 
[38,156,146,151,0,0,0,151,144,151,0,0,0,0,0,0,0,0,0,0,0,0,0,-4],
 
[39,156,146,144,141,136,138,148,144,151,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[40,156,154,131,0,0,0,116,0,0,0,0,154,0,0,0,0,0,0,0,0,0,0,-9],
 
[41,151,0,0,0,0,0,0,0,151,136,0,0,152,146,0,0,0,0,0,0,0,0,-5],
 
[42,156,146,0,0,0,0,0,0,0,0,147,0,0,0,0,0,0,0,0,0,0,0,-8],
 
[43,151,144,0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[44,156,136,131,0,0,0,151,148,148,0,0,0,0,0,0,0,0,0,0,0,0,0,-6],
 
[45,156,-1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-5],
 
[46,156,153,149,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,-4],
 
[47,156,0,0,0,0,0,0,0,-1,-1,0,0,0,-1,0,0,0,0,0,0,0,0,-5],
 
[48,156,144,0,0,0,0,0,0,0,0,146,0,0,0,151,0,0,0,0,0,0,0,-7],
 
[49,156,144,0,0,0,0,0,0,0,0,146,0,0,0,0,151,0,0,0,0,0,0,-7],
 
[50,151,-1,0,0,0,0,0,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,-5],
 
[51,156,-1,-1,0,0,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-5]
 
];
 
 
//aspd boosts
 
AspdBoost = [0,7,7,15];
 
 
function myInnerHtml(wIH1,wIH2,wIH3)
 
{
 
if(wIH3 == 0){
 
wIHOB = document.getElementById(wIH1);
 
while(wIHOB.hasChildNodes()){
 
wIHOB.removeChild(wIHOB.firstChild);
 
}
 
wIHOB.innerHTML = wIH2;
 
}else{
 
wIHOB = document.getElementById(wIH1);
 
wIHOB.insertAdjacentHTML('BeforeEnd',wIH2);
 
 
}
 
}
 
</script>
 
 
 
<a href="calc.php?l=en">English</a> | <a href="calc.php?l=jp">Japanese</a> | <a href="calc.php?l=kr">Korean</a>
 
 
<br>
 
 
 
 
<form name = "calcForm">
 
 
 
 
<table>
 
 
 
 
<tr><td valign="top">
 
 
 
 
<table border>
 
 
<tr><td colspan="2"><span id="T_StatHeader">Basic Stats</span></td></tr>
 
 
<tr><td><span id="T_Class">Class</span></td><td><select name="A_Class" onClick="ChangeJob()"></select></td></tr>
 
 
<tr><td>Level</td><td><select name="A_BaseLV" onClick="StCalc()"></select></td></tr>
 
 
<tr><td>STR</td><td><select name="A_STR" onClick="StCalc()"></select> + <select name="A_STRplus" onClick="StCalc()"></select></td></tr>
 
 
<tr><td>AGI</td><td><select name="A_AGI" onClick="StCalc()"></select> + <select name="A_AGIplus" onClick="StCalc()"></select></td></tr>
 
 
<tr><td>VIT</td><td><select name="A_VIT" onClick="StCalc()"></select> + <select name="A_VITplus" onClick="StCalc()"></select></td></tr>
 
 
<tr><td>INT</td><td><select name="A_INT" onClick="StCalc()"></select> + <select name="A_INTplus" onClick="StCalc()"></select></td></tr>
 
 
<tr><td>DEX</td><td><select name="A_DEX" onClick="StCalc()"></select> + <select name="A_DEXplus" onClick="StCalc()"></select></td></tr>
 
 
<tr><td>LUK</td><td><select name="A_LUK" onClick="StCalc()"></select> + <select name="A_LUKplus" onClick="StCalc()"></select></td></tr>
 
 
<tr><td><span id="T_Trans">Trans</span></td><td><input type="checkbox" name="IsTrans" onClick="StCalc()"></td></tr>
 
 
</table>
 
 
 
 
<span id="T_StatsRemaining">Remaining Stat Points:</span> <span id="A_StPoint">100</span><br>
 
 
<span id="T_StatsTotal">Total Stat Points:</span> <span id="A_StPointTotal">100</span><br>
 
 
<span id="T_StatsUsed">Stat Points Used:</span> <span id="A_StPointUsed">0</span>
 
 
 
 
</td><td valign="top">
 
 
 
 
<table border>
 
 
<tr><td colspan="4"><span id="T_WeaponSkill">Additional Info</span></td></tr>
 
 
<tr><td><span id="T_Weapon">Weapon:</span></td><td><select name="A_WeaponType" onClick="StCalc()"></select></td></tr>
 
 
<tr><td><span id="T_Aspdpot">Aspd Potion:</span></td><td><select name="A_SpeedPOT" onClick="StCalc()"></select></td></tr>
 
 
<tr><td><span id="T_Shield">Shield:</span></td><td><input type="checkbox" name="A_Shield" onClick="StCalc()"></td></tr>
 
 
<tr><td><span id="T_Aspdboost">Aspd Boost:</span></td><td><select name="A_AspdBoost" onClick="StCalc()"></select></td></tr>
 
 
<tr><td><span id="T_Otherboost">% Bonus:</span></td><td><select name="A_AspdPercent" onClick="StCalc()"></select></td></tr>
 
 
</table>
 
 
 
 
</td><td valign="top">
 
 
 
 
<table border>
 
 
<tr><td colspan="4"><span id="T_Results">Derived Stats</span></td></tr>
 
 
<tr><td>Atk</td><td><span id="A_Atk"></span></td><td>Def</td><td><span id="A_Def"></span></td></tr>
 
 
<tr><td>MAtk</td><td><span id="A_MAtk"></span></td><td>MDef</td><td><span id="A_MDef"></span></td></tr>
 
 
<tr><td>HIT</td><td><span id="A_Hit"></span></td><td>Flee</td><td><span id="A_Flee"></span></td></tr>
 
 
<tr><td>Critical</td><td><span id="A_Crit"></span></td><td>Aspd</td><td><span id="A_Aspd"></span></td></tr>
 
 
</table>
 
 
 
 
<br><span id="A_AspdCalc">Calculation</span>
 
 
 
 
</tr></table>
 
 
 
 
 
 
</form>
 

A lap 2012. december 1., 11:52-kori változata

ASPD Módosítók

Az alábbi listában láthatóak az alap aspd értékek és a különböző fegyvertípus illetve pajzs alapú módosítók job-onként.

Knight ág

Aspd01.gif

Priest ág

Aspd02.gif

Wizard ág

Aspd03.gif

Blacksmith ág

Aspd04.gif

Hunter ág

Aspd05.gif

Assassin ág

Aspd06.gif

Crusader ág

Aspd07.gif

Bard/Dancer ág

Aspd08.gif

Sage ág

Aspd09.gif

Monk ág

Aspd10.gif

Rogue ág

Aspd11.gif

Alshemist ág

Aspd12.gif

Taekwon ág

Aspd13.gif

Novice, Ninja, Gunslinger ág

Aspd14.gif

Kalkulátor