В тасках есть специальная секция с PQ значениями, это переменные работающие на всю локацию. На них построены все эвенты и нормальные данжи. А пример такого чуда есть? Или где про это почитать внимательно?
Захотел "нажал кнопочку" и все померли в локе а что это за переменная?
Если ручным путем - берите GS с ограничением debug для GM, и используйте, если автомат. то разбирайте Aipolicy, там есть телепортация игроков из определенного участка. Оно может и так, но мне надо всех и сразу. Проще кикнуть ;)
да? ну может... я то на гм тестировал :) Тогда этот вариант подходит!! А если без консоли, то нужен скрипт.
10855 против мобов действует... а что за идея с aipolicy ?
Собственно сабж. Как убить персонажей в локации. Не в мире, а в каком-нибудь данже. Или как телепортировать их из локи в другое место.
Плюс к этому в гм панельке не пропадают меню скрытность, неуязвимость и еще что-то. отображаются, но работают ли? Ну прыжки через ктрл точно работают.
А есть ли возможность узнать онлайн ли данный перс? Порыл (3015), но не нашел. Еще интересует инфа по гильдиям. Предполагаю, что рыть надо в направлении 4606, 4607 и 4608, но может подкинете структуру для параметров?
Вот даже как... занятно. А сколько такое чудо стоит? Могу заняться...
о как... даже вещь. Ну с вещью будет беда, ибо передавать надо персу, а голосование происходит на аккаунт. Ну можно указать пользователям, чтобы писали ник персов... тогда можно. Но тогда переделывать малость надо. Если не забуду, завтра вылажу пример. Однако... для отслеживания даты голосования все равно надо в базу хотя бы 1 поле добавить... с мускулом как?
А разве ГМ телепорт не работает на правах 0 ? Пытался эксперементировать напрямую с базой. Удаляешь все 52 права, ставишь rid=0 и гм по ctrl прыгает куда хочешь. Плюс к этому в гм панельке не пропадают меню скрытность, неуязвимость и еще что-то.
Всё получилось :) Как обычно всё гениальное просто :( Спасибо всем великим просветителям!!!
Вы php знаете? только начал. Похож на С, потому более менее понятно, но тонкостей всех не знаю :) ф-ю unpack почитал и логично предположить, что " Nбеззнаковый long (всегда 32 бит, порядок big endian) " По строке отследил... ID начинается с 3го бита. Осталось только правильно распаковать :)
Бррр... как все запущено :) попробую так... --- добавлено: 26 янв 2015 в 16:57 --- пакет уходит и что-то приходит назад. Размер 23 байта. Но данные да - не читаются :) Результат аки Array :(
function PackString($data) { $data = iconv("UTF-8", "UTF-16LE", $data); $datalen = (strlen($data) <= 128) ? pack("C*",strlen($data)) : pack("n*", strlen($data)+32768); return $datalen.$data; } return $datalen.$data; $datelen как бы содержит длину $data
т.е. 2 раза длину аргументов передавать?
т.е. в моем случае будет так ?: function PackString($data) { $data = iconv("UTF-8", "UTF-16LE", $data); $datalen = (strlen($data) <= 128) ? pack("C*",strlen($data)) : pack("n*", strlen($data)+32768); return $datalen.$data; } $data = pack('N', -1)."rolename"; $data = cuint(8001).PackString($data);
а для чего нужен -1 ? По ходу читал мануал, то там содержание пакета имеет вид: CUInt opcode;//opcode-процедуры CUInt length;//количество байт, используемые для аргументов ...//аргументы ф-я PackString возвращает длина текста + текст
тэк-с... функция настолько гадкая, что вешает весь лк намертво. Подскажите нерадивому, что не так впаял: socket_set_block($sock); $data = cuint(8001).PackString('rolename'); $sbytes = socket_send($sock, $data, 8192, 0); $rbytes = socket_recv($sock, $buf, 8192, 0); $result = unpack( "N", substr( $buf, 1, 4 ) ); $userid = unpack( "N", substr( $buf, 5, 4 ) ); $roleid = unpack( "N", substr( $buf, 9, 4 ) ); $level = unpack( "N", substr( $buf, 13, 4 ) ); socket_set_nonblock($sock); socket_close($sock);
ну не перебирать же все акки и персов :( в айвебе вызывается как gs.GetRoleIDbyName(); но т.к. я не дружу с java то мне надо в php. Неужто не знает никто? Хоть намекните в сторону какого опкода копать...
Имена участников (разделяйте запятой).