1. 游客, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.5.1 (101) Функции управления данными персонажа через php

本贴由 JonMagon2015-12-23 发布. 版块名称: PW Web

  1. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Позволяет клепать скрипты для редактирования любых данных персонажей как пирожки (код становится в три строчки).
    Внутри комплект: packets.php + packet_class.php

    Пример (выкинуть все монетки у персонажа (id 1024) из банка):
    PHP:
    $data GetRoleData(1024);
    $data['storehouse']['money'] = 0;
    PutRoleData(1024$data);
    Пример (умножить у персонажа количество единиц вещи (id 1222) на 100):
    PHP:
    $data GetRoleData(1024);
    foreach (
    $data['pocket']['items'] as &$value)
        if(
    $value['id'] == 1222)
            
    $value['count'] *= 100;
    PutRoleData(1024$data);
    Achtung!
    Внутри packets.php изменить значения $host и $port на свои.

    Спасибки принимаю на R886298849911 или Z152378827400

    附件文件:

    Последние данные очков репутации:
    int 3: 1 Очко (+) 2015-12-24
    Последнее редактирование: 2015-12-23
    已获得ser_VICE, shadowvzs, werewolf另外9人的支持.
  2. wsok Программист Пользователи

    注册日期:
    2012-11-07
    帖子:
    606
    支持:
    173
    性别:
    Репутация:
    3
    Одно но... в версиях ниже 1.4.2 не будет работать.
    Однако все решит другой пакет там.
    Последние данные очков репутации:
    werewolf: 1 Очко 2016-08-26
  3. salitypw Программист Пользователи

    注册日期:
    2011-09-20
    帖子:
    673
    支持:
    460
    性别:
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    #offtop
    Чем не угодил вариант:
    PHP:
    $data['pocket']['items'][$i]['count'] *= 100;
    :)

    Или вообще можно так сделать:

    PHP:
    $data GetRoleData(1024);

    foreach (
    $data['pocket']['items'] as &$value) {
        if(
    $value['id'] == 1222) {
             
    $value['count'] *= 100;
        }
    }
    // Убираем за собой на случай, если в текущей области видимости идет другой foreach с $value
    unset($value);
    PutRoleData(1024$data); 
    Последние данные очков репутации:
    werewolf: 1 Очко 2016-08-26
    Последнее редактирование: 2015-12-23
    已获得ser_VICEJonMagon的支持.
  4. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Туплю. Поправил.
    Не начинай — я это тяну из дотнета. Там дефолтно for быстрее foreach, в пыхе хз.
    Последнее редактирование: 2015-12-23
  5. salitypw Программист Пользователи

    注册日期:
    2011-09-20
    帖子:
    673
    支持:
    460
    性别:
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    В пыхе foreach быстрее, чем for :) Да и удобнее

    P. S. Вычисление размера массива на каждой итерации не ок) Даже в дотнете)
  6. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Обновил.
  7. LiptoN[Triton] Пользователи

    注册日期:
    2014-06-01
    帖子:
    441
    支持:
    209
    性别:
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    Кхе-кхе, может у меня у одного такое, но не знаю, скорее всего нет.

    $host, $ip в Send() не работают. Он отвечает, что нету конекта, когда заменил на Send("localhost", 29400) - работает.
    已获得JonMagon的支持.
  8. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Там класс убежал.
  9. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Архив перезалит. Поправил то, о чём липтон говорил.
  10. Natsuki Hinata Пользователи

    注册日期:
    2012-06-20
    帖子:
    23
    支持:
    2
    Репутация:
    0
    how to call roleid 1024 ?
    like this??

  11. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    По-моему, я пример написал в первом сообщении темы.
  12. LiptoN[Triton] Пользователи

    注册日期:
    2014-06-01
    帖子:
    441
    支持:
    209
    性别:
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    Не сохраняет персонажей :(
    --- добавлено: 14 июн 2016 в 06:06 ---
    Нашел 0x45A опкод, тоже не сохраняет :о
    Последнее редактирование модератором: 2016-06-22
  13. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Класс для 1.5.1, на старых версиях там может слать. Смотри лог в сервере.
  14. LiptoN[Triton] Пользователи

    注册日期:
    2014-06-01
    帖子:
    441
    支持:
    209
    性别:
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    Сервер и есть 1.5.1
  15. werewolf Old school Пользователи

    注册日期:
    2013-07-05
    帖子:
    507
    支持:
    158
    性别:
    Репутация:
    1
    А можно, используя это, получить id последнего перса в базе? Грубо говоря, посчитать всех персов на всех акках.
  16. TopicStarter Overlay

    JonMagon Программист Пользователи Open Source Contributor

    注册日期:
    2014-08-12
    帖子:
    805
    支持:
    809
    性别:
    Репутация:
    5
    Страна:
    Germany Germany
    Именно этот класс здесь не нужен. http://mmorpg-devs.ru/threads/php-Получение-списка-персонажей.13850/page-2#post-165659 — остаётся только прикрутить переборку айдишников акков из MySQL.
    已获得werewolf的支持.
  17. Nooo Пользователи

    注册日期:
    2010-11-27
    帖子:
    10
    支持:
    1
    性别:
    Репутация:
    0
    а как сделать что бы на 1.5.3 сохраняло?
  18. shadowvzs Пользователи

    注册日期:
    2016-02-05
    帖子:
    57
    支持:
    28
    性别:
    Репутация:
    0
    Страна:
    Romania Romania
    not exist enough like what can tell enough how much nice work Desmond! 1000x like for all php packet work!
  19. Wonderland Пользователи

    注册日期:
    2012-10-04
    帖子:
    10
    支持:
    0
    Репутация:
    0
    Команда:
    Wonderland
    代码:
    info : GameDBServer::OnAddSession, sid=11.
    TRACE : GetRoleData, roleid=1024,sid=11
    info : GameDBServer::OnAddSession, sid=12.
    info : GameDBServer::OnDelSession, sid=11.
    debug : Protocol(type=8002,size=6250) Decode Error.
    info : GameDBServer::OnDelSession, sid=12.
    
    Сервер 1.5.3.
  20. salitypw Программист Пользователи

    注册日期:
    2011-09-20
    帖子:
    673
    支持:
    460
    性别:
    Репутация:
    8
    Команда:
    Easy Game Protection
    Страна:
    Japan Japan
    Вангую, что в 1.5.3 изменилась структура :)
Черновик сохранён Черновик удалён

分享此页面