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

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

Тема в разделе 'PW Web', создана пользователем JonMagon, 23 дек 2015.

  1. TopicStarter Overlay

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    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

    Вложения:

    • packets.zip
      Размер файла:
      3,4 КБ
      Просмотров:
      237
    Последние данные очков репутации:
    int 3: 1 Очко (+) 24 дек 2015
    Последнее редактирование: 23 дек 2015
    shadowvzs, werewolf, Amnesia и 8 другим нравится это.
  2. wsok Программист Пользователи

    Сообщения:
    606
    Лайки:
    173
    Пол:
    Мужской
    Репутация:
    3
    Команда:
    WebServerOK [wsok.net]
    Одно но... в версиях ниже 1.4.2 не будет работать.
    Однако все решит другой пакет там.
    Последние данные очков репутации:
    werewolf: 1 Очко 26 авг 2016
  3. salitypw Программист Пользователи

    Сообщения:
    557
    Лайки:
    367
    Пол:
    Мужской
    Репутация:
    9
    Команда:
    BlooD PW x700
    Страна:
    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 Очко 26 авг 2016
    Последнее редактирование: 23 дек 2015
    JonMagon нравится это.
  4. TopicStarter Overlay

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Туплю. Поправил.
    Не начинай — я это тяну из дотнета. Там дефолтно for быстрее foreach, в пыхе хз.
    Последнее редактирование: 23 дек 2015
  5. salitypw Программист Пользователи

    Сообщения:
    557
    Лайки:
    367
    Пол:
    Мужской
    Репутация:
    9
    Команда:
    BlooD PW x700
    Страна:
    Japan Japan
    В пыхе foreach быстрее, чем for :) Да и удобнее

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

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Обновил.
  7. LiptoN[Triton] Пользователи

    Сообщения:
    441
    Лайки:
    209
    Пол:
    Мужской
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    Кхе-кхе, может у меня у одного такое, но не знаю, скорее всего нет.

    $host, $ip в Send() не работают. Он отвечает, что нету конекта, когда заменил на Send("localhost", 29400) - работает.
    JonMagon нравится это.
  8. TopicStarter Overlay

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Там класс убежал.
  9. TopicStarter Overlay

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Архив перезалит. Поправил то, о чём липтон говорил.
  10. Natsuki Hinata Пользователи

    Сообщения:
    23
    Лайки:
    2
    Репутация:
    0
    how to call roleid 1024 ?
    like this??

  11. TopicStarter Overlay

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    По-моему, я пример написал в первом сообщении темы.
  12. LiptoN[Triton] Пользователи

    Сообщения:
    441
    Лайки:
    209
    Пол:
    Мужской
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    Не сохраняет персонажей :(
    --- добавлено: 14 июн 2016 в 06:06 ---
    Нашел 0x45A опкод, тоже не сохраняет :о
    Последнее редактирование модератором: 22 июн 2016
  13. TopicStarter Overlay

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Класс для 1.5.1, на старых версиях там может слать. Смотри лог в сервере.
  14. LiptoN[Triton] Пользователи

    Сообщения:
    441
    Лайки:
    209
    Пол:
    Мужской
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    Сервер и есть 1.5.1
  15. werewolf Old school Пользователи

    Сообщения:
    503
    Лайки:
    156
    Пол:
    Мужской
    Репутация:
    1
    А можно, используя это, получить id последнего перса в базе? Грубо говоря, посчитать всех персов на всех акках.
  16. TopicStarter Overlay

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

    Сообщения:
    773
    Лайки:
    771
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Именно этот класс здесь не нужен. http://mmorpg-devs.ru/threads/php-Получение-списка-персонажей.13850/page-2#post-165659 — остаётся только прикрутить переборку айдишников акков из MySQL.
    werewolf нравится это.
  17. Nooo Пользователи

    Сообщения:
    10
    Лайки:
    1
    Пол:
    Мужской
    Репутация:
    0
    а как сделать что бы на 1.5.3 сохраняло?
  18. shadowvzs Пользователи

    Сообщения:
    49
    Лайки:
    22
    Пол:
    Мужской
    Репутация:
    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 Пользователи

    Сообщения:
    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 Программист Пользователи

    Сообщения:
    557
    Лайки:
    367
    Пол:
    Мужской
    Репутация:
    9
    Команда:
    BlooD PW x700
    Страна:
    Japan Japan
    Вангую, что в 1.5.3 изменилась структура :)
Черновик сохранён Черновик удалён
Similar Threads
  1. resigned
    Ответов:
    16
    Просмотров:
    4.447
  2. Psycho
    Ответов:
    14
    Просмотров:
    956
  3. raketa
    Ответов:
    32
    Просмотров:
    5.741
  4. Killer-sin
    Ответов:
    6
    Просмотров:
    730
  5. danies
    Ответов:
    7
    Просмотров:
    692
Загрузка...

Поделиться этой страницей