Функции
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 02:14:12 | Сообщение # 1 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Несколько вопросов по функциям: 1)Если я создаю цикл от 10 до 1 что будет?Он просто пойдёт в обратном порядке? 2)Если цикл от 1 до Х ,а в цикле Х=Х+1 то будет крит? 3)Если я использую случайное число,то бишь Х=случайное число между 1 и Y,где Y кол-во играющих игроков.Так вот,если Y равен 1,то будет случайное число между 1 и 1 значит по любому будет 1?
|
|
|
|
Banzay89 | Дата: Понедельник, 22 Августа 2011, 02:54:57 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| SunCreep, цикл не обязательно должен начинаться с 1. если зделать так Code local integer i=10 loop exitwhen i==0 // // set i=i-1 endloop то все будет прекрасно работать. пойми саму суть цикла 2) крит будет только если цикл бесконечный 3) представь себе, да
|
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 03:08:43 | Сообщение # 3 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Banzay89, нет,как выглядит цикл на jass`е я представляю,но на GuI он сможет сам определить?Или нужно использовать дополнительную пере переменную вместо А? Quote (Banzay89) крит будет только если цикл бесконечный В данном случае бесконечный,стало быть крит.
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 13:42:11 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SunCreep) 2)Если цикл от 1 до Х ,а в цикле Х=Х+1 то будет крит? Не будет крита просто процессор сам остановит цикл после заполнения памяти. Будет это выглядить так, сначала игра на секунду остановится(глюк) а потом снова будет все нормально но цикл дальше не будет выполняться. Добавлено (22 Август 2011, 13:41:01) --------------------------------------------- Quote (SunCreep) 3)Если я использую случайное число,то бишь Х=случайное число между 1 и Y,где Y кол-во играющих игроков.Так вот,если Y равен 1,то будет случайное число между 1 и 1 значит по любому будет 1? Хехехе железная логика.
Добавлено (22 Август 2011, 13:42:11) --------------------------------------------- Quote (SunCreep) 1)Если я создаю цикл от 10 до 1 что будет?Он просто пойдёт в обратном порядке? нет о не будет в обратном порядке идти если только ты не будешь в цикле уменьшать 10 - 1 -> 1, так как и со вторым вариантом проц его просто остановит.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Понедельник, 22 Августа 2011, 17:04:30 |
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 14:13:55 | Сообщение # 5 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Quote (lawson) Хехехе железная логика. я это спрашивал,т.к. хотел сделать так,чтоб дуэли не проходили между ливнувшими игроками,но это ещё предстоит хорошенько обдумать.
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 14:21:10 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SunCreep) чтоб дуэли не проходили между ливнувшими игроками При выборе рандомом игрока сделай условие что этот игрок находится в игре.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 14:35:16 | Сообщение # 7 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| lawson, у меня есть переменная со всеми героями,я устанавливаю Х как случайное число и двигаю Hero[X] Разве там можно вставить что-то подобное?
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 14:42:32 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (SunCreep) и двигаю Hero[X] Я это имею ввиду проверяй что игрок играет. Если игрок Hero[X] = играет то ДВИГАТЬ ЕГО иначе установить другое значение для X
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Понедельник, 22 Августа 2011, 14:42:47 |
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 14:51:19 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| lawson, хм,я сделал и получил крит. Я так понимаю,что если играет один человек,то цикл будет бесконечным,вот смотри: Я устанавливаю случайные значения,далее сравниваю что бы оба игрока были в игре,но так как я один,это условие ни когда не сработает и постоянно будет идти иначе,а в иначе я поставил перезапустить триггер.
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 14:52:23 | Сообщение # 10 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| SunCreep, Кароче сейчас я тебе сделаю.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 14:56:54 | Сообщение # 11 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| lawson, вот,посмотри: просто если игрок будет один,то условия ни когда не совпадут,ибо для условий требуется два игрока)Добавлено (22 Август 2011, 14:56:54) --------------------------------------------- блин,я же тут всё напутал))
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 14:58:11 | Сообщение # 12 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| SunCreep, Кароче я так понял тебе нужно выделить два рандомных игрока и двигать их юниты в какуето область?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 14:58:53 | Сообщение # 13 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| именно
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 14:59:26 | Сообщение # 14 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Тебе сначала надо будет сравнить сколько вообще игроков играют. Если игрок только один то вообще не выполнять триггер.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 15:03:07 | Сообщение # 15 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Окей,сделал.
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 15:07:49 | Сообщение # 16 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| SunCreep, Ну что работает как надо? Добавлено (22 Август 2011, 15:07:49) --------------------------------------------- Я могу тебе сделать только на жасс так как на гуи в цикле нельзя применять юнитов.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 15:12:31 | Сообщение # 17 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| lawson, ну вот посмотри,и скажи будет оно работать,если будет более одного игрока.Отключение я сделал другим триггером. Code function Trig_First_____________________u_Func004Func007Func001C takes nothing returns boolean if ( not ( udg_X[27] == 2 ) ) then return false endif return true endfunction
function Trig_First_____________________u_Func004Func007C takes nothing returns boolean if ( not ( udg_X[27] == 1 ) ) then return false endif return true endfunction
function Trig_First_____________________u_Func004C takes nothing returns boolean if ( not ( GetPlayerSlotState(GetOwningPlayer(udg_Hero[udg_X[26]])) == PLAYER_SLOT_STATE_PLAYING ) ) then return false endif if ( not ( GetPlayerSlotState(GetOwningPlayer(udg_Hero[udg_X[28]])) == PLAYER_SLOT_STATE_PLAYING ) ) then return false endif return true endfunction
function Trig_First_____________________u_Actions takes nothing returns nothing call DisplayTextToForce( GetPlayersAll(), ( ( udg_Player_Colors[3] + "Íàïîìèíàíèå: " ) + ( udg_Player_Colors[10] + "Äëÿ ïîáåäû íà ïîëå áèòâû äîäæåí îñòàòüñÿ ëèøü îäèí þíèò!" ) ) ) set udg_X[26] = GetRandomInt(1, 4) set udg_X[28] = GetRandomInt(7, 10) if ( Trig_First_____________________u_Func004C() ) then set udg_X[27] = GetRandomInt(1, 2) call DisplayTextToForce( GetPlayersAll(), ( udg_Player_Colors[3] + "Íà÷àëàñü äóýëü ìåæäó:" ) ) call DisplayTextToForce( GetPlayersAll(), ( udg_Player_Colors[3] + ( ( GetHeroProperName(udg_Hero[udg_X[26]]) + ( "(" + ( udg_Player_Colors[GetConvertedPlayerId(GetOwningPlayer(udg_Hero[udg_X[26]]))] + ( GetPlayerName(GetOwningPlayer(udg_Hero[udg_X[26]])) + ( udg_Player_Colors[3] + ( ") è " + ( GetHeroProperName(udg_Hero[udg_X[28]]) + ( "(" + ( udg_Player_Colors[GetConvertedPlayerId(GetOwningPlayer(udg_Hero[udg_X[28]]))] + ( udg_Player_Colors[3] + ")" ) ) ) ) ) ) ) ) ) ) + "" ) ) ) set udg_LocaDuel[1] = GetUnitLoc(udg_Hero[udg_X[26]]) set udg_LocaDuel[2] = GetUnitLoc(udg_Hero[udg_X[28]]) if ( Trig_First_____________________u_Func004Func007C() ) then call SetUnitPositionLoc( udg_Hero[udg_X[26]], GetRectCenter(gg_rct________________020) ) call SetUnitPositionLoc( udg_Hero[udg_X[28]], GetRectCenter(gg_rct________________021) ) call EnableTrigger( gg_trg_Money ) else if ( Trig_First_____________________u_Func004Func007Func001C() ) then call SetUnitPositionLoc( udg_Hero[udg_X[26]], GetRectCenter(gg_rct________________024) ) call SetUnitPositionLoc( udg_Hero[udg_X[28]], GetRectCenter(gg_rct________________025) ) call EnableTrigger( gg_trg_Money_2 ) else endif endif else call ConditionalTriggerExecute( GetTriggeringTrigger() ) endif endfunction
//=========================================================================== function InitTrig_First_____________________u takes nothing returns nothing set gg_trg_First_____________________u = CreateTrigger( ) call DisableTrigger( gg_trg_First_____________________u ) call TriggerRegisterTimerEventPeriodic( gg_trg_First_____________________u, 10.00 ) call TriggerAddAction( gg_trg_First_____________________u, function Trig_First_____________________u_Actions ) endfunction
|
|
|
|
lawson | Дата: Понедельник, 22 Августа 2011, 15:13:26 | Сообщение # 18 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| SunCreep, нее ты че с ума сошел. Такое читать не возможно. Если я тебе сделаю на жасс ты разберешься, там ни чего сложного не будет. Я все объясню. Делать?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Понедельник, 22 Августа 2011, 15:13:37 |
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 15:15:15 | Сообщение # 19 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| lawson, а я ждал такой реакции)) Нет,не надо.Я,конечно,не думаю,что понять будет сложно,но я лучше проведу тест с кем-нить и проверю будет ли работать мой вариант,т.к. он на GuI и,если что,я смогу его исправить.Если же нет,я напишу тебе)) Спасибо,что помог)
|
|
|
|
Banzay89 | Дата: Понедельник, 22 Августа 2011, 16:18:13 | Сообщение # 20 |
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
| SunCreep, ой я немного ошибся. крита в цикле не будет lawson правду написал. просто в моём понятии цикл это не только loop, а вообще последовательность действий от начала до конца, так вот я и ошибся немног, сорри.
|
|
|
|
SunCreep | Дата: Понедельник, 22 Августа 2011, 16:24:15 | Сообщение # 21 |
9 уровень
Группа: Проверенные
Сообщений: 1136
Награды: 0
Репутация: 141
Блокировки:
| Banzay89, ну я просто хотел знать сработает ли это с числами.С юнитами работает))
|
|
|
|