Сейчас 05:15:33 Пятница, 29 марта, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Личные предметы.. (Сделать уже одетые предметы личными)
Личные предметы..
alloreДата: Понедельник, 24 Июня 2013, 00:31:02 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Блокировки:
Как сделать так, например, берет первый игрок, к примеру Боевые когти, потом этот предмет становится ему не нужным, и он его выбрасывает, а другой игрок захочет его взять, но он не сможет его взять, потому что этот предмет принадлежит Первому игроку, то есть предмет становится личным. Как такое сделать? Помогите

Добавлено (24 Июня 2013, 00:31:02)
---------------------------------------------
Я таки без ответа остался Т.Т


Это подпись!
 

xomachДата: Понедельник, 24 Июня 2013, 06:56:28 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
записываешь на хэндл предмета id игрока наверное)
хэш таблица- записать целое- номер игрока
затем загружаешь и проверяешь


 

Imba_pvLДата: Понедельник, 24 Июня 2013, 11:32:18 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
xomach, net.
allore, сам добавил такое в карту.
Вообщем когда герой поднимает предмет, устанавливаешь особую цену предмета как номер игрока-инициатора
А затем если/то/иначе
если номер игрока-инициатора неравно особой цене предмета
То выбрасываешь предмет, которым манипулируют.


 

xomachДата: Понедельник, 24 Июня 2013, 12:07:15 | Сообщение # 4
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
Imba_pvL, а что через хеш мешает?

Добавлено (24 Июня 2013, 12:07:15)
---------------------------------------------
предмет вроде тоже виджет...


 

Imba_pvLДата: Понедельник, 24 Июня 2013, 12:10:57 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
xomach, можно и так
но зачем лишний хэш, когда можно обойтись 1 событием, 2 условиями, и 2 действиями


 

Ty3uKДата: Понедельник, 24 Июня 2013, 12:47:14 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Imba_pvL, что есть "лишний хэш"?
xomach, в гуи не особо удобно с хэшем работать.


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

alloreДата: Понедельник, 24 Июня 2013, 14:02:17 | Сообщение # 7
1 уровень
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Блокировки:
Я не разбираюсь в хеше, увы, можете сделать мини-нароботку специально длдя меня? Пожаалуйста :)

Это подпись!
 

Imba_pvLДата: Понедельник, 24 Июня 2013, 14:40:18 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
Цитата (Ty3uK)
что есть "лишний хэш"?

Цитата (Ty3uK)
в гуи не особо удобно с хэшем работать.


 

lawsonДата: Понедельник, 24 Июня 2013, 15:15:55 | Сообщение # 9
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Код
library LAB initializer init
          globals          
          public hashtable hash = InitHashtable()
         endglobals

         private struct PlyaerData
          public player Player
                   
          private integer i = 0
          private item array ItemArray
                   
          public method AddItem takes item i returns nothing
           set ItemArray[i] = item
           set i = i + 1
          endmethod
                   
          public method ResearchItem takes item i returns boolean
           local integer i = 0
           loop
           exitwhen i > this.i
            if (ItemArray[i] == i) return true
            set i = i + 1
           endloop
                    
           return false
          endmethod
         endstruct

         public function IsThatMine takes player p, item i returns boolean
          return LoadInteger(hash, GetHandleId(p)).ResearchItem(i)
         endfunction

         public function SelectPlayerItem takes player p, item i returns nothing
          local integer i = 0
          local PlyaerData pd = LoadInteger(hash, GetHandleId(p))
          call pd.AddItem(i)
          call SaveInteger(hash, GetHandleId(Player(i)), pd)
         endfunction

         private function init takes nothing returns nothing
          local integer i = 0
          local PlyaerData pd
          loop
           exitwhen i > 9
           //условие что игрок под номер i играет =>
           set pd = PlyaerData.create()
           set pd.Player = Player(i)
           call SaveInteger(hash, GetHandleId(Player(i)), pd)
           set i = i + 1
          endloop
         endfunction
