npm i binaryarray
var BinaryArray = require('binaryarray');
var all_off = BinaryArray.loadFromArray([0,0,0,0,0,0,0,0]);
var all_on = BinaryArray.loadFromArray([1,1,1,1,1,1,1,1]);
- event flag
var BinaryArray = require('binaryarray');
var EVENT_CLEAR = {
TUTORIAL : 0,
QUEST1 : 1,
QUEST2 : 2,
QUEST3 : 3,
QUEST4 : 4,
QUEST5 : 5,
QUEST6 : 6,
LASTBOSS : 7,
}
var EVENT_CLEAR_MAX = Math.max.apply(Math, Object.keys(EVENT_CLEAR).map(function(k){ return EVENT_CLEAR[k] })) + 1;
var ba = new BinaryArray(EVENT_CLEAR_MAX)
ba.bitOn(EVENT_CLEAR.TUTORIAL);
ba.bitOn(EVENT_CLEAR.QUEST1);
ba.bitOn(EVENT_CLEAR.QUEST4);
var save = ba.toArray();
var ba2 = BinaryArray.loadFromArray(save);
console.log(save);
console.log(ba2.toArray());
ba2.bitOn(2);
ba2.bitOn(3);
ba2.bitOff(4);
console.log(ba.toHexString())
console.log(ba2.toHexString())
if(ba.at(EVENT_CLEAR.QUEST4)) console.log("ok")
if(!ba2.at(EVENT_CLEAR.QUEST4)) console.log("ok")
- typescript
import BinaryArray = require('binaryarray')
enum EVENT_CLEAR {
TUTORIAL,
QUEST1,
QUEST2,
QUEST3,
QUEST4,
QUEST5,
QUEST6,
LASTBOSS,
_SIZEOF
}
const ba = new BinaryArray(EVENT_CLEAR._SIZEOF)
ba.bitOn(EVENT_CLEAR.TUTORIAL);
ba.bitOn(EVENT_CLEAR.QUEST1);
ba.bitOn(EVENT_CLEAR.QUEST4);
const save = ba.toArray();
const ba2 = BinaryArray.loadFromArray(save);
console.log(save);
console.log(ba2.toArray());
ba2.bitOn(2);
ba2.bitOn(3);
ba2.bitOff(4);
console.log(ba.toHexString())
console.log(ba2.toHexString())
if(ba.at(EVENT_CLEAR.QUEST4)) console.log("ok")
if(!ba2.at(EVENT_CLEAR.QUEST4)) console.log("ok")
- job category
"use strict"
const BinaryArray = require("binaryarray")
const JOB = Object.freeze({
NONE : 0,
FIGHTER : 1,
MAGE : 2,
PRIEST : 3,
MONK : 4,
KNIGHT : 5,
SUMMONER : 6,
});
const JOB_MAX = Math.max.apply(Math, Object.keys(JOB).map(k => JOB[k] )) + 1;
let JOB_GROUP = {
TANK : BinaryArray.deserialize([
'FIGHTER',
'MONK',
'KNIGHT'
], JOB, JOB_MAX),
CASTER : BinaryArray.deserialize([
'MAGE',
'PRIEST',
'SUMMONER'
], JOB, JOB_MAX),
HEALER : BinaryArray.deserialize([
'PRIEST'
], JOB, JOB_MAX),
EXJOB : BinaryArray.deserialize([
'SUMMONER',
'KNIGHT'
], JOB, JOB_MAX),
}
let job_id = JOB.FIGHTER;
if( JOB_GROUP.TANK.at(job_id) ){
console.log("tank job")
}else{
console.log("not tank job")
}