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

1.5.1 (101) Массовое удаление вещей

Тема в разделе 'PW Вопросник', создана пользователем Димка11, 30 дек 2015.

Статус темы:
Закрыта.
  1. TopicStarter Overlay

    Димка11 Пользователи

    Сообщения:
    231
    Лайки:
    32
    Пол:
    Мужской
    Репутация:
    1
    Страна:
    Russian Federation Russian Federation
    Ребят, как удалить вещь с определенным айди у всех персонажей на сервере?
  2. Deron Old school Пользователи

    Сообщения:
    1.123
    Лайки:
    533
    Пол:
    Мужской
    Репутация:
    4
    В gs.conf впиши нужные ID, при заходе у персонажа вещица исчезнет.
  3. Joslian AngeliCore Программист Пользователи Open Source Contributor

    Сообщения:
    1.051
    Лайки:
    537
    Пол:
    Мужской
    Репутация:
    2
    Если не выйдет штатными способами - обращайся в скайп: byjoslian
  4. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Ну немного праздничного говнокода — удаление предмета со всех щелей.
    В $mysqlconf свои укажи
    http://mmorpg-devs.ru/threads/Функции-управления-данными-персонажа-через-php.18715/
    PHP:
    include("packets.php");
    $deleteitem 1222;
    $mysql mysql_connect($mysqlconf["host"], $mysqlconf["user"], $mysqlconf["password"]);
    $selectdb mysql_select_db($mysqlconf["db"], $mysql);
    $query mysql_query("select * from `users`");
    while (
    $array mysql_fetch_array($query))
    {
       
    $roles GetUserRoles($array['ID']);
     
       if (
    $roles == null) continue;

       foreach (
    $roles as $role)
       {
         
    $data GetRoleData($role['ID']);
         foreach (
    $data['pocket']['items'] as &$value)
           if (
    $value['id'] == $deleteitem)
             
    $value['id'] = 0;
         unset(
    $value);
         foreach (
    $data['equipment']['inv'] as &$value)
           if (
    $value['id'] == $deleteitem)
             
    $value['id'] = 0;
         unset(
    $value);
         foreach (
    $data['storehouse']['items'] as &$value)
           if (
    $value['id'] == $deleteitem)
             
    $value['id'] = 0;
         unset(
    $value);
         
    PutRoleData($role['ID'], $data);
       }
    }

    function 
    GetUserRoles($userid)
    {
       
    $GetUserRoles = new WritePacket();
       
    $GetUserRoles -> WriteUInt32(-1);
       
    $GetUserRoles -> WriteUInt32($userid);
       
    $GetUserRoles -> Pack(0xD49);
     
       if (!
    $GetUserRoles -> Send($host$port))
         return -
    1;
     
       
    $GetUserRoles_Re = new ReadPacket($GetUserRoles);
       
    $GetUserRoles_Re -> ReadPacketInfo();
       
    $GetUserRoles_Re -> ReadUInt32();
       
    $GetUserRoles_Re -> ReadUInt32();
       
    $rolescount $GetUserRoles_Re -> ReadCUInt32();
       for (
    $i 0$i $rolescount$i++)
       {
         
    $role['ID'] = $GetUserRoles_Re -> ReadUInt32();
         
    $role['Name'] = $GetUserRoles_Re -> ReadUString();
         
    $roles[] = $role;
       }
       return 
    $roles;
    }
    Последнее редактирование: 30 дек 2015
    deadamag, Димка11 и b3nz1n нравится это.
  5. Гадес ОРБИТАЛЬНЫЙ ПОДЖИГАТЕЛЬ Old school Пользователи Ты здесь Господи? Это я, Дин Винчестер

    Сообщения:
    544
    Лайки:
    354
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    DeBalance Art Team
    Страна:
    Russian Federation Russian Federation
    Вот еще говнокодистей
    PHP:

    include("packets.php");
    $arDeleteItems = array(1111222233334444); //для удаления группы предметов
    $arItemsLocs = array(
      array(
    'pocket','items'),
      array(
    'equipment','inv'),
      array(
    'storehouse','items'),
    );
    $mysql mysql_connect($mysqlconf["host"], $mysqlconf["user"], $mysqlconf["password"]);
    $selectdb mysql_select_db($mysqlconf["db"], $mysql);
    $query mysql_query("select * from `users`");
    while (
    $array mysql_fetch_array($query))
    {
        
    $roles GetUserRoles($array['ID']);
        if (
    $roles == null) continue;

        foreach (
    $roles as $role)
        {
            
    $data GetRoleData($role['ID']);
            foreach(
    $arItemsLocs as $itemLoc){
                foreach (
    $data[$itemLoc[0]][$itemLoc[1]] as &$value){
                    if (
    in_array($value['id'], $arDeleteItems){
                        
    $value['id'] = 0;
                    }
                }
                unset(
    $value);
            }
            
    PutRoleData($role['ID'], $data);
        }
    }
    JonMagon нравится это.
  6. TopicStarter Overlay

    Димка11 Пользователи

    Сообщения:
    231
    Лайки:
    32
    Пол:
    Мужской
    Репутация:
    1
    Страна:
    Russian Federation Russian Federation
    где ID там надо айди шмотки писать, верно?
  7. Гадес ОРБИТАЛЬНЫЙ ПОДЖИГАТЕЛЬ Old school Пользователи Ты здесь Господи? Это я, Дин Винчестер

    Сообщения:
    544
    Лайки:
    354
    Пол:
    Мужской
    Репутация:
    8
    Команда:
    DeBalance Art Team
    Страна:
    Russian Federation Russian Federation
  8. JonMagon Программист Пользователи Open Source Contributor

    Сообщения:
    805
    Лайки:
    809
    Пол:
    Мужской
    Репутация:
    5
    Страна:
    Germany Germany
    Потекла.
  9. Mr.Fleks Модератор Команда форума Модератор Old school Пользователи

    Сообщения:
    722
    Лайки:
    368
    Пол:
    Мужской
    Репутация:
    11
    include("packets.php");
    $arDeleteItems = array(1111, 2222, 3333, 4444); //для удаления группы предметов
    $arItemsLocs = array(
    array('pocket','items'),
    array('equipment','inv'),
    array('storehouse','items'),
    );
    $mysql = mysql_connect($mysqlconf["host"], $mysqlconf["user"], $mysqlconf["password"]);
    $selectdb = mysql_select_db($mysqlconf["db"], $mysql);
    $query = mysql_query("select * from `users`");
    while ($array = mysql_fetch_array($query))
    {
    $roles = GetUserRoles($array['ID']);
    if ($roles == null) continue;

    foreach ($roles as $role)
    {
    $data = GetRoleData($role['ID']);
    foreach($arItemsLocs as $itemLoc){
    foreach ($data[$itemLoc[0]][$itemLoc[1]] as &$value){
    if (in_array($value['id'], $arDeleteItems)){
    $value['id'] = 0;
    }
    }
    unset($value);
    }
    PutRoleData($role['ID'], $data);
    }
    }
    Гадес нравится это.
Черновик сохранён Черновик удалён
Similar Threads
  1. default
    Ответов:
    8
    Просмотров:
    3.384
  2. Flein
    Ответов:
    6
    Просмотров:
    1.282
  3. Drakon4eg
    Ответов:
    5
    Просмотров:
    1.222
  4. DELEST
    Ответов:
    1
    Просмотров:
    1.130
  5. Shaman
    Ответов:
    0
    Просмотров:
    752
Загрузка...
Статус темы:
Закрыта.

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