Добро пожаловать на форум, Гость, это ваша панель
  • Страница 1 из 1
  • 1
Как сделать сохранения вещей на 3 смерти?
kica
Дата: Понедельник, 08.04.2013, 09:19 | Сообщение # 1
офлайн

  • Сообщения: 216
  • Награды: 3
  • Замечания:
 
Как сделать сохранения вещей на 3 смерти? Для Respawn , CSDM сервера... Чтобы не было такого что ты купил и тебя через секунду убили и вещь пропала....



Сообщение отредактировал kica - Понедельник, 08.04.2013, 09:20
 
kirill43rus
Дата: Суббота, 01.03.2014, 22:08 | Сообщение # 2
офлайн

  • Сообщения: 10
  • Награды: 0
  • Замечания:
 
опиши подробней свою проблему, чего ты хочешь добиться?
 
Soun:D
Дата: Суббота, 01.03.2014, 23:02 | Сообщение # 3
офлайн

  • Сообщения: 69
  • Награды: 0
  • Замечания:
 
Цитата kirill43rus ()
опиши подробней свою проблему, чего ты хочешь добиться?
по моему все предельно ясно:
В чистом варике предметы исчезают после смерти, но у CSDM серверов смерти постоянные, поэтому предметов постоянно то нет, то они уже исчезли после смерти.
Так вот она спрашивает, как сделать так, чтобы предметы исчезали после трех смертей.
Пример: человек купил клок, умер, умер, умер и только теперь клок исчез и его надо заново покупать. В то время как в обычном моде будет: человек купил клок, умер и клок исчез.



 
SMaster
Дата: Воскресенье, 02.03.2014, 15:06 | Сообщение # 4
офлайн

  • Сообщения: 2189
  • Награды: 46
  • Замечания:
 
Шаг 1.
Объявляем массив в constants.inl
Счетчик смертей игрока.

Код
new arrIsDelItem[33];


Шаг 2.
Обнулим для каждого игрока смерти в war3ft.inl (функция WC3_PlayerInit( idUser ))


Шаг 3.
В war3ft.inl находим public WC3_Death( idVictim, iKiller, iWeaponID, iHeadshot )
Ниже код выпадения вещей и само удаление предметов у игрока.
Добавляем условие и должно работать удаление с выпадением после трех смертей

Код

//Прибавляем одну смерть
  arrIsDelItem[idVictim] += 1;

  //Если смертей у игрока больше или равно 3, сработает удаление и выпадение предметов
  if(arrIsDelItem[idVictim] >= 3)
  {

  ////Выпадение предметов BEGIN {

   if(get_pcvar_num( CVAR_wc3_loot_items ) > 0)
   {
    //Определение какие предметы были у жертвы  
    //Для shopmenu
    new iVictimItemShop1 = bIsItemUserSlot(idVictim,ITEM_SLOT_ONE);
    //Для shopmenu2
    new iVictimItemShop2 = bIsItemUserSlot(idVictim,ITEM_SLOT_TWO);
    //Для shopmenu3
    new iVictimItemShop3 = bIsItemUserSlot(idVictim,ITEM_SLOT_THREE);

    //Проверка на наличие вещей
    new bIsDropItems = fIsDropItems(iVictimItemShop1,iVictimItemShop2,iVictimItemShop3);
    if(bIsDropItems != 0)//Если есть предметы
    {
     if (random_num(0, 100 ) <= get_pcvar_num( CVAR_wc3_loot_items_percent ) )  
     {
      ArrayPushCell(arrIntItemVictimShop1, iVictimItemShop1);
      ArrayPushCell(arrIntItemVictimShop2, iVictimItemShop2);
      ArrayPushCell(arrIntItemVictimShop3,iVictimItemShop3);
      ArrayPushCell(arrIntDrawSpriteItems, idSpriteItems);
      ArrayPushCell(arrIntScaleSpriteItems, 8);

      if (get_pcvar_num( CVAR_wc3_loot_remove ) == 1)
       ArrayPushCell(arrIntLootRemove, get_pcvar_num( CVAR_wc3_loot_stay ));
       

      //Определение цвета вещей
      fColorItems(iVictimItemShop1,iVictimItemShop2,iVictimItemShop3);
      //Создание модели брони
      fCreateItemsClass(idVictim);
      
     }

    }
    else//Если нет предметов
    {
     if(get_pcvar_num( CVAR_wc3_loot_items ) == 2)
     {
      if (random_num(0, 100 ) <= get_pcvar_num( CVAR_wc3_loot_ar_hp_xp_percent ) )  
      {
       ArrayPushCell(arrIntItemVictimShop1, iVictimItemShop1);
       ArrayPushCell(arrIntItemVictimShop2, iVictimItemShop2);
       ArrayPushCell(arrIntItemVictimShop3,iVictimItemShop3);
       ArrayPushCell(arrIntDrawSpriteItems, idSpriteNoItems);
       ArrayPushCell(arrIntScaleSpriteItems, 3);

       if (get_pcvar_num( CVAR_wc3_loot_remove ) == 1)
        ArrayPushCell(arrIntLootRemove, get_pcvar_num( CVAR_wc3_loot_stay ));

       //Определение цвета вещей
       fColorItems(iVictimItemShop1,iVictimItemShop2,iVictimItemShop3);
       //Создание модели брони
       fCreateArXpHpClass(idVictim);

      }
     }
    }
     
    //Звук при выпадении предмета
    //PlayEmitSound(idVictim, szSoundLootItems);
   }

  //Выпадение предметов END }

   ITEM_UserDied( idVictim );

   //Обнуляем счетчик смертей
   arrIsDelItem[idVictim] = 0;
  }


Скрин как должно быть:
Прикрепления: 6337922.png (15.0 Kb) · 4077060.png (52.4 Kb)


Наша группа вконтакте http://vk.com/nano_world_cs

Контакты:
ICQ 607786179
Skype xonahead

 
  • Страница 1 из 1
  • 1
Поиск: