buildwars / gw-templates
《 Guild Wars》构建模板编码/解码器。
1.0.0
2024-06-13 16:04 UTC
Requires
- php: ^8.1
- ext-sodium: *
Requires (Dev)
- phan/phan: ^5.4
- phpmd/phpmd: ^2.15
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.10
README
《 Guild Wars》构建模板编码/解码器
概述
功能
编码和解码《Guild Wars》的技能和装备模板,以及paw·ned²团队构建。
要求
- PHP 8.1+
ext-sodium
或者
- JavaScript
- node.js >= 20
- 一个网络浏览器
文档
PHP:使用 composer 安装
终端
composer require buildwars/gw-templates
composer.json
{ "require": { "php": "^8.1", "buildwars/gw-templates": "^1.0" } }
注意:请检查发布版本的有效性。
JS:使用 npm 安装
终端
npm install @buildwars/gw-templates
package.json
{ "dependencies": { "@buildwars/gw-templates": "^1.0" } }
使用方法
技能模板
编码
$code = (new SkillTemplate)->encode( prof_pri: 7, prof_sec: 1, attributes: [29 => 12, 31 => 3, 35 => 12], skills: [782, 780, 775, 1954, 952, 2356, 1649, 1018], ); // -> base64 skill template
let code = new SkillTemplate().encode( 7, 1, {'29': 12, '31': 3, '35': 12}, [782, 780, 775, 1954, 952, 2356, 1649, 1018], ); // -> base64 skill template
解码
$skills = (new SkillTemplate)->decode('OwFj0xfzITOMMMHMie4O0kxZ6PA');
let skills = new SkillTemplate().decode('OwFj0xfzITOMMMHMie4O0kxZ6PA');
Array
(
[code] => OwFj0xfzITOMMMHMie4O0kxZ6PA
[prof_pri] => 7
[prof_sec] => 1
[attributes] => Array
(
[29] => 12
[31] => 3
[35] => 12
)
[skills] => Array
(
[0] => 782
[1] => 780
[2] => 775
[3] => 1954
[4] => 952
[5] => 2356
[6] => 1649
[7] => 1018
)
)
请注意,解码/编码之间的代码可能不一定匹配。
装备模板
编码
$equipmentTemplate = new EquipmentTemplate; // add iems (will overwrite previous items with same slot id) $equipmentTemplate->addItem( id: 279, color: 0, mods: [190, 204, 329], ); // ... add more items $code = $equipmentTemplate->encode(); // -> base64 equipment template
let equipmentTemplate = new EquipmentTemplate(); // add iems (will overwrite previous items with same slot id) equipmentTemplate.addItem(279, 0, [190, 204, 329]); // ... add more items let code = equipmentTemplate.encode(); // -> base64 equipment template
解码
$equipment = (new EquipmentTemplate)->decode('PkpxFP9FzSqIlpI90MlpIDLfopInVBgpILlLlpIFF');
let equipment = new EquipmentTemplate().decode('PkpxFP9FzSqIlpI90MlpIDLfopInVBgpILlLlpIFF');
注意:返回数组的键是槽位ID(0-6)-它们可能不是连续的或有序的
Array
(
[0] => Array
(
[id] => 279
[slot] => 0
[color] => 9
[mods] => Array
(
[0] => 190
[1] => 204
[2] => 329
)
)
...more items...
)
paw·ned²模板
编码
$pwndTemplate = new PwndTemplate; $pwndTemplate->addBuild( skills: 'OwFj0xfzITOMMMHMie4O0kxZ6PA', equipment: 'PkpxFP9FzSqIlpI90MlpIDLfopInVBgpILlLlpIFF', weaponsets: ['PcZQ8zoRpkC'], player: '<assigned player/hero>', description: "<build name>\r\n<description>", ); // add more builds (up to 12) $pwnd = $pwndTemplate->encode(); // -> pwnd template code
let pwndTemplate = new PwndTemplate(); pwndTemplate.addBuild( 'OwFj0xfzITOMMMHMie4O0kxZ6PA', 'PkpxFP9FzSqIlpI90MlpIDLfopInVBgpILlLlpIFF', ['PcZQ8zoRpkC'], '<assigned player/hero>', '<build name>\r\n<description>', ); // add more builds (up to 12) let pwnd = pwndTemplate.encode(); // -> pwnd template code
解码
paw-ned²模板
pwnd0000?download paw·ned² @ www.gw-tactics.de Copyright numma_cway aka Redeemer
>aOwFj0xfzITOMMMHMie4O0k6PxZpPkpxFP9FzSqIlpI90MlpIDLfopInVBgpILlLlpIFFAAACgJAAMM
SAtIFdvdEEKZOAOj4wiM5MXTMm3cZS9dJOu5BpPkppFFEqtEAFEqncAFEaqmAFEaY7/EEaYRIHeqXjEA
AACAgAATMiAtIFNvUy9TbWl0ZQoZOQNEApwT2zQDmemuhQOIDQEQjoPgp5PCicJCDBR6JzigItw4SQkh
tDIIyMgJHeqXjEPPgpghmZ9phOzriUAACIhAAOMyAtIFBhbml4CgZOQNDAcw9QvAIg5ZjOkAcQOBoRoP
gpZQCikJCXBR6JnrgItw0VQkht3KIywCKHeqXjEQPkpwRNz6TjdMvKSBAABMAAONCAtIEluZXAxCgZOQ
NDAawDSvAIg5ZrAFgZAEBoRoPgpZQCikJCXBR6JnrgItw0VQkht3KIywCKHeqXjEQPkpwRNz6TjdMvKS
BAACMBAAONSAtIEluZXAyCgbOAhkQkGZIfMzdwQM0qqSzJnw7iBoPgpZRCi8JiYBR6JXsgI7wMWQkhtD
LISOALHeqXjELPkZwUP9akeKAACgJAALNiAtIEJpUAoZOAWiQyhMp7INN5I8Y5wJOOZNBpPkpxUP96Xf
q4npI908npIDLropIvV3npIDr7npITFAAACEBAAONyAtIFJlc3RvCgXOAOiAyk8gNtehzWilD56MvYpP
kp5EFEKuEAFEqncAFEaqmAFEaY7/EEaYBIHiKbkILPkZAIP9akeKAACgBAAKOCAtIFNUCgYOABCY4xEA
glAj4ngdQVFAQZAoPgpxlne9rPVaYKSPNvMFJYJRmiEKtATRGW7ipI7AAAAAABgNSAtIE1vUApzZWNvb
mRhcnkgcHJvZmVzc2lvbiBhbmQgZWxpdGUgc2tpbGwgYXJlIGZyZWUsIGJhcmJzIGlzIG9wdGlvbmFsY
OgNDwcjvOkk6hWEqtp9H0iaBpPkpBUPbTkiqwmpI900mpIDLbipIvSvmpIDrzmpINBAAADAAgAAMNyAt
IEUvTW8K<
$team = (new PwndTemplate)->decode($pwnd);
let team = new PwndTemplate().decode(pwnd);
Array
(
[0] => Array
(
[skills] => OwFj0xfzITOMMMHMie4O0k6PxZ
[equipment] => PkpxFP9FzSqAA5AAJBAZBApBAJ
[weaponsets] => Array
(
[0] =>
[1] =>
[2] =>
)
[player] => Player
[description] => 1 - WotA
)
...more builds...
)
免责声明
自行承担风险!