Сейчас 22:09:53 Воскресенье, 28 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Циклы
Циклы
DreiiДата: Среда, 12 Января 2011, 13:30:45 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Немогу досих пор разобраться с циклами
Code
local unit u=GetManipulatingUnit()
local item i=GetManipulatedItem()
local player p=GetOwningPlayer(u)
if GetItemLevel(i) == 1 then
     set bj_forLoopAIndex = 1
     set bj_forLoopAIndexEnd = 6
     loop  
     exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
         if GetItemLevel(UnitItemInSlot(u,bj_forLoopAIndex-1)) == 1 and UnitItemInSlot(u,bj_forLoopAIndex-1) != i then
          call UnitRemoveItem(u,i)
          call DisplayTextToPlayer(p, 0, 0,"|cFFBF0000Нельзя носить больше одно предмета этого типа|r")
         endif
     set bj_forLoopAIndex = bj_forLoopAIndex + 1
     endloop
     endif

как сделать это цикл нормальным, а не этими BJ

Добавлено (12-01-2011, 13:26)
---------------------------------------------
Вот попробывал сам сделать

Code
local unit u=GetManipulatingUnit()
local item it=GetManipulatedItem()
local player p=GetOwningPlayer(u)
local integer i=o
if GetItemLevel(it) == 1 then
     loop  
     exitwhen i > 6
         if GetItemLevel(UnitItemInSlot(u,i-1)) == 1 and UnitItemInSlot(u,i-1) != it then
          call UnitRemoveItem(u,it)
          call DisplayTextToPlayer(p, 0, 0,"|cFFBF0000Нельзя носить больше одно предмета этого типа|r")
         endif
     set i=i+1
     endloop
     endif

правильно?

Добавлено (12-01-2011, 13:30)
---------------------------------------------
все всем спасибо работает ^^


 

Manko_OДата: Среда, 12 Января 2011, 13:33:18 | Сообщение # 2
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
Code
local integer i
loop
  exitwhen i знак значение
//действия
set i = i +1
endloop
 

DreiiДата: Среда, 12 Января 2011, 13:35:03 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Manko_O, а нужно i устанавливать как 0 или не?

 

Manko_OДата: Среда, 12 Января 2011, 13:36:00 | Сообщение # 4
7 уровень
Группа: Проверенные
Сообщений: 296
Награды: 0
Репутация: 23
Блокировки:
Dreii,
Не. Он автоматом 0 создаётся.
 

DreiiДата: Среда, 12 Января 2011, 13:36:35 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Manko_O, спс)

 

FaionДата: Суббота, 22 Января 2011, 20:55:20 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1894
Награды: 0
Репутация: 430
Блокировки:
Так, чисто на будующее, далеко не во всех языках программирования при инициализации целочисленной переменной (int) она устанавливается = 0.

О нас думают плохо лишь те, кто хуже нас, а те кто лучше нас... Им просто не до нас.
My Project: Nindogatari
MAL
 

FkoFFДата: Суббота, 22 Января 2011, 21:43:52 | Сообщение # 7
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Manko_O, ага, как раз локалке надо дать значение, иначе триггер повиснет еще на экситуэне.

 

romaN-1998Дата: Суббота, 22 Января 2011, 22:18:29 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Manko_O, нет, на GUI по умолчанию 0, а в Jass надо устанавливать
 

lawsonДата: Суббота, 22 Января 2011, 22:35:14 | Сообщение # 9
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Dreii
Вот это да даже я знаю как с циклами работать. Хех


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

DreiiДата: Суббота, 22 Января 2011, 22:35:38 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson, На дату посмотри))Я уже давно научился их юзать

 

lawsonДата: Суббота, 22 Января 2011, 22:37:33 | Сообщение # 11
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Dreii
Ого. Только сейчас об этом вопросе вспомнили?


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

DreiiДата: Суббота, 22 Января 2011, 22:38:03 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
lawson, да хз,но очень хороший человек все мне разъяснил)

 

lawsonДата: Суббота, 22 Января 2011, 22:40:31 | Сообщение # 13
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Да ладно так и понимать нечего. Я тоже не понимал посмотрел как сделал Ajacio и понял все.

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

DreiiДата: Суббота, 22 Января 2011, 22:48:13 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Лан раз уж поднялась тема то,
Code
local integer i=0
local player pg=Player(5)
loop
exitwhen i>=3
call CreateUnit(pg,'h000',GetRectCenterX(gg_rct_MIDGood),GetRectCenterY(gg_rct_MIDGood),bj_UNIT_FACING)
set i=i+1
endloop
set i=0  

вот вопрос таких циклов в етом триггере будет 3,нужно ли полсе каждого обнулять i?




Сообщение отредактировал Dreii - Суббота, 22 Января 2011, 22:49:37
 

lawsonДата: Суббота, 22 Января 2011, 22:49:46 | Сообщение # 15
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
Да вроде нет
обнулять в самом конце функции.


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

rixt7956Дата: Суббота, 22 Января 2011, 23:01:10 | Сообщение # 16
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
Dreii, да, нужно
 

DreiiДата: Суббота, 22 Января 2011, 23:01:27 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
rixt7956, я так и думал,спасибо)

 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Циклы
  • Страница 1 из 1
  • 1
Поиск:

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