2515 lines
86 KiB
JavaScript
2515 lines
86 KiB
JavaScript
//update 11.01.09 by gram
|
|
// JavaScript Document
|
|
|
|
|
|
var baseImgPath = 'http://img.combats.com/i/';
|
|
var itemImgPath = 'http://img.combats.com/i/items/';
|
|
var hereItemImgPath = '/images/';
|
|
var charImgPath = 'http://img.combats.com/i/chars/';
|
|
var clanImgPath = 'http://img.combats.com/i/klan/';
|
|
var zodiacImgPath = '/images/dress/z/';
|
|
var brandImgPath = 'http://img.combats.com/i/city/brand/';
|
|
var brand2ImgPath = 'http://img.combats.com/i/misc/';
|
|
var trickResourceImgPath = 'http://img.combats.com/i/misc/micro/';
|
|
var hpMeterGreenImg = 'http://img.combats.com/i/misc/bk_life_green.gif';
|
|
var manaMeterImg = 'http://img.combats.com/i/misc/bk_life_beg_33.gif';
|
|
var trickImgPath = 'http://img.combats.com/i/misc/icons/';
|
|
var iconImgPath = 'http://img.combats.com/i/misc/icons/icon_';
|
|
var infospaceImgPath = '/images/infospace/';
|
|
var dressImgPath = '/images/dress/';
|
|
var blankImgPath = '/images/blank.gif';
|
|
var toothImgPath = 'http://img.combats.com/i/misc/';
|
|
|
|
var charInfoUrlFormat = 'http://capitalcity.combats.com/inf.pl?login=';
|
|
|
|
var shortVip = "vip=1";
|
|
|
|
var maxPersImageNumber = [51, 65];
|
|
var excludePersImageNumbers = [[52, 53], [39, 40, 41, 66, 67, 68]];
|
|
|
|
var uniquePersImageNumbers = [
|
|
['52_orbvsqq', '53_otnmdih','400','500','501','502','503','504','505','506','507','508','509','510','511','512','513','514','515','516','10001','10002','10003','10015','10016','10017','10018','10019','2000_1_kbns5gu', '2000_3_askgl', '2000_2_zk39s', '1092_mfogweobwg', '1144_fzmyvqf','mocker','piper'],
|
|
['66_mmtvgec', '67_esevjzd', '68_sqsbxnc', '500','501','502','10012','10015','10019','2007_1_onsd23', '2003_1_348723483', '2003_2_854736478', '2003_3_777376934', '2001_1_758375928', '2001_2_387429837', '2001_3_458791823', '2002_1_239847283', '2002_2_238947983', '2002_3_857378582', '2006_1_868276432', '2006_2_394356775', '2006_3_100402842', '2004_1_329847534', '2004_2_465762309', '2004_3_636502175', '2005_1_398365734', '2005_2_546276573', '2005_3_573654968', '1089_gr8562789476', '1093_bninwidpqd']
|
|
];
|
|
|
|
var localizer =
|
|
{
|
|
cancel: 'Îòìåíà',
|
|
apply: 'Ïðèìåíèòü',
|
|
help: 'Ñïðàâêà',
|
|
helpHint: 'Îòêðûòü ðàçäåë Ñïðàâêè',
|
|
closeMenu: 'Çàêðûòü ìåíþ',
|
|
dropItem: 'Ñíÿòü ïðåäìåò',
|
|
dropAll: 'Ñíÿòü âñå ïðåäìåòû',
|
|
clearAllStats: 'Ñáðîñèòü ñòàòû è óìåíèÿ',
|
|
fitStats: 'Ïîäîãíàòü ñòàòû è óìåíèÿ ïîä êîìïëåêò',
|
|
itemComsumesGroup: 'Ïîòðåáëåíèå',
|
|
itemRequiredGroup: 'Òðåáîâàíèÿ',
|
|
itemModifyGroup: 'Äåéñòâóåò íà',
|
|
itemPropertiesGroup: 'Ñâîéñòâà ïðåäìåòà',
|
|
itemAddInfoGroup: 'Äîïîëíèòåëüíàÿ èíôîðìàöèÿ',
|
|
itemAttackGroup: 'Îñîáåííîñòè (àòàêè)',
|
|
itemDefenceGroup: 'Îñîáåííîñòè (çàùèòû)',
|
|
partOfSet: '×àñòü êîìïëåêòà: <u>{0}</u> <b>({1}/{2})</b>.',
|
|
strikeGroup: 'Óäàð ñ ïîìîùüþ',
|
|
fitArmor: 'Ïîäîãíàòü áðîíþ',
|
|
unfitArmor: 'Óáðàòü ïîäãîíêó áðîíè',
|
|
fitObject: 'Ïîäîãíàòü ïîä êîìïëåêò',
|
|
unfitObject: 'Óáðàòü ïîäãîíêó ïîä êîìïëåêò',
|
|
sharpening: 'Çàòî÷êà',
|
|
noSharpening: 'Áåç çàòî÷êè',
|
|
twohandledWeapon: '<font color="brown">Äâóðó÷íîå îðóæèå.</font>',
|
|
secondaryWeapon: '<font color="darkgreen">Âòîðîå îðóæèå.</font>',
|
|
blockZones: 'Çîíû áëîêèðîâàíèÿ',
|
|
aboutSetCount: 'Â êîìïëåêò âõîäèò {0} ïðåäìåòîâ.',
|
|
set: 'Êîìïëåêò',
|
|
strengthening: 'Óñèëåíèå',
|
|
fists: 'Êóëàê',
|
|
dressCombatsSet: 'Íàäåòü êîìïëåêò ÁÊ',
|
|
dressFromCombats: 'Ïî ïåðñîíàæó ÁÊ',
|
|
dressFromCombatsHint: 'Çàãðóçèòü ìàíåêåí ïî ïåðñîíàæó Áîéöîâñêîãî Êëóáà',
|
|
zoneVariable: 'Ïîêàçàòåëü',
|
|
zonehead: 'Ãîëîâà',
|
|
zonebody: 'Êîðïóñ',
|
|
zonewaist: 'Ïîÿñ',
|
|
zoneleg: 'Íîãè',
|
|
zoneavg: 'Ñðåäíåå',
|
|
pleaseWait: 'Ïîæàëóéñòà, ïîäîæäèòå...',
|
|
setEtc: '...',
|
|
armorWasFit: '[ïîäãîíêà áðîíè]',
|
|
wasFit: '[ïîä êîìïëåêò]',
|
|
wasUpgrade: '[óëó÷øåíî]',
|
|
wasCharmed: '[çà÷àðîâàíî]',
|
|
wasAdded: ' ',
|
|
upgradeObject: 'Óëó÷øèòü',
|
|
noUpgrade: 'Íå óëó÷øàòü',
|
|
charmObject: 'Çà÷àðîâàòü',
|
|
addstatsObject: 'Ïðèìåíèòü',
|
|
uncharmObject: 'Ñíÿòü çà÷àðîâàíèå',
|
|
charmHint: '<img src="{0}DarkClan.gif" width="24" height="15" border="0" align="right" /><b>Çà÷àðîâàíèå</b><br />',
|
|
addstatsHint: '<img src="{0}DarkClan.gif" width="24" height="15" border="0" align="right" /><b>Ðàñïðåäåëÿåì Ñòàòû</b><br />',
|
|
useMagic: 'Âñòðîåíà ìàãèÿ',
|
|
hasMagic: 'Âñòðîåíà ìàãèÿ',
|
|
saveSet: 'Ñîõðàíèòü êîìïëåêò',
|
|
loadSet: 'Çàãðóçèòü êîìïëåêò',
|
|
saveSetHint: '<img src="{0}DarkClan.gif" width="24" height="15" border="0" align="right" /><b>Ñîõðàíåíèå êîìïëåêòà</b><br />Ñêîïèðóéòå ýòîò òåêñò ÷åðåç áóôåð îáìåíà è ñîõðàíèòå ãäå-íèáóäü.<br /> ëþáîé ìîìåíò Âû ñìîæåòå çàãðóçèòü êîìïëåêò, îïèñàííûé ýòèì òåêñòîì.<br />Òàêæå Âû ìîæåòå ñîõðàíèòü ýòîò êîìïëåêò íà ñåðâåðå, ïîëó÷èâ âîçìîæíîñòü îòêðûâàòü åãî ïî ññûëêå êðàòêîãî âèäà.',
|
|
loadSetHint: '<img src="{0}DarkClan.gif" width="24" height="15" border="0" align="right" /><b>Çàãðóçêà êîìïëåêòà</b><br />Ïîæàëóéñòà, ñêîïèðóéòå ñþäà òîò òåêñò, êîòîðûé Âû ïîëó÷èëè ïðè ñîõðàíåíèè êîìïëåêòà, è çàòåì íàæìèòå êíîïêó "Çàãðóçèòü".<br />Òàêæå Âû ìîæåòå çàãðóæàòü êîìïëåêòû, ââåäÿ ñþäà ïðÿìóþ ññûëêó íà êîìïëåêò , ïåðåäàííóþ Âàì äðóãîì.',
|
|
saveSetOnServer: 'Ñîõðàíèòü íà ñåðâåðå',
|
|
infoPaneHeader: 'Ðàñ÷¸òíûå äàííûå',
|
|
viewOptionsPaneHeader: 'Ïîêàçàòåëè',
|
|
petPaneHeader: 'Çâåðü',
|
|
listPaneHeader: 'Ñïèñîê',
|
|
damagePaneHeader: 'Óðîí',
|
|
componentsPaneHeader: 'Ðåöåïòû',
|
|
optionsMenu: 'Íàñòðîéêè',
|
|
optionsShowImages: 'Ïîêàçûâàòü èçîáðàæåíèÿ â ñïèñêå ïðåäìåòîâ',
|
|
optionsHideImages: 'Íå ïîêàçûâàòü èçîáðàæåíèÿ â ñïèñêå ïðåäìåòîâ',
|
|
optionsUseAlphaForMenuAndTip: 'Ïîëóïðîçðà÷íûå ìåíþ è ñïðàâî÷íàÿ èíôîðìàöèÿ',
|
|
optionsDontUseAlphaForMenuAndTip: 'Íåïðîçðà÷íûå ìåíþ è ñïðàâî÷íàÿ èíôîðìàöèÿ',
|
|
optionsUseTransitionEffects: 'Èñïîëüçîâàòü àíèìàöèþ',
|
|
optionsDontUseTransitionEffects: "Íå èñïîëüçîâàòü àíèìàöèþ",
|
|
optionsPreloadImages: 'Çàðàíåå çàãðóæàòü èçîáðàæåíèÿ Ýíöèêëîïåäèè',
|
|
optionsDontPreloadImages: "Íå çàãðóæàòü çàðàíåå èçîáðàæåíèÿ Ýíöèêëîïåäèè",
|
|
optionsCaptureMouse: 'Çàõâàòûâàòü ñîáûòèÿ ìûøè ïðè îòêðûòèè ìåíþ',
|
|
optionsDontCaptureMouse: "Íå çàõâàòûâàòü ñîáûòèÿ ìûøè ïðè îòêðûòèè ìåíþ",
|
|
startPreloadImages: 'Íà÷àòà çàãðóçêà èçîáðàæåíèé Ýíöèêëîïåäèè.',
|
|
completePreloadImages: 'Çàãðóçêà èçîáðàæåíèé Ýíöèêëîïåäèè çàâåðøåíà.',
|
|
elixMenu: 'Ýëèêñèðû',
|
|
noElix: 'Áåç ñòàòîâîãî ýëèêñèðà',
|
|
spellMenu: 'Çàêëèíàíèÿ',
|
|
petMenu: '<font color="#660000">Çâåðè</font>',
|
|
petMenu2: 'Çâåðè',
|
|
dropPet: 'Ïðîãíàòü çâåðÿ',
|
|
noSpell: 'Áåç íàëîæåííîãî çàêëèíàíèÿ',
|
|
statWeakness: 'Ýëèêñèð',
|
|
appliedSpell: 'Çàêëèíàíèå',
|
|
appliedPetSkill: 'Óñèëåíèå çâåðÿ',
|
|
dropElix: 'Ñíÿòü ýëèêñèð',
|
|
dropSpell: 'Ñíÿòü íàëîæåííîå çàêëèíàíèå',
|
|
canUpgrade: '<font color="darkgreen">Äîñòóïíî <b>óëó÷øåíèå</b> (ïîñëå îäåâàíèÿ).</font>',
|
|
canFit: '<font color="darkgreen">Äîñòóïíà <b>ïîäãîíêà</b> (ïîñëå îäåâàíèÿ).</font>',
|
|
friendLink: 'Ïåðåäàòü ññûëêó íà ýòîò êîìïëåêò äðóãó',
|
|
friendLinkHint: '<img src="{0}DarkClan.gif" width="24" height="15" border="0" align="right" /><b>Ññûëêà íà êîìïëåêò</b><br />Ñêîïèðóéòå ýòó ññûëêó è ïîøëèòå äðóãó.<br />Ïî ýòîé ññûëêå îí óâèäèò ñîáðàííûé Âàìè êîìïëåêò.',
|
|
evaluatedHint: 'Ýòè ÷èñëà îïèñûâàþò òåêóùåå çíà÷åíèå: âñåãî (ðîäíûå + îäåæäà)',
|
|
requiredHint: '×èñëà â êâàäðàòíûõ ñêîáêàõ îïèñûâàþò ìèíèìàëüíî òðåáóåìîå çíà÷åíèå: [íåîáõîäèìî (ðîäíûå + îäåæäà)]',
|
|
filter: '<img src="{0}DarkClan.gif" width="24" height="15" border="0" align="right" /><b>Ôèëüòð</b>',
|
|
setFilter: 'Íàëîæèòü ôèëüòð...',
|
|
resetFilter: 'Ñíÿòü ôèëüòð',
|
|
fminlevel: 'Îò óðîâíÿ',
|
|
fmaxlevel: 'Äî óðîâíÿ',
|
|
fshowold: 'Óñòàðåâøèå',
|
|
fshow_com: 'Èìïîðò',
|
|
fshow_ru: 'Íàøè',
|
|
fshow_artefacts: 'Àðòåôàêòû',
|
|
ffiltermf: 'Ïîêàçàòåëü äëÿ îòáîðà',
|
|
ffiltermfHint: 'Ïîêàçûâàþòñÿ òîëüêî òå ïðåäìåòû, ó êîòîðûõ äàííûé ïîêàçàòåëü áîëüøå íóëÿ.',
|
|
frewardonly: 'Òîëüêî Êàíàëèçàöèÿ',
|
|
copyCab: 'Ñêîïèðîâàòü êàáèíêó',
|
|
impitem: '[èìïîðò]',
|
|
fixless: '<font color="red">Ïðåäìåò íå ïîäëåæèò ðåìîíòó â ðåìîíòíûõ ìàñòåðñêèõ.</font>',
|
|
charmless: '<font color="red">Ïðåäìåò íå ïîäëåæèò çà÷àðîâûâàíèþ.</font>',
|
|
changeName: 'Èçìåíèòü èìÿ',
|
|
changeGender: 'Èçìåíèòü ïîë',
|
|
changeSign: 'Èçìåíèòü çíàê çîäèàêà',
|
|
changeImage: 'Èçìåíèòü îáðàç',
|
|
changeAlign: 'Èçìåíèòü ñêëîííîñòü',
|
|
changeClan: 'Èçìåíèòü íàçâàíèå êëàíà',
|
|
zodiac0: 'Çíàê Çîäèàêà íåèçâåñòåí',
|
|
zodiac1: '<b>Îâåí</b> (ñòèõèÿ Îãíÿ, 21.03-20.04)',
|
|
zodiac2: '<b>Òåëåö</b> (ñòèõèÿ Çåìëè, 21.04-20.05)',
|
|
zodiac3: '<b>Áëèçíåöû</b> (ñòèõèÿ Âîçäóõà, 21.05-21.06)',
|
|
zodiac4: '<b>Ðàê</b> (ñòèõèÿ Âîäû, 22.06-22.07)',
|
|
zodiac5: '<b>Ëåâ</b> (ñòèõèÿ Îãíÿ, 23.07-23.08)',
|
|
zodiac6: '<b>Äåâà</b> (ñòèõèÿ Çåìëè, 24.08-23.09)',
|
|
zodiac7: '<b>Âåñû</b> (ñòèõèÿ Âîçäóõà, 24.09-23.10)',
|
|
zodiac8: '<b>Ñêîðïèîí</b> (ñòèõèÿ Âîäû, 24.10-22.11)',
|
|
zodiac9: '<b>Ñòðåëåö</b> (ñòèõèÿ Îãíÿ, 23.11-21.12)',
|
|
zodiac10: '<b>Êîçåðîã</b> (ñòèõèÿ Çåìëè, 22.12-20.01)',
|
|
zodiac11: '<b>Âîäîëåé</b> (ñòèõèÿ Âîçäóõà, 21.01-20.02)',
|
|
zodiac12: '<b>Ðûáû</b> (ñòèõèÿ Âîäû, 21.02-20.03)',
|
|
attacktfire: 'îãíåííûå àòàêè',
|
|
attacktair: 'ýëåêòðè÷åñêèå àòàêè',
|
|
attacktwater: 'ëåäÿíûå àòàêè',
|
|
attacktearth: 'çåìëÿíûå àòàêè',
|
|
attacktlight: 'àòàêè Ñâåòà',
|
|
attacktdark: 'àòàêè Òüìû',
|
|
attacktthrust: 'êîëþùèå àòàêè',
|
|
attacktsabre: 'ðóáÿùèå àòàêè',
|
|
attacktcrush: 'äðîáÿùèå àòàêè',
|
|
attacktcut: 'ðåæóùèå àòàêè',
|
|
attackqnone: 'íåò', // òèïû óðîíîâ.
|
|
// attackqpermanent: 'ïîñòîÿííûå', // íà 1 øìîòêå âñåãîëèøü ?
|
|
attackqalways: 'âñåãäà', //
|
|
attackqroutinely: 'ðåãóëÿðíû', //
|
|
// attackqregular: 'ðåãóëÿðíû', // â 5-6 ìåñòàõ
|
|
attackqoften: '÷àñòû', //
|
|
// attackqfrequent: '÷àñòû', // â 4õ ìåñòàõ íà 1 ïóøêå
|
|
attackqsometimes: 'âðåìåíàìè', //
|
|
attackqsmall: 'ìàëû', //
|
|
// attackqfew: 'ìàëû', // â 9-10 ìåñòàõ
|
|
attackqrare: 'ðåäêè', //
|
|
// attackqseldom: 'ðåäêè', //
|
|
attackqinsignificant: 'íè÷òîæíî ðåäêè', //
|
|
defencetthrust: 'Çàùèòà îò êîëþùåãî óðîíà',
|
|
defencetsabre: 'Çàùèòà îò ðóáÿùåãî óðîíà',
|
|
defencetcrush: 'Çàùèòà îò äðîáÿùåãî óðîíà',
|
|
defencetcut: 'Çàùèòà îò ðåæóùåãî óðîíà',
|
|
defenceqnone: 'íåò',
|
|
defenceqnormal: 'íîðìàëüíàÿ',
|
|
defenceqfair: 'íîðìàëüíàÿ',
|
|
defenceqgood: 'õîðîøàÿ',
|
|
defenceqweak: 'ñëàáàÿ',
|
|
defenceqmagnificent: 'âåëèêîëåïíàÿ',
|
|
defenceqexcellent: 'âåëèêîëåïíàÿ',
|
|
defenceqmediocre: 'ïîñðåäñòâåííàÿ',
|
|
informAboutCharLoading: '<p>Çàãðóçêà èíôîðìàöèè î ïåðñîíàæå ïðîèñõîäèò, òîëüêî åñëè ñåðâåð ÁÊ íå çàáëîêèðîâàë ñåðâåð DarkClan íà ÷òåíèå èíôîðìàöèè î ïåðñîíàæàõ (ïðè áëîêèðîâàíèè íåîáõîäèìî ïîäîæäàòü íåñêîëüêî ìèíóò).</p><p>Ïðèìåðî÷íàÿ àâòîìàòè÷åñêè îïðåäåëÿåò áîëüøóþ ÷àñòü óëó÷øåíèé è ìîäèôèêàöèé ïðåäìåòîâ.</p>',
|
|
armor: 'Áðîíÿ',
|
|
badPetLevel: 'Íà [{0}] óðîâíå Âû íå ñìîæåòå ðàñêà÷àòü Âàøåãî çâåðÿ íà <font color="red"><b>[{1}]</b></font> óðîâåíü. Ïîæàëóéñòà, ïðîâåðüòå óðîâåíü Âàøåãî çâåðÿ.',
|
|
badSkillCount: 'Íà [{0}] óðîâíå {1} Âàì äîñòóïíî <b>{2}</b> ðîäíûõ âëàäåíèé, à â Âàøåì êîìïëåêòå èñïîëüçóåòñÿ <font color="red"><b>{3}</b></font> ðîäíûõ âëàäåíèé. Ïîæàëóéñòà, ïðîâåðüòå Âàøè ðîäíûå âëàäåíèÿ.',
|
|
badSkillRewardedCount: 'ñ ó÷¸òîì {0} íàãðàäíûõ âëàäåíèé ',
|
|
badRewardedSkillCount: 'Âàì äîñòóïíî 5 âëàäåíèé çà íàãðàäó, à â Âàøåì êîìïëåêòå èñïîëüçóåòñÿ <font color="red"><b>{0}</b></font> âëàäåíèé çà íàãðàäó. Ïîæàëóéñòà, ïðîâåðüòå Âàøè âëàäåíèÿ çà íàãðàäó.',
|
|
badRewardedStatCount: 'Âàì äîñòóïíî 25 ñòàòîâ çà íàãðàäó, à â Âàøåì êîìïëåêòå èñïîëüçóåòñÿ <font color="red"><b>{0}</b></font> ñòàòîâ çà íàãðàäó. Ïîæàëóéñòà, ïðîâåðüòå Âàøè ñòàòû çà íàãðàäó.',
|
|
nativeStatsCount: 'Íà {1} àïå [{0}] óðîâíÿ {2}Âàì äîñòóïíî <b>{3}</b> ðîäíûõ ñòàòîâ. ',
|
|
rewardedStatsCount: 'ñ ó÷¸òîì {0} íàãðàäíûõ ñòàòîâ ',
|
|
neqStatsCount: 'Â Âàøåì êîìïëåêòå èñïîëüçóåòñÿ <b>{0}</b> ðîäíûõ ñòàòîâ.',
|
|
gtStatsCount: ' Îñòàëîñü {0} ñâîáîäíûõ ñòàòîâ.',
|
|
ltStatsCount: ' Íå õâàòàåò {0} ñòàòîâ.',
|
|
eqStatsCount: 'Ñâîáîäíûõ ñòàòîâ íåò.',
|
|
upperCab: 'Êàáèíêà',
|
|
newCab: 'Íîâàÿ êàáèíêà',
|
|
closeCab: 'Çàêðûòü êàáèíêó',
|
|
close: 'Çàêðûòü',
|
|
describeNativeStats: 'ðîäíûå ',
|
|
describeSetStats: ' îò êîìïëåêòà',
|
|
FCPlayerNick: 'Íèê ïåðñîíàæà',
|
|
FCPlayerLoadIn: 'Çàãðóçèòü èç ÁÊ',
|
|
expTableDesc: 'Òàáëèöà îïûòà ïîçâîëÿåò Âàì îïðåäåëèòü âîçìîæíîå êîëè÷åñòâî ïàðàìåòðîâ äëÿ èñïîëüçîâàíèÿ â êàáèíêå Ïðèìåðî÷íîé.',
|
|
dressSameItem: 'Íàäåòü',
|
|
summaryTableCab: 'Ñâîäíàÿ òàáëèöà',
|
|
summaryTableHint: 'Ñâîäíàÿ òàáëèöà ïîçâîëèò ñðàâíèòü ðåçóëüòèðóþùèå ïîêàçàòåëè âñåõ îòêðûòûõ êàáèíîê ìåæäó ñîáîé',
|
|
summaryTableDesc: 'Ñâîäíàÿ òàáëèöà ïîçâîëÿåò ñðàâíèòü ðåçóëüòèðóþùèå ïîêàçàòåëè âñåõ îòêðûòûõ êàáèíîê ìåæäó ñîáîé',
|
|
newCabHint: 'Îòêðûòü íîâóþ êàáèíêó äëÿ îäíîâðåìåííîé ðàáîòû ñ íåñêîëüêèìè êîìïëåêòàìè è äëÿ äàëüíåéøåãî èõ ñðàâíåíèÿ ñ ïîìîùüþ ñâîäíîé òàáëèöû',
|
|
expTableCab: 'Òàáëèöà îïûòà',
|
|
expTableHint: 'Òàáëèöà îïûòà',
|
|
summaryTableCab: 'Ñâîäíàÿ òàáëèöà',
|
|
healerCab: 'Êîìíàòà Çíàõàðÿ',
|
|
battlesCab: 'Ïîåäèíêè',
|
|
designerCab: 'Êîíñòðóêòîð',
|
|
expIncrement: 'Óâåëè÷åíèå',
|
|
expTotal: 'Ñóììàðíî',
|
|
expStats: 'ñòàòîâ',
|
|
expSkills: 'óìåíèé',
|
|
expEndurance: 'âûíîñëèâîñòè',
|
|
expCredits: 'êðåäèòîâ',
|
|
expExperience: 'îïûòà',
|
|
expBaseExperience: 'Áàçîâûé îïûò',
|
|
expBody: 'Òåëî',
|
|
expDescription: 'Îïèñàíèå',
|
|
expNoInformation: 'Íåò èíôîðìàöèè',
|
|
probabilityNever: '<font color="red">íåò</font>',
|
|
probabilityReal: 'ðåàëüíî',
|
|
trick: 'Ïðè¸ì',
|
|
attackZone: [
|
|
'Â ãîëîâó',
|
|
'Â êîðïóñ',
|
|
'Â æèâîò',
|
|
'Â ïîÿñ',
|
|
'Â íîãè'
|
|
],
|
|
goStrike: 'Âïåð¸ä!',
|
|
averageDamage: 'Óñðåäí¸ííûé ïî âåñó',
|
|
showDetails: 'Ïîäðîáíåå...',
|
|
sameWeapon: '<font color="#336699">Óäàð âòîðîé ðóêîé èäåíòè÷åí óäàðó ïåðâîé ðóêîé.</font>',
|
|
filterGeneralTab: 'Îñíîâíûå',
|
|
filterMfTab: 'Ïî ïîêàçàòåëþ',
|
|
filterSortTab: 'Ñîðòèðîâêà',
|
|
noFilterMf: 'Íå ôèëüòðîâàòü',
|
|
naturalStats: 'Ðîäíûå ñòàòû',
|
|
resultStats: 'Èòîãîâûå ñòàòû',
|
|
wearedItems: 'Ñïèñîê îäåòûõ ïðåäìåòîâ<br /><small>Ù¸ëêíèòå ïî ïðåäìåòó â ñïèñêå, ÷òîáû ïîëó÷èòü òîðãîâóþ èíôîðìàöèþ online.</small>',
|
|
tip: 'Ñîâåò',
|
|
charHint: 'Íàæìèòå çäåñü, ÷òîáû èçìåíèòü èìÿ, çíàê çîäèàêà è èíûå ñâîéñòâà ïåðñîíàæà.',
|
|
adjustHint: 'Íàæìèòå {0}, ÷òîáû ïîäîãíàòü ñòàòû è óìåíèÿ ïîä îäåòûé êîìïëåêò.',
|
|
here: 'çäåñü',
|
|
badGender: 'Òðåáóåòñÿ äðóãîé ïîë.',
|
|
reqInfo: 'Òðåáóåòñÿ {0} {1} , èç íèõ ðîäíûõ {2}',
|
|
indicesPaneHeader: '<b>Ñïèñîê ïîêàçûâàåìûõ ïîêàçàòåëåé</b><br /><small>èçìåíåíèÿ äåéñòâóþò íà ñïèñêè ðåäàêòèðóåìûõ ïîëåé, ðàñ÷¸òíûå äàííûå, ñâîäíóþ òàáëèöó è ñïðàâî÷íóþ èíôîðìàöèþ, òîëüêî ïîêà îòêðûòà Ïðèìåðî÷íàÿ, ïðåäíàçíà÷åíû äëÿ óäîáñòâà âûïîëíåíèÿ ñíèìêîâ.</small><br />',
|
|
appearances: 'Îáðàçû',
|
|
alignments: 'Ñêëîííîñòè',
|
|
noTrick: 'Íåò ïðè¸ìà',
|
|
noTrickHint: '<b>Ïóñòîé ñëîò: Ïðè¸ì</b><br /><i>Äîïîëíèòåëüíàÿ èíôîðìàöèÿ</i><br />Íàæìèòå çäåñü, ÷òîáû âûáðàòü îäèí èç òàêòè÷åñêèõ ïðè¸ìîâ.',
|
|
tricks: 'Ïðè¸ìû',
|
|
dropTrick: 'Ñíÿòü ïðè¸ì',
|
|
badHeavyArmor: '<tr><td colspan="2" class="hintview">Áîåâóþ ìàãèþ íåâîçìîæíî èñïîëüçîâàòü â òÿæ¸ëîé áðîíå. Íàæìèòå {0}, ÷òîáû ñíÿòü òÿæ¸ëóþ áðîíþ.</td></tr>',
|
|
badGloves: '<tr><td colspan="2" class="hintview">Áîåâóþ ìàãèþ íåâîçìîæíî èñïîëüçîâàòü â ïåð÷àòêàõ íå äëÿ ìàãà. Íàæìèòå {0}, ÷òîáû ñíÿòü ïåð÷àòêè.</td></tr>',
|
|
charmChooseMf: 'Âûáåðèòå èçìåíÿåìûé ïîêàçàòåëü',
|
|
charmEnterV: 'Óêàæèòå çíà÷åíèå, íà êîòîðîå ÷àðóåòñÿ ïîêàçàòåëü',
|
|
charmReplace: 'Çàìåùàòü ïðåäûäóùèå ÷àðû',
|
|
showObjectData: 'Âûâåñòè ïàðàìåòðû ïðåäìåòà',
|
|
waddMenu: 'Ïðîäóêòû',
|
|
waddInfo: 'Ïðîäóêò/ïîäàðîê',
|
|
noWAdd: 'Áåç ïðîäóêòîâ/ïîäàðêîâ',
|
|
ownedBy: 'Ïðèíàäëåæèò: ',
|
|
doClean: 'Î÷èñòèòü âñ¸',
|
|
doCleanHint: 'Î÷èùàåò âñå ñîõðàí¸ííûå íàñòðîéêè è êàáèíêè. Ïîëåçíî, åñëè Ïðèìåðî÷íàÿ ïî êàêèì-òî ïðè÷èíàì ïåðåñòàëà ó Âàñ ðàáîòàòü.',
|
|
HideAllTricks: 'Ñíÿòü âñå ïðèåìû',
|
|
dropAllSpells: 'Ñíÿòü âñå ñâèòêè',
|
|
optionsColorizedDummyOff: 'Îòêàçàòüñÿ îò öâåòîâîé ðàñêðàñêè ìàíåêåíà',
|
|
optionsColorizedDummyOn: 'Âêëþ÷èòü öâåòîâóþ ðàñêðàñêó ìàíåêåíà',
|
|
setVariantsAvailable: 'Òàêæå äîñòóïíû äðóãèå âàðèàöèè óñèëåíèÿ êîìïëåêòà:',
|
|
bop: 'Ýòîò ïðåäìåò áóäåò ñâÿçàí îáùåé ñóäüáîé ñ ïåðâûì, êòî ïîëó÷èò åãî. Íèêòî äðóãîé íå ñìîæåò åãî èñïîëüçîâàòü.',
|
|
boe: 'Ýòîò ïðåäìåò áóäåò ñâÿçàí îáùåé ñóäüáîé ñ ïåðâûì, êòî îäåíåò åãî. Íèêòî äðóãîé íå ñìîæåò åãî èñïîëüçîâàòü.',
|
|
sentinel: '',
|
|
rune: 'Ðóííàÿ ìàãèÿ',
|
|
addStats: 'Ðàññòàâèòü ñòàòû',
|
|
unaddStats: 'Ñíÿòü ñòàòû',
|
|
opt_choices: 'Âàðèàíòû äåéñòâèÿ',
|
|
unRune: 'Ñíÿòü ðóíó',
|
|
wasRuned: 'Íàëîæåíà ðóíà'
|
|
};
|
|
|
|
// taken from analyzer3.js script.
|
|
var twoBlockZones = [
|
|
{ name: 'Ãîëîâà è ãðóäü', zones: 0x03 },
|
|
{ name: 'Ãðóäü è æèâîò', zones: 0x06 },
|
|
{ name: 'Æèâîò è ïîÿñ', zones: 0x0C },
|
|
{ name: 'Ïîÿñ è íîãè', zones: 0x18 },
|
|
{ name: 'Ãîëîâà è íîãè', zones: 0x11 }
|
|
];
|
|
|
|
var threeBlockZones = [
|
|
{ name: 'Ãîëîâà, ãðóäü è æèâîò', zones: 0x07 },
|
|
{ name: 'Ãðóäü, æèâîò è ïîÿñ', zones: 0x0E },
|
|
{ name: 'Æèâîò, ïîÿñ è íîãè', zones: 0x1C },
|
|
{ name: 'Ãîëîâà, ïîÿñ è íîãè', zones: 0x19 },
|
|
{ name: 'Ãîëîâà, ãðóäü è íîãè', zones: 0x13 }
|
|
];
|
|
|
|
var attackFreq = {
|
|
falways: 100,
|
|
// fpermanent: 100,
|
|
foften: 90,
|
|
// ffrequent: 85,
|
|
froutinely: 80,
|
|
// fregular: 80,
|
|
fsometimes: 60,
|
|
fsmall: 20,
|
|
// ffew: 25,
|
|
frare: 10,
|
|
// fseldom: 20,
|
|
finsignificant: 5,
|
|
|
|
fnone: 0
|
|
};
|
|
|
|
/* Character slots definition */
|
|
var slot_w1 = { // earings
|
|
id: 'w1',
|
|
zone: 'all',
|
|
index: 1,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w2 = { // amulet
|
|
id: 'w2',
|
|
zone: 'all',
|
|
index: 2,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w3 = { // weapon
|
|
id: 'w3',
|
|
zone: 'all',
|
|
index: 3,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 60
|
|
};
|
|
|
|
var slot_w4 = { // armor
|
|
id: 'w4',
|
|
zone: 'body',
|
|
index: 4,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 80
|
|
};
|
|
|
|
var slot_w5 = { // belt
|
|
id: 'w5',
|
|
zone: 'waist',
|
|
index: 5,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 40
|
|
};
|
|
|
|
var slot_w6 = { // ring 1
|
|
id: 'w6',
|
|
zone: 'all',
|
|
index: 6,
|
|
canCharm: true,
|
|
width: 20,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w7 = { // ring 2
|
|
id: 'w7',
|
|
zone: 'all',
|
|
index: 7,
|
|
canCharm: true,
|
|
width: 20,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w8 = { // ring 3
|
|
id: 'w8',
|
|
zone: 'all',
|
|
index: 8,
|
|
canCharm: true,
|
|
width: 20,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w9 = { // helmet
|
|
id: 'w9',
|
|
zone: 'head',
|
|
index: 9,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 60
|
|
};
|
|
|
|
var slot_w10 = { // shield
|
|
id: 'w10',
|
|
zone: 'all',
|
|
index: 10,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 60
|
|
};
|
|
|
|
var slot_w11 = { // gloves
|
|
id: 'w11',
|
|
zone: 'all',
|
|
index: 11,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 40
|
|
};
|
|
|
|
var slot_w12 = { // boots
|
|
id: 'w12',
|
|
zone: 'leg',
|
|
index: 12,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 40
|
|
};
|
|
|
|
var slot_w13 = { // braslet
|
|
id: 'w13',
|
|
zone: 'all',
|
|
index: 13,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 40
|
|
};
|
|
|
|
var slot_w14 = { // carman 1
|
|
id: 'w14',
|
|
zone: 'all',
|
|
index: 14,
|
|
width: 40,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w15 = { // carman 2
|
|
id: 'w15',
|
|
zone: 'all',
|
|
index: 15,
|
|
width: 40,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w16 = { // carman 3
|
|
id: 'w16',
|
|
zone: 'all',
|
|
index: 16,
|
|
width: 40,
|
|
height: 20
|
|
};
|
|
|
|
var slot_w0 = { // shirt
|
|
id: 'wshirt',
|
|
zone: 'body',
|
|
index: 0,
|
|
width: 60,
|
|
height: 80,
|
|
emptyImageHere: true
|
|
};
|
|
|
|
var slot_w17 = { // cape
|
|
id: 'wcape',
|
|
zone: 'all',
|
|
index: 17,
|
|
width: 60,
|
|
height: 80,
|
|
emptyImageHere: true
|
|
};
|
|
|
|
var slot_w18 = { // wreath
|
|
id: 'wwreath',
|
|
zone: 'all',
|
|
index: 18,
|
|
width: 60,
|
|
height: 60,
|
|
emptyImageHere: true
|
|
};
|
|
|
|
var slot_w19 = { // pants
|
|
id: 'w19',
|
|
zone: 'pants',
|
|
index: -1,
|
|
canCharm: true,
|
|
width: 60,
|
|
height: 80
|
|
};
|
|
|
|
var slot_wbook = { // book
|
|
id: 'wbook',
|
|
zone: 'all',
|
|
index: -1,
|
|
width: 40,
|
|
height: 25,
|
|
emptyImageHere: true
|
|
};
|
|
|
|
var slot_wadd = { // adds
|
|
id: 'wadd',
|
|
zone: 'all',
|
|
index: -1,
|
|
width: 1,
|
|
height: 1,
|
|
emptyImageHere: true
|
|
};
|
|
|
|
var slots = new Array(
|
|
slot_w1, slot_w2, slot_w3, slot_w4, slot_w5, slot_w6, slot_w7, slot_w8, slot_w9, slot_w10, slot_w11, slot_w12, slot_w13, slot_w14, slot_w15, slot_w16, slot_w0, slot_w17, slot_w18
|
|
);
|
|
|
|
function createSpellSlots()
|
|
{
|
|
for (var i = 100; i <= 109; i++)
|
|
{
|
|
var spellSlot = { // spell
|
|
id: ('w' + i),
|
|
zone: 'all',
|
|
index: slots.length,
|
|
width: 40,
|
|
height: 25
|
|
};
|
|
slots.push(spellSlot);
|
|
}
|
|
}
|
|
|
|
createSpellSlots();
|
|
|
|
slot_wbook.index = slots.length;
|
|
slots.push(slot_wbook);
|
|
slot_wadd.index = slots.length;
|
|
slots.push(slot_wadd);
|
|
slot_w19.index = slots.length;
|
|
slots.push(slot_w19);
|
|
|
|
var aligns = new Array(
|
|
{caption: 'Ðàçíîå'},
|
|
{id: '0', caption: 'Áåç ñêëîííîñòè'},
|
|
{id: '7', caption: 'Íåéòðàëüíîå áðàòñòâî'},
|
|
{id: '9', caption: 'Ìàðêà'},
|
|
{id: '10', caption: 'Îòìîðîçîê'},
|
|
{id: '23', caption: 'ÒåìíîÑåðàÿ'},
|
|
{id: '50', caption: 'Àëõèìèê'},
|
|
{id: '100', caption: 'Àíãåë'},
|
|
{caption: 'Òåìíîå áðàòñòâî'},
|
|
{id: '3', caption: 'Òåìíûé'},
|
|
{id: '3.01', caption: 'Òàðìàí-Ñëóæèòåëü'},
|
|
{id: '3.05', caption: 'Òàðìàí-Íàäñìîòðùèê'},
|
|
{id: '3.06', caption: 'Êàðàòåëü'},
|
|
{id: '3.07', caption: 'Òàðìàí-Óáèéöà'},
|
|
{id: '3.075', caption: '13-ÿ Ãâàðäèÿ'},
|
|
{id: '3.09', caption: 'Òàðìàí-Ïàëà÷'},
|
|
{id: '3.091', caption: 'Òàðìàí-Âëàäûêà'},
|
|
{id: '3.092', caption: 'Òàðìàí-Âëàäûêà íà ïåíñèè'},
|
|
{id: '3.99', caption: 'Âåðõîâíûé Òàðìàí'},
|
|
{id: '3.001', caption: 'Ãâàðäèÿ Ìóñîðùèêà'},
|
|
{caption: 'Áåëîå áðàòñòâî'},
|
|
{id: '1', caption: 'Ñâåòëûé'},
|
|
{id: '1.1', caption: 'Ïàëàäèí Ïîäíåáåñüÿ'},
|
|
{id: '1.4', caption: 'Òàìîæåííûé Ïàëàäèí'},
|
|
{id: '1.5', caption: 'Ïàëàäèí Ñîëíå÷íîé Óëûáêè'},
|
|
{id: '1.6', caption: 'Èíêâèçèòîð'},
|
|
{id: '1.7', caption: 'Ïàëàäèí Îãíåííîé Çàðè'},
|
|
{id: '1.75', caption: 'Õðàíèòåëü Çíàíèé'},
|
|
{id: '1.9', caption: 'Ïàëàäèí Íåáà Áåëûé'},
|
|
{id: '1.91', caption: 'Ñòàðøèé Ïàëàäèí Íåáà'},
|
|
{id: '1.92', caption: 'Êàâàëåð Îðäåíà Ñâåòà'},
|
|
{id: '1.99', caption: 'Ãëàâà Îðäåíà'},
|
|
{id: '1.01', caption: 'Ãâàðäèÿ Ìèðîçäàòåëÿ'},
|
|
{caption: 'Ïðåäåëû Õàîñà'},
|
|
{id: '2', caption: 'Õàîñ'},
|
|
{id: '2.5', caption: 'Ñëóæèòåëü Õàîñà'},
|
|
{id: '2.9', caption: 'Ñòàðøèé Ñëóæèòåëü Õàîñà'},
|
|
{id: '2.99', caption: 'Ëîðä Õàîñà'}
|
|
);
|
|
|
|
var relativeSpiritConsumers = new Array(
|
|
{id: 'cureHP15', hp: 15},
|
|
{id: 'cureHP30', hp: 30},
|
|
{id: 'cureHP45', hp: 45},
|
|
{id: 'cureHP60', hp: 60},
|
|
{id: 'cureHP120', hp: 120},
|
|
{id: 'cureHP600', hp: 600},
|
|
{id: 'cureHP900', hp: 900},
|
|
{id: 'cureHP1200', hp: 1200},
|
|
{id: 'cureHP1500', hp: 1500}
|
|
);
|
|
|
|
var absoluteSpiritConsumers = [
|
|
{id: 'preservation', spirit: 20},
|
|
{id: 'preservationD', spirit: 20},
|
|
{id: 'reanimationL', spirit: 30},
|
|
{id: 'reanimation', spirit: 30},
|
|
{id: 'reanimation_olditem', spirit: 30},
|
|
{id: 'mirror', spirit: 5},
|
|
{id: 'elementalcrit', spirit: 10}
|
|
];
|
|
|
|
var alignImages = {
|
|
dark: '<img src="{0}align3.gif" width="12" height="15" border="0" alt="Òåìíàÿ ñêëîííîñòü"/>',
|
|
light: '<img src="{0}align1.gif" width="12" height="15" border="0" alt="Ñâåòëàÿ ñêëîííîñòü"/>',
|
|
neutral: '<img src="{0}align7.gif" width="12" height="15" border="0" alt="Íåéòðàëüíàÿ ñêëîííîñòü"/>',
|
|
haos: '<img src="{0}align2.gif" width="12" height="15" border="0" alt="Ñêëîííîñòü õàîñà"/>',
|
|
greydark: '<img src="{0}align23.gif" width="12" height="15" border="0" alt="ÒåìíîÑåðàÿ ñêëîííîñòü"/>',
|
|
|
|
sentinel: ''
|
|
};
|
|
|
|
|
|
var knownStats = [
|
|
'strength',
|
|
'dexterity',
|
|
'intuition',
|
|
'endurance',
|
|
'intellect',
|
|
'wisdom',
|
|
'spirituality'
|
|
];
|
|
|
|
|
|
var battleTurnParams = [
|
|
'hitpoints',
|
|
'mana',
|
|
'spiritlevel',
|
|
'parry',
|
|
'shieldblock',
|
|
'counterstroke',
|
|
'absolutecriticalhit',
|
|
'absolutejumpaway',
|
|
'firemagicdefence',
|
|
'airmagicdefence',
|
|
'watermagicdefence',
|
|
'earthmagicdefence',
|
|
'lightmagicdefence',
|
|
'darkmagicdefence',
|
|
'greymagicdefence',
|
|
'firemagicpower',
|
|
'airmagicpower',
|
|
'watermagicpower',
|
|
'earthmagicpower',
|
|
'lightmagicpower',
|
|
'darkmagicpower',
|
|
'magicdefencereduce',
|
|
'firemagicdefencereduce',
|
|
'airmagicdefencereduce',
|
|
'watermagicdefencereduce',
|
|
'earthmagicdefencereduce',
|
|
'lightmagicdefencereduce',
|
|
'darkmagicdefencereduce',
|
|
'greymagicdefencereduce',
|
|
'attackcount',
|
|
'blockcount',
|
|
'criticalpower',
|
|
'power',
|
|
'thrustpower',
|
|
'sabrepower',
|
|
'crushpower',
|
|
'cutpower',
|
|
'criticalhit',
|
|
'anticriticalhit',
|
|
'jumpaway',
|
|
'antijumpaway',
|
|
'piercearmor',
|
|
'absolutecriticalhit',
|
|
'absolutejumpaway'
|
|
];
|
|
|
|
var knownStatLimits = {
|
|
strength: 3,
|
|
dexterity: 3,
|
|
intuition: 3,
|
|
endurance: 3
|
|
};
|
|
|
|
var knownCleanModifiers = [
|
|
'level',
|
|
'-',
|
|
'strength',
|
|
'dexterity',
|
|
'intuition',
|
|
'endurance',
|
|
'intellect',
|
|
'wisdom',
|
|
'spirituality',
|
|
'totalstats',
|
|
'-',
|
|
'hitpoints',
|
|
'mana',
|
|
'spiritlevel',
|
|
'-',
|
|
'hpspeed',
|
|
'manaspeed',
|
|
'manaconsumption',
|
|
'-',
|
|
'weaponskill',
|
|
'knifeskill',
|
|
'axeskill',
|
|
'clubskill',
|
|
'swordskill',
|
|
'staffskill',
|
|
'-',
|
|
'magicskill',
|
|
'firemagicskill',
|
|
'airmagicskill',
|
|
'watermagicskill',
|
|
'earthmagicskill',
|
|
'lightmagicskill',
|
|
'darkmagicskill',
|
|
'greymagicskill',
|
|
'-',
|
|
'parry',
|
|
'shieldblock',
|
|
'counterstroke',
|
|
'absolutejumpaway',
|
|
'absolutecriticalhit',
|
|
'-',
|
|
'magicdefence',
|
|
'firemagicdefence',
|
|
'airmagicdefence',
|
|
'watermagicdefence',
|
|
'earthmagicdefence',
|
|
'lightmagicdefence',
|
|
'darkmagicdefence',
|
|
'greymagicdefence',
|
|
'-',
|
|
'magicpower',
|
|
'firemagicpower',
|
|
'airmagicpower',
|
|
'watermagicpower',
|
|
'earthmagicpower',
|
|
'lightmagicpower',
|
|
'darkmagicpower',
|
|
'-',
|
|
'magicdefencereduce',
|
|
'firemagicdefencereduce',
|
|
'airmagicdefencereduce',
|
|
'watermagicdefencereduce',
|
|
'earthmagicdefencereduce',
|
|
'lightmagicdefencereduce',
|
|
'darkmagicdefencereduce',
|
|
'greymagicdefencereduce',
|
|
'-',
|
|
'attackcount',
|
|
'blockcount',
|
|
'-',
|
|
'knapsack',
|
|
'-',
|
|
'totalprice',
|
|
'totaleprice',
|
|
'totalweight',
|
|
'consumed_reward',
|
|
'-',
|
|
'spell_powerup10_self',
|
|
'spell_powerup10_other',
|
|
'spell_protect10_self',
|
|
'spell_protect10_other',
|
|
'-',
|
|
'spell_powerup1_self',
|
|
'spell_powerup1_other',
|
|
'spell_powerup3_self',
|
|
'spell_powerup3_other',
|
|
'spell_powerup2_self',
|
|
'spell_powerup2_other',
|
|
'spell_powerup4_self',
|
|
'spell_powerup4_other',
|
|
'spell_protect1_self',
|
|
'spell_protect1_other',
|
|
'spell_protect3_self',
|
|
'spell_protect3_other',
|
|
'spell_protect2_self',
|
|
'spell_protect2_other',
|
|
'spell_protect4_self',
|
|
'spell_protect4_other'
|
|
];
|
|
|
|
var knownWeaponModifiers = [
|
|
'criticalpower',
|
|
'power',
|
|
'thrustpower',
|
|
'sabrepower',
|
|
'crushpower',
|
|
'cutpower',
|
|
'-',
|
|
'criticalhit',
|
|
'anticriticalhit',
|
|
'jumpaway',
|
|
'antijumpaway',
|
|
'-',
|
|
'piercearmor'
|
|
];
|
|
|
|
var knownWeaponModifiersHash = {};
|
|
for (var wi = 0; wi < knownWeaponModifiers.length; wi++)
|
|
{
|
|
if (knownWeaponModifiers[wi] == '-') continue;
|
|
knownWeaponModifiersHash[knownWeaponModifiers[wi]] = true;
|
|
}
|
|
|
|
var knownAdvWeaponModifiers = {
|
|
damage: 0,
|
|
mfdamage: 0,
|
|
mfcdamage: 0,
|
|
postdamage: 0
|
|
};
|
|
|
|
var knownWeaponPowerModifiers = {
|
|
// value 'all' - always acts on minimal damage too.
|
|
power: 'all',
|
|
thrustpower: 'attack',
|
|
sabrepower: 'attack',
|
|
crushpower: 'attack',
|
|
cutpower: 'attack',
|
|
magicpower: 'allmagic',
|
|
firemagicpower: 'magic',
|
|
airmagicpower: 'magic',
|
|
watermagicpower: 'magic',
|
|
earthmagicpower: 'magic',
|
|
lightmagicpower: 'xmagic',
|
|
darkmagicpower: 'xmagic'
|
|
};
|
|
|
|
var knownZoneModifiers = {
|
|
defence: 0,
|
|
thrustdefence: 0,
|
|
sabredefence: 0,
|
|
crushdefence: 0,
|
|
cutdefence: 0
|
|
};
|
|
|
|
var knownArmorModifiers = {
|
|
headarmor: 0,
|
|
bodyarmor: 0,
|
|
waistarmor: 0,
|
|
legarmor: 0,
|
|
avgarmor: 0
|
|
};
|
|
|
|
var naturalElements = [
|
|
'fire',
|
|
'earth',
|
|
'air',
|
|
'water'
|
|
];
|
|
|
|
var allElements = [
|
|
'fire',
|
|
'earth',
|
|
'air',
|
|
'water',
|
|
'light',
|
|
'dark',
|
|
'grey'
|
|
];
|
|
|
|
var common_props = {
|
|
eprice: {lbl: 'Öåíà (åêð.)', fmt: '<font color="brown">{0} åêð.</font>', view: true},
|
|
price: {lbl: 'Öåíà', fmt: '{0} êð.', view: true},
|
|
weight: {lbl: 'Âåñ', view: true},
|
|
durability: {lbl: 'Äîëãîâå÷íîñòü', fmt: '0/{0}', view: true}
|
|
};
|
|
|
|
var item_props = {
|
|
sex: {lbl: 'Ïîë', view: true, nocharm: true},
|
|
allstats:{lbl: 'Âñå ñòàòû',view:true,nocharm:true},
|
|
stats:{lbl: 'Êîëè÷åñòâî óâåëè÷åíèé', view: true},
|
|
level: {lbl: 'Óðîâåíü', required: true, view: true, nocharm: true},
|
|
levelup: {lbl: 'Àï', view: true, nocharm: true},
|
|
pstat: {lbl: 'Ñòàòîâ çà íàãðàäó', view: true, nocharm: true},
|
|
pskil: {lbl: 'Óìåíèé çà íàãðàäó', view: true, nocharm: true},
|
|
strength: {lbl: 'Ñèëà', required: true, view: true, inmfg: true},
|
|
dexterity: {lbl: 'Ëîâêîñòü', required: true, view: true, inmfg: true},
|
|
intuition: {lbl: 'Èíòóèöèÿ', required: true, view: true, inmfg: true},
|
|
endurance: {lbl: 'Âûíîñëèâîñòü', required: true, view: true, nocharm: true},
|
|
intellect: {lbl: 'Èíòåëëåêò', required: true, view: true, inmfg: true},
|
|
wisdom: {lbl: 'Ìóäðîñòü', required: true, view: true, nocharm: true},
|
|
spirituality: {lbl: 'Äóõîâíîñòü', required: true, view: true, nocharm: true},
|
|
totalstats: {lbl: 'Âñåãî ñòàòîâ', view: true, nocharm: true},
|
|
spiritlevel: {lbl: 'Óðîâåíü äóõà', view: true, nocharm: true},
|
|
totalprice: {lbl: 'Ñòîèìîñòü ïðåäìåòîâ', fmt: '{0} êð.', view: true, nocharm: true},
|
|
totaleprice: {lbl: 'Ñòîèìîñòü ïðåäìåòîâ (åêð.)', fmt: '{0} åêð.', view: true, nocharm: true},
|
|
totalweight: {lbl: 'Âåñ ïðåäìåòîâ', view: true, nocharm: true},
|
|
mana: {lbl: 'Óðîâåíü ìàíû', required: true, view: true, inmfg: true},
|
|
weaponskill: {lbl: 'Âëàäåíèå îðóæèåì', view: true, inmfg: true, inprpg: true},
|
|
knifeskill: {lbl: 'Âëàäåíèå íîæàìè è êèíæàëàìè', required: true, view: true, inmfg: true, inprpg: true},
|
|
axeskill: {lbl: 'Âëàäåíèå òîïîðàìè è ñåêèðàìè', required: true, view: true, inmfg: true, inprpg: true},
|
|
clubskill: {lbl: 'Âëàäåíèå ìîëîòàìè è äóáèíàìè', required: true, view: true, inmfg: true, inprpg: true},
|
|
swordskill: {lbl: 'Âëàäåíèå ìå÷àìè', required: true, view: true, inmfg: true, inprpg: true},
|
|
staffskill: {lbl: 'Âëàäåíèå ïîñîõàìè', required: true, view: true, inmfg: true, inprpg: true},
|
|
magicskill: {lbl: 'Âëàäåíèå ìàãèåé Ñòèõèé', view: true, inmfg: true},
|
|
firemagicskill: {lbl: 'Âëàäåíèå ìàãèåé Îãíÿ', required: true, view: true, inmfg: true},
|
|
airmagicskill: {lbl: 'Âëàäåíèå ìàãèåé Âîçäóõà', required: true, view: true, inmfg: true},
|
|
watermagicskill: {lbl: 'Âëàäåíèå ìàãèåé Âîäû', required: true, view: true, inmfg: true},
|
|
earthmagicskill: {lbl: 'Âëàäåíèå ìàãèåé Çåìëè', required: true, view: true, inmfg: true},
|
|
lightmagicskill: {lbl: 'Âëàäåíèå ìàãèåé Ñâåòà', required: true, view: true, inmfg: true},
|
|
darkmagicskill: {lbl: 'Âëàäåíèå ìàãèåé Òüìû', required: true, view: true, inmfg: true},
|
|
greymagicskill: {lbl: 'Âëàäåíèå ñåðîé ìàãèåé', required: true, view: true, inmfg: true},
|
|
mindamage: {lbl: 'Ìèíèìàëüíûé óðîí', view: true, inmfg: true, inprpg: true},
|
|
maxdamage: {lbl: 'Ìàêñèìàëüíûé óðîí', view: true, inmfg: true, inprpg: true},
|
|
damage: {lbl: 'Óðîí', view: false, nocharm: true},
|
|
mfdamage: {lbl: 'Óðîí ñ ó÷¸òîì ìô.', view: true, nocharm: true},
|
|
nextdamage: {lbl: 'Îòëîæåííûé óðîí', view: true, nocharm: true},
|
|
nextturns: {lbl: 'Äëèòåëüíîñòü îòëîæåííîãî óðîíà', fmt: '{0} õîäîâ', view: true, nocharm: true},
|
|
minhitpoints: {lbl: 'Ìèíèìàëüíûé óðîâåíü æèçíè', view: true, nocharm: true},
|
|
maxhitpoints: {lbl: 'Ìàêñèìàëüíûé óðîâåíü æèçíè', view: true, nocharm: true},
|
|
nexthitpoints: {lbl: 'Îòëîæåííûé óðîâåíü æèçíè', view: true, nocharm: true},
|
|
mfdamage: {lbl: 'Óðîí ñ ó÷¸òîì ìô.', view: true, nocharm: true},
|
|
mfcdamage: {lbl: 'Êðèòè÷åñêèé óðîí ñ ó÷¸òîì ìô.', view: true, nocharm: true},
|
|
postdamage: {lbl: 'Äîïîëíèòåëüíûé óðîí', view: true, nocharm: true},
|
|
hitpoints: {lbl: 'Óðîâåíü æèçíè', view: true, inmfg: true},
|
|
hpspeed: {lbl: 'Ñêîðîñòü âîññòàíîâëåíèÿ æèçíè', fmt: '{0}%', view: true, inmfg: true},
|
|
manaspeed: {lbl: 'Ñêîðîñòü âîññòàíîâëåíèÿ ìàíû', fmt: '{0}%', view: true, inmfg: true},
|
|
manaconsumption: {lbl: 'Óìåíüøåíèå ðàñõîäà ìàíû', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
criticalpower: {lbl: 'Ìô. ìîùíîñòè êðèòè÷åñêîãî óäàðà', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
absolutecriticalhit: {lbl: 'Àáñ. ìô. êðèòà', view: true, inmfg: true, inprpg: true},
|
|
criticalhit: {lbl: 'Ìô. êðèòè÷åñêîãî óäàðà', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
anticriticalhit: {lbl: 'Ìô. ïðîòèâ êðèòè÷åñêîãî óäàðà', fmt: '{0}%', view: true, inmfg: true},
|
|
absolutejumpaway: {lbl: 'Àáñ. ìô. óâîðîòà', view: true, inmfg: true, inprpg: true},
|
|
jumpaway: {lbl: 'Ìô. óâ¸ðòûâàíèÿ', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
antijumpaway: {lbl: 'Ìô. ïðîòèâ óâ¸ðòûâàíèÿ', fmt: '{0}%', view: true, inmfg: true},
|
|
piercearmor: {lbl: 'Ìô. ïðîáîÿ áðîíè', fmt: '{0}%', maxvalue: 100, view: true, inmfg: true, inprpg: true},
|
|
parry: {lbl: 'Ìô. ïàðèðîâàíèÿ', fmt: '{0}%', maxvalue: 200, view: true, inmfg: true},
|
|
counterstroke: {lbl: 'Ìô. êîíòðóäàðà', fmt: '{0}%', maxvalue: 80, view: true, inmfg: true},
|
|
shieldblock: {lbl: 'Ìô. áëîêà ùèòîì', fmt: '{0}%', maxvalue: 80, view: true, inmfg: true, inprpg: true},
|
|
power: {lbl: 'Ìô. ìîùíîñòè óäàðà', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
thrustpower: {lbl: 'Ìô. ìîùíîñòè êîëþùåãî óðîíà', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
sabrepower: {lbl: 'Ìô. ìîùíîñòè ðóáÿùåãî óðîíà', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
crushpower: {lbl: 'Ìô. ìîùíîñòè äðîáÿùåãî óðîíà', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
cutpower: {lbl: 'Ìô. ìîùíîñòè ðåæóùåãî óðîíà', fmt: '{0}%', view: true, inmfg: true, inprpg: true},
|
|
defence: {lbl: 'Çàùèòà îò óðîíà', maxvalue: 1000, view: true, inmfg: true, inprpg: true},
|
|
edefence: {lbl: 'Çàùèòà îò êîëþùåãî, ðóáÿùåãî, äðîáÿùåãî è ðåæóùåãî óðîíà', maxvalue: 1000, view: true, nocharm: true},
|
|
thrustdefence: {lbl: 'Çàùèòà îò êîëþùåãî óðîíà', maxvalue: 1000, view: true, inmfg: true, inprpg: true},
|
|
sabredefence: {lbl: 'Çàùèòà îò ðóáÿùåãî óðîíà', maxvalue: 1000, view: true, inmfg: true, inprpg: true},
|
|
crushdefence: {lbl: 'Çàùèòà îò äðîáÿùåãî óðîíà', maxvalue: 1000, view: true, inmfg: true, inprpg: true},
|
|
cutdefence: {lbl: 'Çàùèòà îò ðåæóùåãî óðîíà', maxvalue: 1000, view: true, inmfg: true, inprpg: true},
|
|
magicdefence: {lbl: 'Çàùèòà îò ìàãèè', maxvalue: 1800, view: true, inmfg: true},
|
|
emagicdefence: {lbl: 'Çàùèòà îò ìàãèè Îãíÿ, Âîçäóõà, Âîäû è Çåìëè', maxvalue: 800, view: true, nocharm: true},
|
|
firemagicdefence: {lbl: 'Çàùèòà îò ìàãèè Îãíÿ', maxvalue: 800, view: true, inmfg: true},
|
|
airmagicdefence: {lbl: 'Çàùèòà îò ìàãèè Âîçäóõà', maxvalue: 800, view: true, inmfg: true},
|
|
watermagicdefence: {lbl: 'Çàùèòà îò ìàãèè Âîäû', maxvalue: 800, view: true, inmfg: true},
|
|
earthmagicdefence: {lbl: 'Çàùèòà îò ìàãèè Çåìëè', maxvalue: 800, view: true, inmfg: true},
|
|
lightmagicdefence: {lbl: 'Çàùèòà îò ìàãèè Ñâåòà', maxvalue: 800, view: true, inmfg: true},
|
|
darkmagicdefence: {lbl: 'Çàùèòà îò ìàãèè Òüìû', maxvalue: 800, view: true, inmfg: true},
|
|
greymagicdefence: {lbl: 'Çàùèòà îò ñåðîé ìàãèè', maxvalue: 800, view: true, inmfg: true},
|
|
magicpower: {lbl: 'Ìô. ìîùíîñòè ìàãèè ñòèõèé', fmt: '{0}%', view: true, inmfg: true},
|
|
firemagicpower: {lbl: 'Ìô. ìîùíîñòè ìàãèè Îãíÿ', fmt: '{0}%', view: true, inmfg: true},
|
|
airmagicpower: {lbl: 'Ìô. ìîùíîñòè ìàãèè Âîçäóõà', fmt: '{0}%', view: true, inmfg: true},
|
|
watermagicpower: {lbl: 'Ìô. ìîùíîñòè ìàãèè Âîäû', fmt: '{0}%', view: true, inmfg: true},
|
|
earthmagicpower: {lbl: 'Ìô. ìîùíîñòè ìàãèè Çåìëè', fmt: '{0}%', view: true, inmfg: true},
|
|
lightmagicpower: {lbl: 'Ìô. ìîùíîñòè ìàãèè Ñâåòà', fmt: '{0}%', view: true, inmfg: true},
|
|
darkmagicpower: {lbl: 'Ìô. ìîùíîñòè ìàãèè Òüìû', fmt: '{0}%', view: true, inmfg: true},
|
|
magicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ìàãèè', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
firemagicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ìàãèè Îãíÿ', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
airmagicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ìàãèè Âîçäóõà', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
watermagicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ìàãèè Âîäû', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
earthmagicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ìàãèè Çåìëè', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
lightmagicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ìàãèè Ñâåòà', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
darkmagicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ìàãèè Òüìû', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
greymagicdefencereduce: {lbl: 'Ïîíèæåíèå çàùèòû îò ñåðîé ìàãèè', fmt: '{0}%', maxvalue: 99, view: true, inmfg: true},
|
|
attackcount: {lbl: 'Òî÷åê óäàðà çà õîä', view: true, nocharm: true},
|
|
blockcount: {lbl: 'Çîí áëîêà çà õîä', view: true, nocharm: true},
|
|
knapsack: {lbl: '¨ìêîñòü ðþêçàêà', view: true, nocharm: true},
|
|
headarmor: {lbl: 'Áðîíÿ ãîëîâû', view: true, nocharm: true},
|
|
bodyarmor: {lbl: 'Áðîíÿ êîðïóñà', view: true, nocharm: true},
|
|
waistarmor: {lbl: 'Áðîíÿ ïîÿñà', view: true, nocharm: true},
|
|
legarmor: {lbl: 'Áðîíÿ íîã', view: true, nocharm: true},
|
|
avgarmor: {lbl: 'Áðîíÿ â ñðåäíåì', view: true, nocharm: true},
|
|
probability: {lbl: 'Âåðîÿòíîñòü ñðàáàòûâàíèÿ', fmt: '{0}%', maxvalue: 99, view: true, nocharm: true, inprpg: true},
|
|
spell_powerup10_self: {lbl:'Ñîêðóøåíèå íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup10_other: {lbl:'Ñîêðóøåíèå íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup1_self: {lbl:'Îãíåííîå Óñèëåíèå íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup1_other: {lbl:'Îãíåííîå Óñèëåíèå íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup3_self: {lbl:'Âîçäóøíîå Óñèëåíèå íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup3_other: {lbl:'Âîçäóøíîå Óñèëåíèå íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup2_self: {lbl:'Âîäíîå Óñèëåíèå íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup2_other: {lbl:'Âîäíîå Óñèëåíèå íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup4_self: {lbl:'Çåìíîå Óñèëåíèå íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_powerup4_other: {lbl:'Çåìíîå Óñèëåíèå íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect10_self: {lbl:'Çàùèòà îò Îðóæèÿ íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect10_other: {lbl:'Çàùèòà îò Îðóæèÿ íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect1_self: {lbl:'Çàùèòà îò Îãíÿ íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect1_other: {lbl:'Çàùèòà îò Îãíÿ íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect3_self: {lbl:'Çàùèòà îò Âîçäóõà íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect3_other: {lbl:'Çàùèòà îò Âîçäóõà íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect2_self: {lbl:'Çàùèòà îò Âîäû íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect2_other: {lbl:'Çàùèòà îò Âîäû íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect4_self: {lbl:'Çàùèòà îò Çåìëè íà ñåáÿ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
spell_protect4_other: {lbl:'Çàùèòà îò Çåìëè íà äðóãèõ', fmt:'{0} åä.', view: true, nocharm: true},
|
|
magic_damage: {lbl:'Ìàãè÷åñêèé óðîí', view: true, nocharm: true},
|
|
magic_cdamage: {lbl:'Ìàãè÷åñêèé êðèòè÷åñêèé óðîí', view: true, nocharm: true},
|
|
consumed_reward: {lbl:'Ïîòðà÷åíî íàãðàäû', view: true, nocharm: true},
|
|
_power_v: {lbl:'Îáùèé ìô. ìîùíîñòè óðîíà', fmt: '{0}%', view: true, nocharm: true}
|
|
};
|
|
|
|
var knownWeaponSkills = [
|
|
'knifeskill',
|
|
'axeskill',
|
|
'clubskill',
|
|
'swordskill',
|
|
'staffskill'
|
|
];
|
|
|
|
var shortInfoMap = {
|
|
level: 'level',
|
|
str: 'strength',
|
|
dex: 'dexterity',
|
|
inst: 'intuition',
|
|
power: 'endurance',
|
|
intel: 'intellect',
|
|
wis: 'wisdom',
|
|
spirit: 'spirituality'
|
|
};
|
|
|
|
var shortInfoMap2 = {
|
|
_str: 'strength',
|
|
_dex: 'dexterity',
|
|
_inst: 'intuition',
|
|
_power: 'endurance',
|
|
_intel: 'intellect'
|
|
};
|
|
|
|
var knownPredefinedCharms = [
|
|
{id: 'enhp_3_manabuff1', caption: 'Óâåëè÷åíèå Ìàíû 1', v: 'mana#20', categories: ['staffs']},
|
|
{id: 'enhp_3_manabuff2', caption: 'Óâåëè÷åíèå Ìàíû 2', v: 'mana#40', categories: ['staffs']},
|
|
{id: 'enhp_3_manabuff3', caption: 'Óâåëè÷åíèå Ìàíû 3', v: 'mana#60', categories: ['staffs']},
|
|
|
|
// {id: 'enhp_3_moder_4', caption: 'Çà÷àðîâàòü îðóæèå: Îãîíü', categories: ['knives','axes','clubs','swords']},
|
|
// {id: 'enhp_3_moder_5', caption: 'Çà÷àðîâàòü îðóæèå: ˸ä', categories: ['knives','axes','clubs','swords']},
|
|
|
|
{id: 'enhp_6_bloodlinew1', caption: 'Êðîâàâàÿ Ìîùü', v: 'power#1#hitpoints#6', categories: ['rings']},
|
|
{id: 'enhp_6_bloodlinem1', caption: 'Êðîâàâàÿ Ìîùü', v: 'magicpower#1#hitpoints#6', categories: ['rings']},
|
|
{id: 'enhp_6_bloodlinew2', caption: 'Êðîâàâàÿ Ìîùü [2]', v: 'power#2#hitpoints#12', categories: ['rings']},
|
|
{id: 'enhp_6_bloodlinem2', caption: 'Êðîâàâàÿ Ìîùü [2]', v: 'magicpower#2#hitpoints#12', categories: ['rings']},
|
|
{id: 'enhp_2_maxHP10', caption: 'Çà÷àðîâàòü àìóëåò: Çäîðîâüå +100', v: 'hitpoints#100', categories: ['necklaces']},
|
|
{id: 'enhp_13_pm_revard', caption: 'Çà÷àðîâàòü íàðó÷è: Çäîðîâüå +12', v: 'hitpoints#12', categories: ['bracelets']},
|
|
{id: 'enhp_3_moder_6_1', caption: 'Çà÷àðîâàòü Ïîñîõ: Óðîí', v: 'magicpower#4', categories: ['staffs']},
|
|
{id: 'enhp_4_moder_2_1', caption: 'Çà÷àðîâàòü áðîíþ: Æèçíü', v: 'hitpoints#33', categories: ['heavyarmors', 'lightarmors']},
|
|
{id: 'enhp_4_4', caption: 'Çà÷àðîâàòü áðîíþ: Àäàïòàöèÿ', v: 'antijumpaway#10#stats#2', categories: ['heavyarmors', 'lightarmors']},
|
|
{id: 'enhp_2_4', caption: 'Çà÷àðîâàòü àìóëåò: Àäàïòàöèÿ', v: 'magicdefence#5#stats#2', categories: ['necklaces']},
|
|
{id: 'enhp_9_5', caption: 'Çà÷àðîâàòü øëåì: Àäàïòàöèÿ', v: 'defence#5#stats#2', categories: ['helmets']},
|
|
{id: 'enhp_12_4', caption: 'Çà÷àðîâàòü ñàïîãè: Àäàïòàöèÿ', v: 'anticriticalhit#10#stats#2', categories: ['boots']},
|
|
{id: 'enhp_19_1', caption: 'Çà÷àðîâàòü ïîíîæè: Çàùèòà îò óðîíà', v: 'defence#20', categories: ['pants']},
|
|
{id: 'enhp_19_2', caption: 'Çà÷àðîâàòü ïîíîæè: Âûæèâàíèå', v: 'hitpoints#40', categories: ['pants']},
|
|
{id: 'enhp_19_3', caption: 'Çà÷àðîâàòü ïîíîæè: Çàùèòà îò ìàãèè', v: 'magicdefence#20', categories: ['pants']},
|
|
{id: 'enhp_19_4', caption: 'Çà÷àðîâàòü ïîíîæè: Àäàïòàöèÿ', v: 'stats#3', categories: ['pants']},
|
|
{id: 'enhp_9_moder_1_1', caption: 'Çà÷àðîâàòü øëåì: Áëàãîñëîâëåíèå Çâåçä', v: 'dexterity#1#intuition#1#intellect#1#strength#1#hitpoints#6', categories: ['helmets']},
|
|
{id: 'enhp_11_moder_3', caption: 'Çà÷àðîâàòü ïåð÷àòêè: Óðîí', v: 'power#2#magicpower#2', categories: ['gauntlets']},
|
|
{id: 'enhp_2_tournir1chka_7_1', caption: 'Çà÷àðîâàòü àìóëåò: Õàðàêòåðèñòèêè +1', v: 'dexterity#1#intuition#1#strength#1#hitpoints#6', categories: ['necklaces']},
|
|
{id: 'enhp_2_tournir1chka_7_2', caption: 'Çà÷àðîâàòü àìóëåò: Õàðàêòåðèñòèêè +2', v: 'dexterity#2#intuition#2#strength#2#hitpoints#12', categories: ['necklaces']},
|
|
{id: 'enhp_2_tournir1chka_7_3', caption: 'Çà÷àðîâàòü àìóëåò: Õàðàêòåðèñòèêè +3', v: 'dexterity#3#intuition#3#strength#3#hitpoints#18', categories: ['necklaces']}
|
|
];
|
|
|
|
var knownNaturalEditors = new Array(
|
|
'level',
|
|
'levelup',
|
|
'-',
|
|
'strength',
|
|
'dexterity',
|
|
'intuition',
|
|
'endurance',
|
|
'intellect',
|
|
'wisdom',
|
|
'spirituality',
|
|
'-',
|
|
'knifeskill',
|
|
'axeskill',
|
|
'clubskill',
|
|
'swordskill',
|
|
'staffskill',
|
|
'-',
|
|
'firemagicskill',
|
|
'airmagicskill',
|
|
'watermagicskill',
|
|
'earthmagicskill',
|
|
'-',
|
|
'lightmagicskill',
|
|
'darkmagicskill',
|
|
'greymagicskill',
|
|
'-',
|
|
'pstat',
|
|
'pskil'
|
|
);
|
|
|
|
var knownElix = {
|
|
strength: { id: 'pot_base_50_str', caption: 'Çåëüå Ìîãóùåñòâà', makeUp: 'strength', values: new Array(0, 10, 11, 12, 13, 14, 15) },
|
|
dexterity: { id: 'pot_base_50_dex', caption: 'Çåëüå Ñòðåìèòåëüíîñòè', makeUp: 'dexterity', values: new Array(0, 10, 11, 12, 13, 14, 15) },
|
|
intuition: { id: 'pot_base_50_inst', caption: 'Çåëüå Ïðîçðåíèÿ', makeUp: 'intuition', values: new Array(0, 10, 11, 12, 13, 14, 15) },
|
|
intellect: { id: 'pot_base_50_intel', caption: 'Çåëüå Ðàçóìà ', makeUp: 'intellect', values: new Array(0, 10, 11, 12, 13, 14, 15) },
|
|
intellect1: { id: 'pot_base_200_bot4', caption: 'Ñíàäîáüå Ðàçóìà', makeUp: 'intellect', values: new Array(0, 15, 16, 17, 18, 19, 20, 21, 22) },
|
|
separator0: null,
|
|
strength2: { id: 'pot_base_200_bot3', caption: 'Ñíàäîáüå Âåëèêàíà', makeUp: 'strength', values: new Array(0, 15, 16, 17, 18, 19, 20, 21, 22) },
|
|
dexterity2: { id: 'pot_base_200_bot2', caption: 'Ñíàäîáüå Çìåè', makeUp: 'dexterity', values: new Array(0, 15, 16, 17, 18, 19, 20, 21, 22) },
|
|
intuition2: { id: 'pot_base_200_bot1', caption: 'Ñíàäîáüå Ïðåä÷óâñòâèÿ', makeUp: 'intuition', values: new Array(0, 15, 16, 17, 18, 19, 20, 21, 22) },
|
|
intellect2: { id: 'pot_base_50_intel2', caption: 'Íåêòàð Ðàçóìà', makeUp: 'intellect', values: new Array(0, 15, 16, 17, 18, 19, 20, 21, 22) },
|
|
separator0: null,
|
|
strength4: { id: 'pot_base_200_bot_pm1', caption: 'Ýëèêñèð Ñèëû Ïðåäêîâ', makeUp: 'strength', values: new Array(0, 20, 22, 24, 26, 28, 30) },
|
|
strength6: { id: 'pot_base_1000_str', caption: 'Òîïëèâî äëÿ Ãîëåìîâ', makeUp: 'strength', values: new Array(0, 12, 18) },
|
|
dexterity3: { id: 'pot_base_1000_dex', caption: 'Ñìàçêà äëÿ Ãîëåìîâ', makeUp: 'dexterity', values: new Array(0, 12, 18) },
|
|
intuition3: { id: 'pot_base_1000_inst', caption: 'Óñêîðèòåëü äëÿ Ãîëåìîâ', makeUp: 'intuition', values: new Array(0, 12, 18) }
|
|
};
|
|
|
|
var knownAdds = {
|
|
};
|
|
|
|
var knownDamageElix = {
|
|
pot_base_100_master: {id: 'pot_base_100_master', caption: 'Ñíàäîáüå Çàáûòûõ Ìàñòåðîâ', modify: {power: 33, magicpower: 33, damage1: 25, damage2: 50}},
|
|
pot_base_0_strup: {id: 'pot_base_0_strup', caption: 'Íîâîãîäíèé Ýëèêñèð', modify: {power: 33, damage1: 25, damage2: 50}},
|
|
//ÍÅÏÀØÅÒ à òàê æå è íà ìàñòåðàõ íåðàáîòàåò +33 ìàãèè
|
|
// pot_base_0_strup_1: {id: 'pot_base_0_strup', caption: 'Íîâîãîäíèé Ýëèêñèð', modify: {magicpower: 50, magicdefencereduce: 10}},
|
|
pot_base_0_ny3: {id: 'pot_base_0_ny3', caption: 'Ýññåíöèÿ Çäîðîâüÿ', modify: {hitpoints: 300}},
|
|
pot_base_0_ny1: {id: 'pot_base_0_ny1', caption: 'Ñíàäîáüå -Òàðìàíêà-', modify: {power: 15,hitpoints: 60}}
|
|
};
|
|
|
|
var knownDefElix = {
|
|
pot_base_50_kolproof: { places: new Array('eweapon'), id: 'pot_base_50_kolproof', caption: 'Çåëüå Ïðîíçàþùèõ Èãë', makeUp: 'thrustdefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_rubproof: { places: new Array('eweapon'), id: 'pot_base_50_rubproof', caption: 'Çåëüå Ñâèñòÿùèõ Ñåêèð', makeUp: 'sabredefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_drobproof: { places: new Array('eweapon'), id: 'pot_base_50_drobproof', caption: 'Çåëüå Òÿæåëûõ Ìîëîòîâ', makeUp: 'crushdefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_rezproof: { places: new Array('eweapon'), id: 'pot_base_50_rezproof', caption: 'Çåëüå Ñâåðêàþùèõ Ëåçâèé', makeUp: 'cutdefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_damageproof: { places: new Array('eweapon'), id: 'pot_base_50_damageproof', caption: 'Ýëèêñèð Íåóÿçâèìîñòè', makeUp: 'defence', values: new Array(0, 50, 62) },
|
|
pot_base_200_alldmg2: { places: new Array('eweapon'), id: 'pot_base_200_alldmg2', caption: 'Âåëèêîå çåëüå Ñòîéêîñòè', makeUp: 'defence', values: new Array(0, 75, 93) },
|
|
pot_base_200_alldmg3: { places: new Array('eweapon'), id: 'pot_base_200_alldmg3', caption: 'Íåêòàð Íåóÿçâèìîñòè', makeUp: 'defence', values: new Array(0, 100, 125) },
|
|
pot_base_200_alldmg2_p1k: { places: new Array('eweapon'), id: 'pot_base_200_alldmg2_p1k', caption: 'Çåëüå Êàìåííîé Ñòîéêîñòè', makeUp: 'defence', values: new Array(0, 120, 150) },
|
|
separator2: null,
|
|
pot_base_50_fireproof: { places: new Array('emagic'), id: 'pot_base_50_fireproof', caption: 'Ýëèêñèð Ïëàìåíè', makeUp: 'firemagicdefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_airproof: { places: new Array('emagic'), id: 'pot_base_50_airproof', caption: 'Ýëèêñèð Âåòðà', makeUp: 'airmagicdefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_waterproof: { places: new Array('emagic'), id: 'pot_base_50_waterproof', caption: 'Ýëèêñèð Ìîðåé', makeUp: 'watermagicdefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_earthproof: { places: new Array('emagic'), id: 'pot_base_50_earthproof', caption: 'Ýëèêñèð Ïåñêîâ', makeUp: 'earthmagicdefence', values: new Array(0, 50, 62) },
|
|
pot_base_50_magicproof: { places: new Array('emagic'), id: 'pot_base_50_magicproof', caption: 'Ýëèêñèð Ñòèõèé', makeUp: 'magicdefence', values: new Array(0, 50, 62) },
|
|
pot_base_100_allmag1: { places: new Array('emagic'), id: 'pot_base_100_allmag1', caption: 'Ìàëîå çåëüå Îòðèöàíèÿ', makeUp: 'magicdefence', values: new Array(0, 33, 41) },
|
|
separator3: null,
|
|
pot_base_150_fireproof: { places: new Array('emagic'), id: 'pot_base_150_fireproof', caption: 'Ýëèêñèð Çàðåâà', makeUp: 'firemagicdefence', values: new Array(0, 75, 93) },
|
|
pot_base_150_airproof: { places: new Array('emagic'), id: 'pot_base_150_airproof', caption: 'Ýëèêñèð Óðàãàíà', makeUp: 'airmagicdefence', values: new Array(0, 75, 93) },
|
|
pot_base_150_waterproof: { places: new Array('emagic'), id: 'pot_base_150_waterproof', caption: 'Ýëèêñèð Îêåàíîâ', makeUp: 'watermagicdefence', values: new Array(0, 75, 93) },
|
|
pot_base_150_earthproof: { places: new Array('emagic'), id: 'pot_base_150_earthproof', caption: 'Ýëèêñèð Íåäð', makeUp: 'earthmagicdefence', values: new Array(0, 75, 93) },
|
|
pot_base_200_allmag2: { places: new Array('emagic'), id: 'pot_base_200_allmag2', caption: 'Âåëèêîå çåëüå Îòðèöàíèÿ', makeUp: 'magicdefence', values: new Array(0, 75, 93) },
|
|
pot_base_200_allmag3: { places: new Array('emagic'), id: 'pot_base_200_allmag3', caption: 'Íåêòàð Îòðèöàíèÿ', makeUp: 'magicdefence', values: new Array(0, 100, 125) },
|
|
pot_base_200_allmag2_p1k: { places: new Array('emagic'), id: 'pot_base_200_allmag2_p1k', caption: 'Çåëüå Ñòðàæà Ìàãèè', makeUp: 'magicdefence', values: new Array(0, 120, 150) }
|
|
};
|
|
|
|
var knownApplicableSpells = {
|
|
spellIntel: { id: 'spell_stat_intel', caption: 'Õîëîäíûé Ðàçóì', makeUp: 'intellect', values: new Array(0, 10), isSpell: true,check:0 },
|
|
separator2: null,
|
|
spellHitpointsUp: { id: 'spell_powerHPup{0}', caption: 'Æàæäà Æèçíè', makeUp: 'hitpoints', values: new Array(0, 1, 2, 3, 4 , 5, 6), isSpell: true,check:0 },
|
|
spellHitpointsDown: { id: 'spell_powerHPdn{0}', caption: 'Èññóøåíèå', makeUp: 'hitpoints', values: new Array(0, -1, -2, -3, -4 , -5), isSpell: true,check:0 },
|
|
spellBD: { id: 'wis_fire_sign',pic:'wis_fire_sign', caption: 'Áëàãîñëîâåíèå Çâåçä', makeUp: 'allstats', values: new Array(0,1,2,3,4,5,6,7,8,9,10,11), isSpell: true, check:1}
|
|
|
|
};
|
|
|
|
var knownPowerUps = {
|
|
spell_powerup10: {id:'spell_powerup10:',lbl:'Ñîêðóøåíèå', skill: 'greymagicskill', found: false, damageup: true,value:25},
|
|
spell_powerup1: {id:'spell_powerup1',lbl:'Îãíåííîå Óñèëåíèå',skill: 'firemagicskill', found: false, damageup: true, element: 'fire',value:25,check:true},
|
|
spell_powerup2: {id:'spell_powerup2',lbl:'Âîäíîå Óñèëåíèå',skill: 'watermagicskill', found: false, damageup: true, element: 'water',value:25,check:true},
|
|
spell_powerup3: {id:'spell_powerup3',lbl:'Âîçäóøíîå Óñèëåíèå',skill: 'airmagicskill', found: false, damageup: true, element: 'air',value:25,check:true},
|
|
spell_powerup4: {id:'spell_powerup4',lbl:'Çåìíîå Óñèëåíèå',skill: 'earthmagicskill', found: false, damageup: true, element: 'earth',value:25,check:true},
|
|
spell_protect10: {id:'spell_protect10',lbl:'Çàùèòà îò Îðóæèÿ',skill: 'greymagicskill', found: false, damageup: false,value:100},
|
|
spell_protect1: {id:'spell_protect1',lbl:'Çàùèòà îò Îãíÿ',skill: 'firemagicskill', found: false, damageup: false, element: 'fire',value:100},
|
|
spell_protect2: {id:'spell_protect2',lbl:'Çàùèòà îò Âîäû',skill: 'watermagicskill', found: false, damageup: false, element: 'water',value:100},
|
|
spell_protect3: {id:'spell_protect3',lbl:'Çàùèòà îò Âîçäóõà',skill: 'airmagicskill', found: false, damageup: false, element: 'air',value:100},
|
|
spell_protect4: {id:'spell_protect4',lbl:'Çàùèòà îò Çåìëè',skill: 'earthmagicskill', found: false, damageup: false, element: 'earth',value:100}
|
|
};
|
|
|
|
|
|
var knownECRPowerUps = {
|
|
spell_godstat_str: {modify: 'strength', v: 100},
|
|
spell_godstat_dex: {modify: 'dexterity', v: 100},
|
|
spell_godstat_inst: {modify: 'intuition', v: 100},
|
|
spell_godprotect10: {modify: 'defence', v: 500},
|
|
spell_godprotect: {modify: 'magicdefence', v: 500},
|
|
invoke_spell_godintel100: {modify: 'intellect', v: 100},
|
|
invoke_spell_godmana100: {modify: 'mana', v: 2000},
|
|
spell_startenacity: {modify: 'hitpoints', v: 300},
|
|
// áîëüøå 1 ïàðàìåòðà íå õî÷åò ðàñïîçíàâàòü=(
|
|
//spell_starshine: {modify: 'strength', v: 10, 'dexterity', v: 10, 'intuition', v: 10},
|
|
//spell_starenergy: {modify: 'magicpower', v: 20, 'mana', v: 150}
|
|
|
|
// separator2: null, // ñòàòû îò êíèã:
|
|
invoke_plain_1s_str10: {modify: 'strength', v: 10}, //Çåë¸íûé Òîì Çíàíèé
|
|
invoke_plain_1s_dex10: {modify: 'dexterity', v: 10}, //Ƹëòûé Òîì Çíàíèé
|
|
invoke_plain_1s_inst10: {modify: 'intuition', v: 10}, //Êðàñíûé Òîì Çíàíèé
|
|
invoke_plain_1s_intel10: {modify: 'intellect', v: 10}, //Ñèíèé Òîì Çíàíèé
|
|
//invoke_plain_1s_all5: {modify: 'strength', v: 5, 'dexterity', v: 5, 'intuition', v: 5, 'intellect', v: 5}, //Áåëûé òîì çíàíèé
|
|
invoke_plain_1s_spirit10: {modify: 'spirituality', v: 10}, // ×åðíûé Òîì Çíàíèé
|
|
standart_effect: {modify: 'hitpoints', v: 120}
|
|
};
|
|
|
|
var reSharpness = /\+(\d{1,2})$/;
|
|
var reDamage = /^Óäàð: ([0-9]*) - ([0-9]*)$/;
|
|
var reHeadArmor = /^Áðîíÿ ãîëîâû: ([0-9]*)-([0-9]*) \([0-9]*\+d[0-9]*\)$/;
|
|
var reBodyArmor = /^Áðîíÿ êîðïóñà: ([0-9]*)-([0-9]*) \([0-9]*\+d[0-9]*\)$/;
|
|
var reWaistArmor = /^Áðîíÿ ïîÿñà: ([0-9]*)-([0-9]*) \([0-9]*\+d[0-9]*\)$/;
|
|
var reLegArmor = /^Áðîíÿ íîã: ([0-9]*)-([0-9]*) \([0-9]*\+d[0-9]*\)$/;
|
|
var reHitPoints = /^Óðîâåíü æèçíè: \+([0-9]+)$/
|
|
|
|
var combatSpells = {
|
|
fireball: { id: 'fireball', magic: 'fire', critMultiplier: 3, elemental: true, minzero: false },
|
|
lighting_bolt: { id: 'lighting_bolt', magic: 'air', critMultiplier: 1, elemental: true, minzero: true },
|
|
showstorm: { id: 'showstorm', magic: 'water', critMultiplier: 1, elemental: true, minzero: false },
|
|
stonerain: { id: 'stonerain', magic: 'earth', critMultiplier: 3, elemental: true, minzero: false },
|
|
darkbolt: { id: 'darkbolt', magic: 'dark', critMultiplier: 3, elemental: false, minzero: false }
|
|
};
|
|
|
|
var trickCategories = [
|
|
{id: 'novice', caption: 'Ïðè¸ìû íîâè÷êîâ' },
|
|
{id: 'fight', caption: 'Øêîëà Îðóæèÿ' },
|
|
{id: 'fire', caption: 'Ñòèõèÿ Îãíÿ' },
|
|
{id: 'air', caption: 'Ñòèõèÿ Âîçäóõà' },
|
|
{id: 'water', caption: 'Ñòèõèÿ Âîäû' },
|
|
{id: 'earth', caption: 'Ñòèõèÿ Çåìëè' },
|
|
{id: 'light', caption: 'Øêîëà Ñâåòà' },
|
|
{id: 'dark', caption: 'Øêîëà Òüìû' },
|
|
{id: 'grey', caption: 'Ñåðàÿ øêîëà' }
|
|
];
|
|
|
|
var helpChapterHtml = ''
|
|
+ '<h4>Êàê ïîëüçîâàòüñÿ</h4>'
|
|
+ '<p>Íàøà ïðèìåðî÷íàÿ èìååò ïðîñòîé èíòåðôåéñ.</p>'
|
|
+ '<p>Ïðè íàæàòèè (êíîïêîé ìûøè) íà ëþáîé ñëîò ìàíåêåíà ïîÿâëÿåòñÿ ìåíþ, áëàãîäàðÿ êîòîðîìó Âû ìîæåòå íàäåòü ïðåäìåò.</p>'
|
|
+ '<p>Ïîñëå òîãî, êàê Âû îäåëè ïðåäìåò, ñ ïîìîùüþ ýòîãî ìåíþ Âû ìîæåòå ýòîò ïðåäìåò çàòî÷èòü, óëó÷øèòü äî íåîáõîäèìîãî óðîâíÿ, ïîäîãíàòü ïîä êîìïëåêò ÁÊ, '
|
|
+ 'ñíÿòü èëè ïîäîãíàòü áðîíþ ïîä Âàøåãî ïåðñîíàæà.</p>'
|
|
+ '<p>Íàïðèìåð, ñ ïîìîùüþ ýòîãî ìåíþ Âû ìîæåòå íàäåòü Ìå÷ Êðîìóñà, çàòåì óëó÷øèòü åãî äî 9 óðîâíÿ, ïîäîãíàòü ïîä êîìïëåêò Êðîâàâîé Ëóíû, è çàòåì çàòî÷èòü íà +10.</p>'
|
|
+ '<p>Îäåòûå Âàìè ìàíåêåíû Âû âñåãäà ìîæåòå ñîõðàíèòü èëè çàãðóçèòü â âèäå òåêñòà. Äëÿ òîãî, ÷òîáû ïîêàçàòü ïîëó÷èâøèéñÿ âàðèàíò äðóãó, '
|
|
+ 'äîñòàòî÷íî ïåðåäàòü åìó àäðåñ, êîòîðûé Âû óâèäèòå, âûáðàâ êîìàíäó "Ïåðåäàòü ññûëêó íà ýòîò êîìïëåêò äðóãó". '
|
|
+ 'Êñòàòè, ïðè çàãðóçêå êîìïëåêòà âìåñòî òåêñòà ìîæíî óêàçàòü äðóæåñêóþ ññûëêó íà êîìïëåêò.</p>'
|
|
+ '<p>Òàêæå Âû ìîæåòå áûñòðî íàäåòü îäèí èç ïðåäîïðåäåë¸ííûõ êîìïëåêòîâ èãðû "Áîéöîâñêèé Êëóá", âûáðàâ ïóíêò "Íàäåòü êîìïëåêò ÁÊ", ðàñïîëîæåííûé âûøå ìàíåêåíà ïåðñîíàæà.</p>'
|
|
+ '<p> ïðèìåðî÷íîé ïðåäóñìîòðåíà âîçìîæíîñòü îòêðûâàòü íåñêîëüêî êàáèíîê ñ ïîìîùüþ çàêëàäêè "Íîâàÿ êàáèíêà", ÷òîáû Âû ìîãëè îäåâàòü è ñðàâíèâàòü ðàçëè÷íûå âàðèàíòû êîìïëåêòîâ.</p>'
|
|
+ '<p>Òàêæå Âû ìîæåòå ðàññ÷èòàòü ñòîèìîñòü ïåðåáðîñà ñòàòîâ îò îäíîãî êîìïëåêòà ê äðóãîìó, îòêðûâ çàêëàäêó "Êîìíàòà Çíàõàðÿ".</p>'
|
|
+ '<p>Âñòðîåííàÿ òàáëèöà îïûòà äîñòóïíà íà çàêëàäêå "Òàáëèöà îïûòà".</p>'
|
|
+ '<h4>Ðàñ÷¸ò ïîêàçàòåëåé</h4>'
|
|
+ '<p>Äëÿ ïîëó÷åíèÿ ïðàâèëüíûõ ðåçóëüòàòîâ íåîáõîäèìî íå òîëüêî îäåòü ìàíåêåí ïåðñîíàæà ÁÊ, íî è îáÿçàòåëüíî ââåñòè ðîäíûå ïîêàçàòåëè ïåðñîíàæà.</p>'
|
|
+ '<p>Ïðèìåðî÷íàÿ âåä¸ò ðàñ÷¸ò ïîêàçàòåëåé, èñõîäÿ èç äàííûõ Ýíöèêëîïåäèè, à òàêæå ó÷èòûâàÿ ýìïèðè÷åñêèì ïóò¸ì âûâåäåííûå íàøèì êëàíîì ôîðìóëû ðàñ÷¸òà '
|
|
+ '"ðîäíûõ" ïîêàçàòåëåé, à òàêæå ñêðûòûå óñèëåíèÿ è èíûå ìîäèôèêàòîðû.</p>'
|
|
+ '<p>Åñòåñòâåííî, ðåçóëüòàòû ìîãóò áûòü íå ñîâñåì òî÷íûìè, ê òîìó æå íåîáõîäèìî ó÷èòûâàòü òî, ÷òî ìèð ÁÊ ïîñòîÿííî èçìåíÿåòñÿ.</p>'
|
|
+ '<p>Ñðàâíèòü ðåçóëüòèðóþùèå ïîêàçàòåëè êîìïëåêòîâ âî âñåõ îòêðûòûõ êàáèíêàõ ìîæíî, îòêðûâ çàêëàäêó "Ñâîäíàÿ òàáëèöà".</p>'
|
|
+ '<p> îòëè÷èå îò ðàñ÷¸òíîãî ìîäóëÿ Èíâåíòàðÿ ÁÊ, ðàñ÷¸òíûé ìîäóëü íàøåé Ïðèìåðî÷íîé ðàññ÷èòûâàåò áîëüøåå êîëè÷åñòâî ïîêàçàòåëåé, âêëþ÷àÿ ñêðûòûå.</p>'
|
|
+ '<p>Îòëè÷èÿ ðàñ÷¸òíîãî ìîäóëÿ íàøåé Ïðèìåðî÷íîé îò ðàñ÷¸òíûõ ìîäóëåé áîëüøèíñòâà èçâåñòíûõ Ïðèìåðî÷íûõ:</p>'
|
|
+ '<ul><li>Ìû ðàññ÷èòûâàåì ðåàëüíûå çíà÷åíèÿ ïîêàçàòåëåé, à íå òîëüêî îò ïðåäìåòîâ;</li>'
|
|
+ '<li>Ìû ïðàâèëüíî ñ÷èòàåì ïîêàçàòåëè ïî çîíàì "ãîëîâà", "êîðïóñ", "ïîÿñ", "íîãè";</li>'
|
|
+ '<li>Ìû ðàññ÷èòûâàåì ìîùíîñòü ñîêðóøåíèÿ, çàùèòû îò óðîíà, ñòèõèéíîãî óñèëåíèÿ è çàùèòû îò ñòèõèè (åñëè íàäåòü ñîîòâåòñòâóþùèé ñâèòîê);</li>'
|
|
+ '<li>Ìû ðàññ÷èòûâàåì ìîùíîñòü óðîíà îò áîåâîé ìàãèè, ðàñõîäóþùåé ìàíó (åñëè íàäåòü ñîîòâåòñòâóþùèé ñâèòîê).</li></ul>'
|
|
+ '<p> êàáèíêàõ ïîêàçàòåëè âûâîäÿòñÿ â ôîðìàòå: òåêóùåå çíà÷åíèå (âñïëûâàþùàÿ ïîäñêàçêà ïîêàçûâàåò ðàñøèôðîâêó: ðîäíîå çíà÷åíèå + çíà÷åíèå îò êîìïëåêòà) [òðåáóåìîå çíà÷åíèå]. '
|
|
+ 'Åñëè êàêîå-ëèáî çíà÷åíèå ÿâëÿåòñÿ ìàêñèìàëüíî âîçìîæíûì â ÁÊ, òî îíî âûâîäèòñÿ æèðíûì òåêñòîì.</p>'
|
|
+ '<p>Åñëè òåêóùåå çíà÷åíèå ðàâíî ìàêñèìàëüíîìó äëÿ êàáèíîê, îíî âûâîäèòñÿ çåë¸íûì öâåòîì, èíà÷å êîðè÷íåâûì öâåòîì. Åñëè òåêóùåå çíà÷åíèå ìåíüøå òðåáóåìîãî, òî òðåáóåìîå çíà÷åíèå âûäåëÿåòñÿ êðàñíûì öâåòîì.</p>'
|
|
+ '<p><a href="#" class="TLink" onclick="hideMenu(); hideHelp(); return false">Ñêðûòü ñïðàâêó</a>.</p>'
|
|
;
|
|
|
|
var dressHints = new Array(
|
|
'Âû ëåãêî ìîæåòå óçíàòü ñòîèìîñòü ïåðåêèäêè ñòàòîâ äëÿ ïåðåõîäà îò îäíîãî êîìïëåêòà ê äðóãîìó, îòêðûâ çàêëàäêó "Êîìíàòà Çíàõàðÿ".',
|
|
'Åñëè Âû îäåíåòå íà ìàíåêåí ñâèòîê ñîêðóøåíèÿ èëè èíîãî ñòèõèéíîãî óñèëåíèÿ, òî áóäåò òàêæå ðàññ÷èòàíà ìîùíîñòü íàêëàäûâàåìîãî ìàãîì çàêëèíàíèÿ.',
|
|
'Åñëè Âû îäåíåòå íà ìàíåêåí ñâèòîê áîåâîé ìàãèè, òðåáóþùèé ìàíó, òî áóäåò òàêæå ðàññ÷èòàí óðîí áîåâîãî çàêëèíàíèÿ (äëÿ öåëè ñ íóëåâîé çàùèòîé îò ìàãèè).',
|
|
'Äëÿ òîãî, ÷òîáû íàäåòü àðòåôàêò, ïðåäïîëîæèì, äåâÿòîãî óðîâíÿ, ïðîñòî îäåíüòå àðòåôàêò, à çàòåì íàæìèòå íà îäåòûé àðòåôàêò, è âûáåðèòå â ìåíþ ïóíêò "Óëó÷øèòü".',
|
|
'Äëÿ òîãî, ÷òîáû ïîäîãíàòü áðîíþ, íàæìèòå íà îäåòóþ áðîíþ, è âûáåðèòå â ìåíþ ïóíêò "Ïîäîãíàòü áðîíþ".',
|
|
'Äëÿ òîãî, ÷òîáû ïîäîãíàòü ïðåäìåò ïîä êîìïëåêò ÁÊ, íàæìèòå íà îäåòûé ïðåäìåò, è âûáåðèòå â ìåíþ ïóíêò "Ïîäîãíàòü ïîä êîìïëåêò".',
|
|
'Ïðèìåðî÷íàÿ äîëãî ãðóçèòñÿ? Ïðîâåðüòå íàñòðîéêè Internet Explorer: Ñåðâèñ | Ñâîéñòâà îáîçðåâàòåëÿ, Äîïîëíèòåëüíî, Íàñòðîéêà HTTP 1.1 - ãàëî÷êè äîëæíû áûòü ïðîñòàâëåíû äëÿ îáîèõ ïîäïóíêòîâ.',
|
|
'Äëÿ òîãî, ÷òîáû çàòî÷èòü îðóæèå, íàæìèòå íà îäåòîå îðóæèå, è âûáåðèòå â ìåíþ ïóíêò "Çàòî÷êà íà +X".',
|
|
'Ïî óìîë÷àíèþ óñòàðåâøèå ïðåäìåòû òèïà Ðîáû Òîðãîâöà íåäîñòóïíû â ìåíþ âûáîðà ïðåäìåòà. Íî Âû âñåãäà ìîæåòå ñäåëàòü èõ äîñòóïíûìè, èñïîëüçóÿ "Ôèëüòð".',
|
|
'Åñëè Âû õîòèòå îòêëþ÷èòü âèçóàëüíûå ýôôåêòû, òàêèå, êàê ïîëóïðîçðà÷íîñòü, àíèìàöèÿ èëè èçîáðàæåíèÿ ïðåäìåòîâ â ñïèñêàõ, äîñòàòî÷íî îòêðûòü "Íàñòðîéêè".',
|
|
'Íà÷àòü ïðèìåðêó ÷àñòî óäîáíî, âçÿâ çà îñíîâó ðåàëüíî ñóùåñòâóþùåãî ïåðñîíàæà ÁÊ, ââåäÿ åãî íèê: "Ïî ïåðñîíàæó ÁÊ".',
|
|
'Åñëè Âû õîòèòå ïðèìåðèòü îäèí èç êîìïëåêòîâ ÁÊ, óäîáíî âûáðàòü êîìïëåêò öåëèêîì èç ìåíþ "Íàäåòü êîìïëåêò ÁÊ".',
|
|
'×òîáû óâèäåòü ðåàëüíûå ðàñ÷¸òíûå äàííûå, íåîáõîäèìî îäåòü ìàíåêåí è îáÿçàòåëüíî ââåñòè ñòàòû è óìåíèÿ ïåðñîíàæà.',
|
|
'Âû ìîæåòå îäíîâðåìåííî ðàáîòàòü ñ íåñêîëüêèìè âàðèàíòàìè ýêèïèðîâêè, èñïîëüçóÿ ïðîèçâîëüíîå êîëè÷åñòâî êàáèíîê, íàæàâ íà çàêëàäêó "Íîâàÿ êàáèíêà".',
|
|
'Âû ìîæåòå ëåãêî ñðàâíèòü ðàçíûå âàðèàíòû ýêèïèðîâêè â îòêðûòûõ êàáèíêàõ, îòêðûâ çàêëàäêó "Ñâîäíàÿ òàáëèöà".'
|
|
);
|
|
|
|
function setItemPropLabel(propName, newLabel)
|
|
{
|
|
item_props[propName].lbl = newLabel;
|
|
}
|
|
|
|
function getItemPropLabel(propName)
|
|
{
|
|
return item_props[propName].lbl;
|
|
}
|
|
|
|
function getItemPropFormattedValue(propName, value, maxvalue)
|
|
{
|
|
var itemProp = item_props[propName];
|
|
var actualValue = value;
|
|
if (('maxvalue' in itemProp) && (value >= itemProp.maxvalue))
|
|
{
|
|
actualValue = itemProp.maxvalue.toString().bold();
|
|
}
|
|
var fmt = ('fmt' in itemProp) ? itemProp.fmt : '{0}';
|
|
r = format(fmt, actualValue);
|
|
if (maxvalue == null)
|
|
{
|
|
return r;
|
|
}
|
|
if (value !== maxvalue && value < maxvalue)
|
|
{
|
|
return r.fontcolor("brown");
|
|
}
|
|
return r.fontcolor("darkgreen");
|
|
}
|
|
|
|
|
|
function testStateProp(state, propName, value)
|
|
{
|
|
var v = parseInt(value);
|
|
var r = true
|
|
&& (state != null)
|
|
&& !isNaN(v)
|
|
;
|
|
if (r && (propName in state.results))
|
|
{
|
|
var sv = state.results[propName];
|
|
if (propName in state.battlemf)
|
|
{
|
|
sv -= state.battlemf[propName];
|
|
}
|
|
r = (sv < v);
|
|
}
|
|
return r;
|
|
}
|
|
|
|
function getHtmlOfProp(state, obj, propDesc, propName, extension)
|
|
{
|
|
if (obj == null || propDesc == null || !(propName in obj))
|
|
{
|
|
return '';
|
|
}
|
|
var fmt = ('fmt' in propDesc) ? propDesc.fmt : '{0}';
|
|
var v = format(fmt, obj[propName]);
|
|
var red = false;
|
|
if (state != null)
|
|
{
|
|
red |= testStateProp(state, propName, obj[propName]);
|
|
}
|
|
if (red)
|
|
{
|
|
v = format('<font color="red">{0}</font>', v);
|
|
}
|
|
var r = propDesc.lbl + ': ' + v;
|
|
if (extension != null)
|
|
{
|
|
r += extension;
|
|
}
|
|
return r + '<br />';
|
|
}
|
|
|
|
function getHtmlOfSignedProp(obj, propDesc, propName, charm, rune, runeOpt)
|
|
{
|
|
if (obj == null || propDesc == null || !(propName in obj))
|
|
{
|
|
return '';
|
|
}
|
|
var runeMods=null;
|
|
if ((rune != null) && (runeOpt != null))
|
|
{
|
|
var appRune = getObjectById(rune);
|
|
if ('modify' in appRune)
|
|
{
|
|
if ('opts' in appRune.modify)
|
|
{
|
|
if (appRune.modify.opts[runeOpt] != null)
|
|
{
|
|
runeMods=appRune.modify.opts[runeOpt];
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
var fmt = ('fmt' in propDesc) ? propDesc.fmt : '{0}';
|
|
var v = parseInt(obj[propName]);
|
|
if (isNaN(v))
|
|
{
|
|
v = obj[propName];
|
|
}
|
|
else
|
|
{
|
|
var hasCharm = false;
|
|
if ((charm != null) && (propName in charm))
|
|
{
|
|
v -= charm[propName];
|
|
hasCharm = true;
|
|
}
|
|
|
|
var hasRune = false;
|
|
if ((runeMods != null) && (propName in runeMods))
|
|
{
|
|
v -= runeMods[propName];
|
|
hasRune = true;
|
|
}
|
|
if (v > 0)
|
|
{
|
|
v = '+' + v;
|
|
}
|
|
if (hasCharm)
|
|
{
|
|
v = '' + v + '<b>';
|
|
if (charm[propName] > 0)
|
|
{
|
|
v += '+';
|
|
}
|
|
v += '' + charm[propName] + '</b>';
|
|
}
|
|
|
|
if (hasRune)
|
|
{
|
|
v = '' + v + '<i>';
|
|
if (runeMods[propName] > 0)
|
|
{
|
|
v += '+';
|
|
}
|
|
v += '' + runeMods[propName] + '</i>';
|
|
}
|
|
}
|
|
return propDesc.lbl + ': ' + format(fmt, v) + '<br />';
|
|
}
|
|
|
|
function getHtmlOfArmorProp(obj, basePropName, caption)
|
|
{
|
|
var amin = null;
|
|
var amax = null;
|
|
if (obj == null)
|
|
{
|
|
return '';
|
|
}
|
|
if (basePropName in obj)
|
|
{
|
|
amax = amin = obj[basePropName];
|
|
}
|
|
else if ((basePropName + '1') in obj)
|
|
{
|
|
amin = obj[basePropName + '1'];
|
|
amax = obj[basePropName + '2'];
|
|
}
|
|
if (amin == null)
|
|
{
|
|
return '';
|
|
}
|
|
return format('{0}: {1}-{2}<br />', caption, amin, amax);
|
|
}
|
|
|
|
function getDefAttackFreqFor(atype)
|
|
{
|
|
return {id: atype, ideal: 25, real: 25, freal: 25, elemental: false};
|
|
}
|
|
|
|
function getAttackFreq(obj)
|
|
{
|
|
if (obj == null || !('attacks' in obj))
|
|
{
|
|
return {
|
|
thrust: getDefAttackFreqFor('thrust'),
|
|
sabre: getDefAttackFreqFor('sabre'),
|
|
crush: getDefAttackFreqFor('crush'),
|
|
cut: getDefAttackFreqFor('cut')
|
|
};
|
|
}
|
|
var totalv = 0;
|
|
var r = new Object();
|
|
for (var attackn in obj.attacks)
|
|
{
|
|
var iv = attackFreq['f' + obj.attacks[attackn]];
|
|
var elemental = false;
|
|
for (var nei = 0; nei < naturalElements.length; nei++)
|
|
{
|
|
if (naturalElements[nei] == attackn)
|
|
{
|
|
elemental = true;
|
|
break;
|
|
}
|
|
}
|
|
r[attackn] = {id:attackn, ideal: iv, elemental: elemental};
|
|
totalv += iv;
|
|
}
|
|
for (var rn in r)
|
|
{
|
|
r[rn].real = (r[rn].ideal * 100.0) / totalv;
|
|
r[rn].freal = Math.floor(r[rn].real * 100.0 + 0.5) / 100.0;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
function areNotMagicGloves(o)
|
|
{
|
|
return ((o != null) && (o.slot == 'w11') && (!('required' in o) || !('wisdom' in o.required) || (o.required.wisdom == 0)));
|
|
}
|
|
|
|
function isHeavyArmor(o)
|
|
{
|
|
return ((o != null) && (o.slot == 'w4') && (o.category == 'heavyarmors'));
|
|
}
|
|
|
|
function isSecondaryWeapon(o)
|
|
{
|
|
return ((o != null) && ('properties' in o) && ('secondweapon' in o.properties) && (o.properties.secondweapon == 'yes'));
|
|
}
|
|
|
|
function isTwohandledWeapon(o)
|
|
{
|
|
return ((o != null) && ('properties' in o) && ('twohandled' in o.properties) && (o.properties.twohandled == 'yes'));
|
|
}
|
|
|
|
function getJSName(id)
|
|
{
|
|
if (id == null)
|
|
{
|
|
return null;
|
|
}
|
|
if (id.length > 0)
|
|
{
|
|
if (id.charAt(0) >= '0' && id.charAt(0) <= '9')
|
|
{
|
|
id = '_' + id;
|
|
}
|
|
}
|
|
return replacestr(replacestr(id, '.', '_'), '-', '_');
|
|
}
|
|
|
|
function getObjectById(objid)
|
|
{
|
|
if (objid == null)
|
|
{
|
|
return null;
|
|
}
|
|
return dressItems[getJSName(objid)];
|
|
}
|
|
|
|
function getSetById(setid)
|
|
{
|
|
return dressSets[getJSName(setid)];
|
|
}
|
|
|
|
function getSetAndCountById(setCountId)
|
|
{
|
|
for (var setn in dressSets)
|
|
{
|
|
var set = dressSets[setn];
|
|
if (!('details' in set))
|
|
{
|
|
continue;
|
|
}
|
|
for (var scn in set.details)
|
|
{
|
|
if (scn == setCountId)
|
|
{
|
|
return {set: set, count: set.details[scn]};
|
|
}
|
|
}
|
|
}
|
|
return {set: null, count: null};
|
|
}
|
|
|
|
function getSetCountById(setCountId)
|
|
{
|
|
var r = getSetAndCountById(setCountId);
|
|
return r.count;
|
|
}
|
|
|
|
function getCountForSet(state, setid)
|
|
{
|
|
if (state == null)
|
|
{
|
|
return 0;
|
|
}
|
|
var countFound = 0;
|
|
var set = getSetById(setid);
|
|
for (var sloti = 0; sloti < slots.length; sloti++)
|
|
{
|
|
var slot = slots[sloti];
|
|
var o = getObjectByStateSlot(state, slot);
|
|
if (o == null || !('setlink' in o) || (o.setlink.name != set.id))
|
|
{
|
|
continue;
|
|
}
|
|
countFound++;
|
|
|
|
if (isTwohandledWeapon(o))
|
|
{
|
|
countFound++;
|
|
}
|
|
}
|
|
return countFound;
|
|
}
|
|
|
|
function getStrengtheningById(strengtheningid)
|
|
{
|
|
return dressStrengthenings[strengtheningid];
|
|
}
|
|
|
|
function getObjectDescHtml(state, obj)
|
|
{
|
|
var i;
|
|
var html = '';
|
|
var addinfo = '';
|
|
var level = 0;
|
|
if (('required' in obj) && ('level' in obj.required))
|
|
{
|
|
level = obj.required.level;
|
|
}
|
|
var artefact = (('artefact' in obj) && obj.artefact);
|
|
var old = (('old' in obj) && obj.old);
|
|
var imp1 = (('imp1' in obj) && obj.imp1);
|
|
var showTeeth = (level < 8) && !artefact && !old && !imp1;
|
|
html += obj.caption.bold();
|
|
if (('showlevel' in obj) && obj.showlevel && ('level' in obj))
|
|
{
|
|
html += ' <b>[' + obj.level + ']</b>';
|
|
}
|
|
if (artefact)
|
|
{
|
|
html += format(' <img src="{0}artefact.gif" width="18" height="16" border="0" alt="Artefact" />', baseImgPath);
|
|
}
|
|
if ('alignment' in obj)
|
|
{
|
|
html += format(' ' + alignImages[obj.alignment], baseImgPath);
|
|
}
|
|
if ('binding' in obj)
|
|
{
|
|
switch (obj.binding)
|
|
{
|
|
case 'bop':
|
|
html += ' <img src="' + baseImgPath + 'destiny.gif" style="filter: invert()" border="0" width="16" height="18" alt="' + localizer.bop + '" />';
|
|
break;
|
|
case 'boe':
|
|
html += ' <img src="' + baseImgPath + 'destiny.gif" style="filter: gray()" border="0" width="16" height="18" alt="' + localizer.boe + '" />';
|
|
break;
|
|
}
|
|
}
|
|
else if ('destiny' in obj)
|
|
{
|
|
html += ' <img src="' + baseImgPath + 'destiny.gif" border="0" width="16" height="18" alt="' + obj.destiny + '" />';
|
|
}
|
|
if (('wasFit' in obj) && obj.wasFit)
|
|
{
|
|
html += ' ' + localizer.wasFit;
|
|
}
|
|
if (('wasUpgrade' in obj) && obj.wasUpgrade)
|
|
{
|
|
html += ' ' + localizer.wasUpgrade;
|
|
}
|
|
if (old)
|
|
{
|
|
html += ' [old]';
|
|
}
|
|
if (imp1)
|
|
{
|
|
html += ' ' + localizer.impitem;
|
|
}
|
|
if (('wasCharmed' in obj) && obj.wasCharmed)
|
|
{
|
|
html += ' ' + localizer.wasCharmed;
|
|
}
|
|
if (('wasAdded' in obj) && obj.wasAdded)
|
|
{
|
|
html += ' ' + localizer.wasAdded;
|
|
}
|
|
html += '<br />';
|
|
|
|
if (('wasRuned' in obj) && ('rune' in obj))
|
|
{
|
|
var appRune = getObjectById(obj.rune);
|
|
if ('caption' in appRune)
|
|
{
|
|
html += '<i>'+localizer.wasRuned + ': ' + appRune.caption.bold() + '</i><br />';
|
|
}
|
|
}
|
|
if ('owner' in obj)
|
|
{
|
|
html += localizer.ownedBy + '<b>' + obj.owner + '</b><br />';
|
|
}
|
|
if ('clan' in obj)
|
|
{
|
|
html += localizer.ownedBy + '<img src="' + clanImgPath + obj.clan + '.gif" width="24" height="15" border="0" /><b>' + obj.clan + '</b><br />';
|
|
}
|
|
if (('resources' in obj) || (('consumes' in obj) && ('spiritlevel' in obj.consumes)))
|
|
{
|
|
var rhtml = '';
|
|
if ('resources' in obj)
|
|
{
|
|
for (var rn in obj.resources)
|
|
{
|
|
rhtml += '<img src="' + trickResourceImgPath + rn + '.gif" width="8" height="8" border="0" />';
|
|
rhtml += ' ' + obj.resources[rn] + ' ';
|
|
}
|
|
}
|
|
if (('consumes' in obj) && ('spiritlevel' in obj.consumes))
|
|
{
|
|
rhtml += '<img src="' + trickResourceImgPath + 'spirit.gif" width="8" height="8" border="0" />';
|
|
rhtml += ' ' + obj.consumes.spiritlevel + ' ';
|
|
}
|
|
if (rhtml != '')
|
|
{
|
|
html += '<span style="font-size: 10px; font-family: Verdana, Arial, Helvetica;">';
|
|
html += rhtml;
|
|
html += '</span><br />';
|
|
}
|
|
}
|
|
if ('count' in obj)
|
|
{
|
|
html += format(localizer.aboutSetCount, obj.count) + '<br />';
|
|
}
|
|
if ('upgrade' in obj)
|
|
{
|
|
html += localizer.canUpgrade + '<br />';
|
|
}
|
|
if ((('artefact' in obj) && obj.artefact) || (('adjustment' in obj) && obj.adjustment))
|
|
{
|
|
html += localizer.canFit + '<br />';
|
|
}
|
|
if ('common' in obj)
|
|
{
|
|
for (var mfname in common_props)
|
|
{
|
|
if (!common_props[mfname].view)
|
|
{
|
|
continue;
|
|
}
|
|
var extension = '';
|
|
if (mfname == 'price' && showTeeth && ('price' in obj.common))
|
|
{
|
|
extension += ' (';
|
|
var price = obj.common.price;
|
|
if (price >= 100)
|
|
{
|
|
extension += Math.floor(price / 100);
|
|
price = price % 100;
|
|
extension += '<img width="7" height="7" border="0" alt="" src="' + toothImgPath + 'zub_low1.gif" title="×èñòûé çóá" />';
|
|
}
|
|
if (price >= 10)
|
|
{
|
|
extension += Math.floor(price / 10);
|
|
price = price % 10;
|
|
extension += '<img width="7" height="7" border="0" alt="" src="' + toothImgPath + 'zub_low3.gif" title="Íîðìàëüíûé çóá" />';
|
|
}
|
|
if (price > 0)
|
|
{
|
|
extension += price;
|
|
extension += '<img width="7" height="7" border="0" alt="" src="' + toothImgPath + 'zub_low4.gif" title="Ãíèëîé çóá" />';
|
|
}
|
|
extension += ')';
|
|
}
|
|
html += getHtmlOfProp(null, obj.common, common_props[mfname], mfname, extension);
|
|
|
|
}
|
|
if (('probability' in obj.common) && item_props.probability.view)
|
|
{
|
|
html += item_props.probability.lbl + ': ';
|
|
var probability = obj.common.probability;
|
|
html += getItemPropFormattedValue('probability', probability);
|
|
if (state != null)
|
|
{
|
|
var ointellect = 0;
|
|
if (('required' in obj) && ('intellect' in obj.required))
|
|
{
|
|
ointellect = obj.required.intellect;
|
|
}
|
|
if (('results' in state) && ('intellect' in state.results))
|
|
{
|
|
html += ' ('+ localizer.probabilityReal + ' ';
|
|
if (state.results.intellect < ointellect)
|
|
{
|
|
html += localizer.probabilityNever;
|
|
}
|
|
else
|
|
{
|
|
var realprobability = (probability * (1 + (state.results.intellect - ointellect) * 0.03));
|
|
realprobability = Math.floor(realprobability * 100.0 + 0.5) / 100.0;
|
|
if (realprobability > 99.0)
|
|
{
|
|
realprobability = 99.0;
|
|
}
|
|
html += getItemPropFormattedValue('probability', realprobability);
|
|
}
|
|
html += ')';
|
|
}
|
|
}
|
|
html += '<br />';
|
|
}
|
|
}
|
|
var comsumationHtml = '';
|
|
var absConsumeMultiplier = 1;
|
|
if (state != null && state.natural.spirituality >= 75)
|
|
{
|
|
absConsumeMultiplier = 0.5;
|
|
}
|
|
for (var acn in absoluteSpiritConsumers)
|
|
{
|
|
var ac = absoluteSpiritConsumers[acn];
|
|
if (ac.id == obj.id)
|
|
{
|
|
comsumationHtml += getItemPropLabel('spiritlevel');
|
|
comsumationHtml += ': ';
|
|
comsumationHtml += ac.spirit * absConsumeMultiplier;
|
|
comsumationHtml += '<br />';
|
|
break;
|
|
}
|
|
}
|
|
for (var rcn in relativeSpiritConsumers)
|
|
{
|
|
var rc = relativeSpiritConsumers[rcn];
|
|
if (rc.id == obj.id)
|
|
{
|
|
comsumationHtml += getItemPropLabel('spiritlevel');
|
|
comsumationHtml += ': ';
|
|
var sl = Math.floor((rc.hp * 1000.0) / state.results.hitpoints) / 100;
|
|
comsumationHtml += sl;
|
|
comsumationHtml += '<br />';
|
|
break;
|
|
}
|
|
}
|
|
if (comsumationHtml != '')
|
|
{
|
|
html += localizer.itemComsumesGroup.bold() + '<br />';
|
|
html += comsumationHtml;
|
|
}
|
|
if ('required' in obj)
|
|
{
|
|
html += localizer.itemRequiredGroup.bold() + '<br />';
|
|
if ('sex' in obj.required)
|
|
{
|
|
var statesex = state.sex ? 'female' : 'male';
|
|
var itemProp = item_props['sex'];
|
|
if (itemProp.view)
|
|
{
|
|
html += getItemPropLabel('sex');
|
|
html += ': ';
|
|
if (statesex != obj.required.sex)
|
|
{
|
|
html += '<font color="red">';
|
|
}
|
|
html += (obj.required.sex == 'male') ? 'ìóæñêîé': 'æåíñêèé';
|
|
if (statesex != obj.required.sex)
|
|
{
|
|
html += '</font>';
|
|
}
|
|
html += '<br />';
|
|
}
|
|
}
|
|
|
|
for (var mfname in item_props)
|
|
{
|
|
var itemProp = item_props[mfname];
|
|
if (!itemProp.view)
|
|
{
|
|
continue;
|
|
}
|
|
if (('required' in itemProp) && itemProp.required)
|
|
{
|
|
html += getHtmlOfProp(state, obj.required, itemProp, mfname);
|
|
}
|
|
}
|
|
if (isTwohandledWeapon(obj))
|
|
{
|
|
html += localizer.twohandledWeapon + '<br />';
|
|
}
|
|
if ('zodiacs' in obj)
|
|
{
|
|
html += 'Çíàê çîäèàêà: ';
|
|
var firstz = true;
|
|
for (var zn in obj.zodiacs)
|
|
{
|
|
var z = obj.zodiacs[zn];
|
|
if (firstz)
|
|
{
|
|
firstz = false;
|
|
}
|
|
else
|
|
{
|
|
html += ', ';
|
|
}
|
|
html += z.caption;
|
|
}
|
|
html += '<br />';
|
|
}
|
|
if ('capitalreputation' in obj.required)
|
|
{
|
|
html += 'Ðåïóòàöèÿ â Capital city: ' + obj.required.capitalreputation;
|
|
if (obj.required.capitalreputation >= 10000)
|
|
{
|
|
html += '<img src="' + brandImgPath + '1.gif" width="34" height="19" border="0" />';
|
|
}
|
|
html += '<br />';
|
|
}
|
|
if ('angelsreputation' in obj.required)
|
|
{
|
|
html += 'Ðåïóòàöèÿ â Angels city: ' + obj.required.angelsreputation;
|
|
if (obj.required.angelsreputation >= 10000)
|
|
{
|
|
html += '<img src="' + brandImgPath + '2.gif" width="34" height="19" border="0" />';
|
|
}
|
|
html += '<br />';
|
|
}
|
|
if ('sandreputation' in obj.required)
|
|
{
|
|
html += 'Ðåïóòàöèÿ â Sand city: ' + obj.required.sandreputation;
|
|
if (obj.required.sandreputation >= 10000)
|
|
{
|
|
html += '<img src="' + brandImgPath + '7.gif" width="34" height="19" border="0" />';
|
|
}
|
|
html += '<br />';
|
|
}
|
|
if ('demonsreputation' in obj.required)
|
|
{
|
|
html += 'Ðåïóòàöèÿ â Demons city: ' + obj.required.demonsreputation;
|
|
if (obj.required.demonsreputation >= 10000)
|
|
{
|
|
html += '<img src="' + brandImgPath + '3.gif" width="34" height="19" border="0" />';
|
|
}
|
|
html += '<br />';
|
|
}
|
|
if ('baltarreputation' in obj.required)
|
|
{
|
|
html += 'Ïîæåðòâîâàíî ðóáèíîâ íà Àëòàðü Êðîâè: ' + obj.required.baltarreputation;
|
|
if (obj.required.baltarreputation >= 100)
|
|
{
|
|
html += '<img src="' + brand2ImgPath + 'znbl_1.gif" width="35" height="24" border="0" />';
|
|
}
|
|
html += '<br />';
|
|
}
|
|
}
|
|
if ('modify' in obj)
|
|
{
|
|
html += localizer.itemModifyGroup.bold() + '<br />';
|
|
|
|
//"Variable actions for different runes
|
|
if ('opts' in obj.modify)
|
|
{
|
|
if (obj.modify.opts.length >= 1)
|
|
{
|
|
html += localizer.opt_choices + ':<br />';
|
|
for (var a=0; a<= obj.modify.opts.length-1; a++)
|
|
{
|
|
for (var imod in obj.modify.opts[a])
|
|
{
|
|
if (!item_props[imod])
|
|
{ continue; }
|
|
html += '<li> '+getHtmlOfSignedProp(obj.modify.opts[a], item_props[imod], imod, null, null, null)+'</li>';
|
|
}
|
|
}
|
|
html += '<br>';
|
|
}
|
|
}
|
|
|
|
for (var mfname in item_props)
|
|
{
|
|
if (!item_props[mfname].view)
|
|
{
|
|
continue;
|
|
}
|
|
html += getHtmlOfSignedProp(obj.modify, item_props[mfname], mfname, obj.charms, obj.rune, obj.runeOpt);
|
|
}
|
|
for (var armorn in knownArmorModifiers)
|
|
{
|
|
if (!item_props[armorn].view)
|
|
{
|
|
continue;
|
|
}
|
|
html += getHtmlOfArmorProp(obj.modify, armorn, getItemPropLabel(armorn));
|
|
}
|
|
|
|
|
|
|
|
}
|
|
if ('properties' in obj)
|
|
{
|
|
html += localizer.itemPropertiesGroup.bold() + '<br />';
|
|
for (var mfname in item_props)
|
|
{
|
|
if (!item_props[mfname].view)
|
|
{
|
|
continue;
|
|
}
|
|
html += getHtmlOfSignedProp(obj.properties, item_props[mfname], mfname);
|
|
}
|
|
if (isTwohandledWeapon(obj))
|
|
{
|
|
addinfo += localizer.twohandledWeapon + '<br />';
|
|
}
|
|
if (isSecondaryWeapon(obj))
|
|
{
|
|
addinfo += localizer.secondaryWeapon + '<br />';
|
|
}
|
|
if ('blockzones' in obj.properties)
|
|
{
|
|
addinfo += localizer.blockZones + ': <b>' + obj.properties.blockzones + '</b><br />';
|
|
}
|
|
}
|
|
if ('magic1' in obj)
|
|
{
|
|
addinfo += localizer.useMagic;
|
|
addinfo += ' ';
|
|
addinfo += obj.magic1;
|
|
addinfo += '<br />';
|
|
}
|
|
if ('magic' in obj)
|
|
{
|
|
addinfo += localizer.hasMagic;
|
|
addinfo += ' ';
|
|
if ('name' in obj.magic)
|
|
{
|
|
var alt = '';
|
|
if ('caption' in obj.magic)
|
|
{
|
|
alt = format(' alt="{0}"', obj.magic.caption);
|
|
}
|
|
addinfo += format('<img src="{2}{0}.gif" width="40" height="25" border="0"{1} />', obj.magic.name, alt, itemImgPath);
|
|
addinfo += ' ';
|
|
}
|
|
if ('description' in obj.magic)
|
|
{
|
|
addinfo += obj.magic.description;
|
|
}
|
|
addinfo += '<br />';
|
|
}
|
|
if ('setlink' in obj)
|
|
{
|
|
var set = getSetById(obj.setlink.name);
|
|
addinfo += format(localizer.partOfSet, set.caption, getCountForSet(state, set.id), set.count);
|
|
addinfo += '<br />';
|
|
}
|
|
if (('fixless' in obj) && obj.fixless)
|
|
{
|
|
addinfo += localizer.fixless;
|
|
addinfo += '<br />';
|
|
}
|
|
if (('artefact' in obj) && obj.artefact)
|
|
{
|
|
addinfo += localizer.fixless;
|
|
addinfo += '<br />';
|
|
addinfo += localizer.charmless;
|
|
addinfo += '<br />';
|
|
}
|
|
if ('description' in obj)
|
|
{
|
|
addinfo += obj.description;
|
|
addinfo += '<br />';
|
|
}
|
|
|
|
if (addinfo != '')
|
|
{
|
|
html += localizer.itemAddInfoGroup.italics() + '<br />';
|
|
html += addinfo;
|
|
}
|
|
if ('attacks' in obj)
|
|
{
|
|
var af = getAttackFreq(obj);
|
|
html += localizer.itemAttackGroup.italics() + '<br />';
|
|
|
|
for (var attackn in obj.attacks)
|
|
{
|
|
var attackt = 'attackt' + attackn;
|
|
if (attackt in localizer)
|
|
{
|
|
attackt = localizer[attackt];
|
|
}
|
|
else
|
|
{
|
|
attackt = attackn;
|
|
}
|
|
var attackq = 'attackq' + obj.attacks[attackn];
|
|
if (attackq in localizer)
|
|
{
|
|
attackq = localizer[attackq];
|
|
}
|
|
else
|
|
{
|
|
attackq = obj.attacks[attackn];
|
|
}
|
|
var attackf = af[attackn].freal;
|
|
html += attackt + ': ' + attackq + ' (' + attackf + '%)<br />';
|
|
}
|
|
}
|
|
if ('defences' in obj)
|
|
{
|
|
html += localizer.itemDefenceGroup.italics() + '<br />';
|
|
for (var defencen in obj.defences)
|
|
{
|
|
var defencet = 'defencet' + defencen;
|
|
if (defencet in localizer)
|
|
{
|
|
defencet = localizer[defencet];
|
|
}
|
|
else
|
|
{
|
|
defencet = defencen;
|
|
}
|
|
var defenceq = 'defenceq' + obj.defences[defencen];
|
|
if (defenceq in localizer)
|
|
{
|
|
defenceq = localizer[defenceq];
|
|
}
|
|
else
|
|
{
|
|
defenceq = obj.defences[defencen];
|
|
}
|
|
html += defencet + ': ' + defenceq + '<br />';
|
|
}
|
|
}
|
|
return html;
|
|
}
|
|
|
|
// serialization
|
|
|
|
function serializeValue(v)
|
|
{
|
|
var r = '';
|
|
if (v == null)
|
|
{
|
|
r += '0//';
|
|
}
|
|
else
|
|
{
|
|
if (typeof (v) == 'string')
|
|
{
|
|
r += "s/'";
|
|
r += escape(v);
|
|
r += "'/";
|
|
}
|
|
else if (typeof (v) == 'boolean')
|
|
{
|
|
r += 'b/';
|
|
r += v ? 'Y' : 'N';
|
|
r += '/';
|
|
}
|
|
else if (typeof (v) == 'number')
|
|
{
|
|
r += 'n/';
|
|
r += v.toString();
|
|
r += '/';
|
|
}
|
|
else if (typeof (v) == 'object')
|
|
{
|
|
if (v instanceof Array)
|
|
{
|
|
r += 'a/';
|
|
r += serializeArray(v);
|
|
r += '/';
|
|
}
|
|
else
|
|
{
|
|
r += 'o/';
|
|
r += serializeObject(v);
|
|
r += '/';
|
|
}
|
|
}
|
|
}
|
|
return r;
|
|
}
|
|
|
|
function serializeArray(a)
|
|
{
|
|
var r = '';
|
|
for (var i = 0; i < a.length; i++)
|
|
{
|
|
if (r != '')
|
|
{
|
|
r += ',';
|
|
}
|
|
r += serializeValue(a[i]);
|
|
}
|
|
r = '(' + r + ')';
|
|
return r;
|
|
}
|
|
|
|
function serializeObject(obj)
|
|
{
|
|
var r = '';
|
|
for (var propName in obj)
|
|
{
|
|
if (r != '')
|
|
{
|
|
r += ',';
|
|
}
|
|
var v = obj[propName];
|
|
r += propName;
|
|
r += '/';
|
|
r += serializeValue(v);
|
|
}
|
|
r = '{' + r + '}';
|
|
return r;
|
|
}
|
|
|
|
function reqContextChar(context)
|
|
{
|
|
var found = false;
|
|
var c = context.s.charAt(context.index);
|
|
var msg = '';
|
|
for (var i = 1; i < reqContextChar.arguments.length; i++)
|
|
{
|
|
if (c == reqContextChar.arguments[i])
|
|
{
|
|
found = true;
|
|
break;
|
|
}
|
|
if (msg != '')
|
|
{
|
|
msg += ' or ';
|
|
}
|
|
msg += '"' + reqContextChar.arguments[i] + '"';
|
|
}
|
|
if (!found)
|
|
{
|
|
context.errorMessage = 'cannot deserialize value. we expect ' + msg + ' character at index ' + context.index + '.';
|
|
context.errorFound = true;
|
|
}
|
|
return found;
|
|
}
|
|
|
|
function readSerializedValue(context)
|
|
{
|
|
var c;
|
|
var vt = context.s.charAt(context.index);
|
|
context.index++;
|
|
switch (vt)
|
|
{
|
|
case '0':
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
context.valueRead = null;
|
|
break;
|
|
case 's':
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
reqContextChar(context, "'");
|
|
context.index++;
|
|
var nextAposIndex = context.s.indexOf("'", context.index);
|
|
if (nextAposIndex < 0)
|
|
{
|
|
context.errorMessage = 'cannot deserialize string value. we expect end ' character after index ' + context.index + '.';
|
|
context.errorFound = true;
|
|
return;
|
|
}
|
|
context.valueRead = unescape(context.s.substring(context.index, nextAposIndex));
|
|
context.index = nextAposIndex + 1;
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
break;
|
|
case 'b':
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
reqContextChar(context, 'Y', 'N');
|
|
c = context.s.charAt(context.index);
|
|
context.valueRead = (c == 'Y');
|
|
context.index++;
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
break;
|
|
case 'n':
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
var nextTwoDotIndex = context.s.indexOf(":", context.index);
|
|
var nextSlashIndex = context.s.indexOf("/", context.index);
|
|
if (nextTwoDotIndex < 0 || (nextSlashIndex >= 0 && nextTwoDotIndex > nextSlashIndex))
|
|
{
|
|
nextTwoDotIndex = nextSlashIndex;
|
|
}
|
|
if (nextTwoDotIndex < 0)
|
|
{
|
|
context.errorMessage = 'cannot deserialize number value. we expect end ":" or "/" character after index ' + context.index + '.';
|
|
context.errorFound = true;
|
|
return;
|
|
}
|
|
var v = context.s.substring(context.index, nextTwoDotIndex);
|
|
context.valueRead = (v.indexOf('.') >= 0) ? parseFloat(v) : parseInt(v);
|
|
context.index = nextTwoDotIndex + 1;
|
|
break;
|
|
case 'a':
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
readSerializedArray(context);
|
|
if (context.errorFound)
|
|
{
|
|
return;
|
|
}
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
break;
|
|
case 'o':
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
readSerializedObject(context);
|
|
if (context.errorFound)
|
|
{
|
|
return;
|
|
}
|
|
reqContextChar(context, ':', '/');
|
|
context.index++;
|
|
break;
|
|
default:
|
|
context.errorMessage = 'cannot deserialize unknown value. unexpected type prefix ' + vt;
|
|
context.errorFound = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
function readSerializedArray(context)
|
|
{
|
|
var valueRead = new Array();
|
|
var c;
|
|
reqContextChar(context, '(');
|
|
context.index++;
|
|
c = context.s.charAt(context.index);
|
|
if (c == ")")
|
|
{
|
|
context.index++;
|
|
context.valueRead = valueRead;
|
|
return;
|
|
}
|
|
for (;!context.errorFound; context.index++)
|
|
{
|
|
readSerializedValue(context);
|
|
if (context.errorFound)
|
|
{
|
|
return;
|
|
}
|
|
var v = context.valueRead;
|
|
valueRead.push(v);
|
|
c = context.s.charAt(context.index);
|
|
if (c == ")")
|
|
{
|
|
context.index++;
|
|
context.valueRead = valueRead;
|
|
return;
|
|
}
|
|
if (c != ",")
|
|
{
|
|
context.errorMessage = 'cannot deserialize array value. we expect "," or ")" character at index ' + context.index + '.';
|
|
context.errorFound = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
function readSerializedObject(context)
|
|
{
|
|
var valueRead = new Object();
|
|
var c;
|
|
reqContextChar(context, '{');
|
|
context.index++;
|
|
c = context.s.charAt(context.index);
|
|
if (c == "}")
|
|
{
|
|
context.index++;
|
|
context.valueRead = valueRead;
|
|
return;
|
|
}
|
|
for (;!context.errorFound; context.index++)
|
|
{
|
|
var nextTwoDotIndex = context.s.indexOf(":", context.index);
|
|
var nextSlashIndex = context.s.indexOf("/", context.index);
|
|
if (nextTwoDotIndex < 0 || (nextSlashIndex >= 0 && nextTwoDotIndex > nextSlashIndex))
|
|
{
|
|
nextTwoDotIndex = nextSlashIndex;
|
|
}
|
|
if (nextTwoDotIndex <= 0)
|
|
{
|
|
context.errorMessage = 'cannot deserialize object property name. we expect ":" or "/" character after index ' + context.index + '.';
|
|
context.errorFound = true;
|
|
return;
|
|
}
|
|
var propName = context.s.substring(context.index, nextTwoDotIndex);
|
|
context.index = nextTwoDotIndex + 1;
|
|
readSerializedValue(context);
|
|
if (context.errorFound)
|
|
{
|
|
return;
|
|
}
|
|
var v = context.valueRead;
|
|
valueRead[propName] = v;
|
|
c = context.s.charAt(context.index);
|
|
if (c == "}")
|
|
{
|
|
context.index++;
|
|
context.valueRead = valueRead;
|
|
return;
|
|
}
|
|
if (c != ",")
|
|
{
|
|
context.errorMessage = 'cannot deserialize object value. we expect "," or "}" character at index ' + context.index + '.';
|
|
context.errorFound = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
function deserializeObject(s)
|
|
{
|
|
// drop CR/LF and spaces if any was entered by user.
|
|
s = replacestr(replacestr(replacestr(s, "\n", ''), "\r", ''), ' ', '');
|
|
var context = { s: s, index: 0, errorFound: false, errorMessage: '', valueRead: null };
|
|
readSerializedObject(context);
|
|
if (context.errorFound)
|
|
{
|
|
alert(context.errorMessage);
|
|
return null;
|
|
}
|
|
return context.valueRead;
|
|
}
|
|
|
|
function deserializeArray(s)
|
|
{
|
|
// drop CR/LF if any was entered by user.
|
|
s = replacestr(replacestr(s, "\n", ''), "\r", '');
|
|
var context = { s: s, index: 0, errorFound: false, errorMessage: '', valueRead: null };
|
|
readSerializedArray(context);
|
|
if (context.errorFound)
|
|
{
|
|
alert(context.errorMessage);
|
|
return null;
|
|
}
|
|
return context.valueRead;
|
|
}
|
|
|
|
function createVirtualSet(name, caption, count, sitems)
|
|
{
|
|
var level = 0;
|
|
var items = sitems.split('/');
|
|
for (var i in items)
|
|
{
|
|
var item = getObjectById(items[i]);
|
|
if (item == null) continue;
|
|
item.setlink = { name: name };
|
|
if (!('baseitem' in item) && ('required' in item) && ('level' in item.required) && (item.required.level > level))
|
|
{
|
|
level = item.required.level;
|
|
}
|
|
}
|
|
var details = {};
|
|
// details[name + count] = { id: name + count, required: { itemscount: count }};
|
|
var o = {id: name, virtual: true, caption: caption, count: count, required: { level: level }, details: details };
|
|
dressSets[name] = o;
|
|
}
|
|
|
|
function createVirtualSets()
|
|
{
|
|
createVirtualSet('newbie', 'Êîìïëåêò Ó÷åíèêà', 12, 'clip86/amulet90/staff1/roba17/belt40/ring123/whelmet4/gloves1/boots210/braslet26');
|
|
createVirtualSet('green', 'Çåë¸íûé Êîìïëåêò', 12, 'clip87/amulet91/staff2/roba18/belt41/ring124/whelmet5/gloves2/boots211/braslet28');
|
|
createVirtualSet('seeker', 'Êîìïëåêò Èùóùåãî', 12, 'clip88/amulet92/staff3/roba19/belt42/ring125/whelmet6/gloves3/boots212/braslet29');
|
|
|
|
}
|
|
|
|
var catRunes={
|
|
earrings: {
|
|
lv4: ['rune_0_0_1', 'rune_0_1_1', 'rune_0_2_1', 'rune_0_3_1'
|
|
], lv7: ['rune_1_0_1', 'rune_1_1_1', 'rune_1_2_1', 'rune_1_3_1'
|
|
], lv9: ['rune_2_0_1', 'rune_2_1_10', 'rune_2_2_1', 'rune_2_3_1'] },
|
|
necklaces: {
|
|
lv4: ['rune_0_0_2', 'rune_0_1_2', 'rune_0_2_2', 'rune_0_3_2'
|
|
], lv7: ['rune_1_0_2', 'rune_1_1_2', 'rune_1_2_2', 'rune_1_3_2'
|
|
], lv9: ['rune_2_0_2', 'rune_2_1_1', 'rune_2_2_2', 'rune_2_3_2'] },
|
|
rings: {
|
|
lv4: ['rune_0_0_3', 'rune_0_1_3', 'rune_0_2_3', 'rune_0_3_3'
|
|
], lv7: ['rune_1_0_3', 'rune_1_1_3', 'rune_1_2_3', 'rune_1_3_3'
|
|
], lv9: ['rune_2_0_3', 'rune_2_1_2', 'rune_2_2_3', 'rune_2_3_3'] },
|
|
gauntlets: {
|
|
lv4: ['rune_0_0_4', 'rune_0_1_4', 'rune_0_2_4', 'rune_0_3_4'
|
|
], lv7: ['rune_1_0_4', 'rune_1_1_4', 'rune_1_2_4', 'rune_1_3_4'
|
|
], lv9: ['rune_2_0_4', 'rune_2_1_3', 'rune_2_2_4', 'rune_2_3_4'] },
|
|
pants: {
|
|
lv4: ['rune_0_0_5', 'rune_0_1_5', 'rune_0_2_5', 'rune_0_3_5'
|
|
], lv7: ['rune_1_0_5', 'rune_1_1_5', 'rune_1_2_5', 'rune_1_3_5'
|
|
], lv9: ['rune_2_0_5', 'rune_2_1_4', 'rune_2_2_5', 'rune_2_3_5'] },
|
|
boots: {
|
|
lv4: ['rune_0_0_6', 'rune_0_1_6', 'rune_0_2_6', 'rune_0_3_6'
|
|
], lv7: ['rune_1_0_6', 'rune_1_1_6', 'rune_1_2_6', 'rune_1_3_6'
|
|
], lv9: ['rune_2_0_6', 'rune_2_1_5', 'rune_2_2_6', 'rune_2_3_6'] },
|
|
helmets: {
|
|
lv4: ['rune_0_0_7', 'rune_0_1_7', 'rune_0_2_7', 'rune_0_3_7'
|
|
], lv7: ['rune_1_0_7', 'rune_1_1_7', 'rune_1_2_7', 'rune_1_3_7'
|
|
], lv9: ['rune_2_0_7', 'rune_2_1_6', 'rune_2_2_7', 'rune_2_3_7'] },
|
|
bracelets: {
|
|
lv4: ['rune_0_0_8', 'rune_0_1_8', 'rune_0_2_8', 'rune_0_3_8'
|
|
], lv7: ['rune_1_0_8', 'rune_1_1_8', 'rune_1_2_8', 'rune_1_3_8'
|
|
], lv9: ['rune_2_0_8', 'rune_2_1_7', 'rune_2_2_8', 'rune_2_3_8'] },
|
|
heavyarmors: {
|
|
lv4: ['rune_0_0_9', 'rune_0_1_9', 'rune_0_2_9', 'rune_0_3_9'
|
|
], lv7: ['rune_1_0_9', 'rune_1_1_9', 'rune_1_2_9', 'rune_1_3_9'
|
|
], lv9: ['rune_2_0_9', 'rune_2_1_8', 'rune_2_2_9', 'rune_2_3_9'] },
|
|
lightarmors: {
|
|
lv4: ['rune_0_0_9', 'rune_0_1_9', 'rune_0_2_9', 'rune_0_3_9'
|
|
], lv7: ['rune_1_0_9', 'rune_1_1_9', 'rune_1_2_9', 'rune_1_3_9'
|
|
], lv9: ['rune_2_0_9', 'rune_2_1_8', 'rune_2_2_9', 'rune_2_3_9'] },
|
|
belts: {
|
|
lv4: ['rune_0_0_10', 'rune_0_1_10', 'rune_0_2_10', 'rune_0_3_10'
|
|
], lv7: ['rune_1_0_10', 'rune_1_1_10', 'rune_1_2_10', 'rune_1_3_10'
|
|
], lv9: ['rune_2_0_10', 'rune_2_1_9', 'rune_2_2_10', 'rune_2_3_10']}};
|
|
|
|
var superRunes=['rune_super_1', 'rune_super_2', 'rune_super_3', 'rune_super_4', 'rune_super_5', 'rune_super_6', 'rune_super_7', 'rune_super_8', 'rune_super_9', 'rune_super_10'];
|