Sleaseauras - это мощная и гибкая структура для World of Warcraft, которая позволяет вам отображать очень настраиваемую графику на вашем экране, чтобы указать баффы, дебаффы и целый ряд аналогичных типов информации. Первоначально он предназначался для того, чтобы стать легкой заменой для Auras Power, но теперь он включает в себя множество функций, которые не имеют Auras, оставаясь более эффективными и простыми в использовании.
Созданные ауры могут быть экспортированы и разделены по всей сети. Но есть улов: все, что вы получаете, - это кодированная строка, которая используется для импорта в аддоне Sleaseauras. Эта кодированная строка может содержать пользовательский код, который, возможно, должен разрушить ваш игровой опыт, красть золото у вашего персонажа, спамить других игроков и т. Д.
Декодер Sleedauras - это класс PHP, который дает вам возможность преобразовать эти строки обратно в читаемом формате человека. Это в основном порт кода Lua Sleaseauras, который делает буквально одинаково.
Требуется этот пакет с композитором, в корневом каталоге вашего проекта:
$ composer require softcreatr/weakauras-decoderДекодирует закодированную строку Sleaseauras в массив.
<?php
require " vendor/autoload.php " ;
use SoftCreatR WeakAuras Decoder ;
// Encoded WeakAuras string
$ encoded = ' d0JPcaGAjrTlPQETKQoTspMsnxvmBsomvDtPITPG(Mc8xPq7KuyVODtL9lj5NsLgMqzCsbxwvdvurdwsLHtQ6GcXPev4ykY5i ' .
' LwOKqxxWIfvLLlYdfvXtjwgPYZLyIIQ0uHAYumDWIKsnkjbptH8ojr2Ou0xfQ2SIA7IsFwLMLOsnnPkFxkzKsknwrLmArX4LK ' .
' 6KskUfPORjKoVc1Hevv3Ms(nK5eXu8etGsHIU(r7prXIIHIHykMTOx5hJ)Qbk1(kfQQ6IJskt(P4THn7Jt79(PoiZtn0CkgfV ' .
' nSixHykfWNaIPuqbNHsno4tZE7)eXy66kN4VV(iHKVC68M1FeuWzkN8GA1bHw3Tp6EPyqnwqbNH5JaL1TaXumOgTdfazXksXo ' .
' uaKfLCQ8JfuWzAUQVcTRXbFA2B)NteJPRRCoXFF9rcjF5C68M1Fock4mLZjUh(uEti99r3B7C3wAMR25OseiqXSLkhC2WM9P4 ' .
' vkkRHsTVsHQQU4OKYqP1AGmSzdJInkAmTt6AyymTd0QJZA2BafiT37NiMsjdQvxhLsguRUUi2WM9jqXfSWP9E)uHAmrjZV3ma ' .
' BoCq0OJ02BymT6MgeD0qoRzpTuuiVHykGx9oqhXuSckyjMabkGx9oGykwbfSetGafZopV2bfmMykwbfSetGaLK3(jMIvqblXe ' .
' iqjHupXuSckyjMabk6ZQh8Q3betXkOGLyceOSUBcf0tmfRGcwIjqGYS3gwKJykwbfSetGabkP)UihES(Nc8vdeOKLAm1t3ebs ' ;
// Perform decode
$ decoded = Decoder:: decodeAura ( $ encoded );
// Print the result
var_dump ( $ decoded [ 0 ]);Слиты пользовательские коды LUA в массив.
<?php
require " vendor/autoload.php " ;
use SoftCreatR WeakAuras Decoder ;
// Encoded WeakAuras string
$ encoded = ' d0JPcaGAjrTlPQETKQoTspMsnxvmBsomvDtPITPG(Mc8xPq7KuyVODtL9lj5NsLgMqzCsbxwvdvurdwsLHtQ6GcXPev4ykY5i ' .
' LwOKqxxWIfvLLlYdfvXtjwgPYZLyIIQ0uHAYumDWIKsnkjbptH8ojr2Ou0xfQ2SIA7IsFwLMLOsnnPkFxkzKsknwrLmArX4LK ' .
' 6KskUfPORjKoVc1Hevv3Ms(nK5eXu8etGsHIU(r7prXIIHIHykMTOx5hJ)Qbk1(kfQQ6IJskt(P4THn7Jt79(PoiZtn0CkgfV ' .
' nSixHykfWNaIPuqbNHsno4tZE7)eXy66kN4VV(iHKVC68M1FeuWzkN8GA1bHw3Tp6EPyqnwqbNH5JaL1TaXumOgTdfazXksXo ' .
' uaKfLCQ8JfuWzAUQVcTRXbFA2B)NteJPRRCoXFF9rcjF5C68M1Fock4mLZjUh(uEti99r3B7C3wAMR25OseiqXSLkhC2WM9P4 ' .
' vkkRHsTVsHQQU4OKYqP1AGmSzdJInkAmTt6AyymTd0QJZA2BafiT37NiMsjdQvxhLsguRUUi2WM9jqXfSWP9E)uHAmrjZV3ma ' .
' BoCq0OJ02BymT6MgeD0qoRzpTuuiVHykGx9oqhXuSckyjMabkGx9oGykwbfSetGafZopV2bfmMykwbfSetGaLK3(jMIvqblXe ' .
' iqjHupXuSckyjMabk6ZQh8Q3betXkOGLyceOSUBcf0tmfRGcwIjqGYS3gwKJykwbfSetGabkP)UihES(Nc8vdeOKLAm1t3ebs ' ;
// Perform decode
$ decoded = Decoder:: decodeAura ( $ encoded );
$ decoded = $ decoded [ 0 ];
// "Danger keys" are used to identify custom code
$ dangerKeys = [
' custom ' , ' customDuration ' , ' customName ' ,
' customIcon ' , ' customTexture ' , ' customStacks ' ,
' translateFunc ' , ' alphaFunc ' , ' scaleFunc ' ,
' rotateFunc ' , ' colorFunc ' , ' customText '
];
// Perform some magic
$ luaCodes = [];
foreach ( $ dangerKeys as $ k ) {
$ customizations = Decoder:: dumpLuaCode ( $ decoded , $ k );
foreach ( $ customizations as $ customization ) {
$ customization [ ' value ' ] = trim ( $ customization [ ' value ' ]);
if (! empty ( $ customization [ ' value ' ])) {
$ luaCodes [] = $ customization ;
}
}
}
// Print the result
echo " Decoded string: nn" ;
var_dump ( $ decoded );
echo "nn Custom code (if there is any): nn" ;
var_dump ( $ luaCodes );Бесплатное программное обеспечение, черт возьми, да!