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

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

本贴由 Димка112015-12-30 发布. 版块名称: PW Вопросник

主题状态:
主题已关闭, 停止回复.
  1. TopicStarter Overlay

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

    帖子:
    234
    支持:
    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;
    }
    Последнее редактирование: 2015-12-30
    已获得deadamagДимка11b3nz1n的支持.
  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 Пользователи

    帖子:
    234
    支持:
    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 Пользователи

    帖子:
    733
    支持:
    374
    性别:
    Репутация:
    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);
    }
    }
    已获得Гадес的支持.
Черновик сохранён Черновик удалён
主题状态:
主题已关闭, 停止回复.

分享此页面