endlibrary

Вот в принципе и все.
За точность написания функций не ручаюсь т к пишу по памяти - даже забыл как проверить играет ли игрок.


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!


Сообщение отредактировал lawson - Понедельник, 24 Июня 2013, 16:16:43
 

xomachДата: Понедельник, 24 Июня 2013, 15:20:12 | Сообщение # 10
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
А что такое "владелец предмета" в гуи?
lawson, мне кажется, ты ошибся аудиторией :)

П.С. а хэш в гуи-зло <_< . Лучше б не было




Сообщение отредактировал xomach - Понедельник, 24 Июня 2013, 15:20:31
 

lawsonДата: Понедельник, 24 Июня 2013, 15:22:38 | Сообщение # 11
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
^
Цитата (xomach)
А что такое "владелец предмета" в гуи?

Цитата (lawson)
За точность написания функция не ручаюсь т к пишу по памяти

Цитата (lawson)
даже забыл как проверить играет ли игрок

Добавлено (24 Июня 2013, 15:22:38)
---------------------------------------------

Цитата (xomach)
П.С. а хэш в гуи-зло . Лучше б не было

хспади


Nic nie wiem bo mam chuj.
редактирую посты! ВСЕ!
 

xomachДата: Понедельник, 24 Июня 2013, 15:45:44 | Сообщение # 12
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
На гуи, без переменных, 1 триггер
Наработка

Цитата
Лучше б не было

погорячился :)




Сообщение отредактировал xomach - Понедельник, 24 Июня 2013, 15:47:23
 

alloreДата: Понедельник, 24 Июня 2013, 16:20:48 | Сообщение # 13
1 уровень
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Блокировки:
Всем спасибо! Особенно xomach за его нароботку!

Это подпись!
 

НаклзДата: Понедельник, 24 Июня 2013, 19:19:45 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Цитата (Imba_pvL)
xomach, net.
allore, сам добавил такое в карту.
Вообщем когда герой поднимает предмет, устанавливаешь особую цену предмета как номер игрока-инициатора
А затем если/то/иначе
если номер игрока-инициатора неравно особой цене предмета
То выбрасываешь предмет, которым манипулируют.

А если предмет изначально стоит 9 ?


Сообщение отредактировал Наклз - Понедельник, 24 Июня 2013, 19:20:28
 

ExtrematorДата: Понедельник, 24 Июня 2013, 22:22:25 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Можно вот так вот аккуратненько сделать - item.w3x
Предмет будет возвращаться на место
с которого его пытаются подобрать
... а не падать под ноги к тому кто его хотел взять

+ выводится текст-таг над предметом тому игроку, который пытался поднять
 

SlonickДата: Понедельник, 24 Июня 2013, 23:25:23 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 1688
Награды: 0
Репутация: 247
Блокировки:
Extremator, Я так во всяких рпг таскал предметы на высокие уровни, которые пригодятся, в одну кучу

 

ExtrematorДата: Вторник, 25 Июня 2013, 03:23:15 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Цитата (Slonick)
Я так во всяких рпг таскал предметы на высокие уровни, которые пригодятся, в одну кучу
Именно это и можно избежать ))

Когда предмет подбирается в инвентарь, то он не меняет свою "postion of item" / "позиции предмета".
До тех пор пока снова не будет выложен из инвентаря.

И кстати на будущее - с юнитами при вхоже в транспорт происходит тоже самое!
 

БатрудинавДата: Среда, 26 Июня 2013, 07:45:41 | Сообщение # 18
4 уровень
Группа: Проверенные
Сообщений: 86
Награды: 0
Репутация: 6
Блокировки:
Цитата (Наклз)
А если предмет изначально стоит 9 ?

Особой ценой предмета в Казахстане называют Custom Value
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Личные предметы.. (Сделать уже одетые предметы личными)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz