Помогите с JASS
|
|
lawson | Дата: Понедельник, 03 Января 2011, 21:58:36 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| В общем дела в чем я хочу как видно в тригерречто при n = определенному числу давался герою определенный предмет но проблема в том что как только функция снова прослушиваеться то переменная n снова приходит в ихсходное положение а мне надо что она оставалась измененной(тоесть если функция останавливаеться где n = 2 то при последующем прослушивании оно начнет отсчет с n = 2) Ну что поможите заранее спасибою и еще с переменными типа udg_ тоже не работает или я чтото не так делаю. Code function Trig_JassItems_Conditions takes nothing returns boolean return (GetPlayerController(GetOwningPlayer(GetTriggerUnit())) == MAP_CONTROL_COMPUTER ) endfunction
function Trig_JassItems_Actions takes nothing returns nothing local unit u = GetTriggerUnit() local integer gold = GetPlayerState(GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD) local integer n = 1 if (n == 1 ) and (gold >= 1500)then set n = n + 1 call UnitAddItemByIdSwapped('I00M', u) call SetPlayerState(GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD, (gold - 1500)) endif call PolledWait(0.4) if (n == 2) and (gold >= 500 )then set n = n +1 call UnitAddItemByIdSwapped('brac', u) call SetPlayerState(GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD, (gold - 500)) endif call PolledWait( .5 ) if (n == 3) and (gold >= 2400) then set n = n +1 call UnitAddItemByIdSwapped('I00G', u) call SetPlayerState(GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD, (gold - 2400)) endif call PolledWait( .7 ) if (n == 4) and (gold >= 2100) then set n = n +1 call UnitAddItemByIdSwapped('ward', u) call SetPlayerState(GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD, (gold - 2100)) endif call PolledWait( .9 ) if (n == 5) and (gold >= 500) then set n = 0 call UnitAddItemByIdSwapped('I00T', u) call SetPlayerState(GetOwningPlayer(u), PLAYER_STATE_RESOURCE_GOLD, (gold - 500)) endif endfunction
//=========================================================================== function InitTrig_JassItems takes nothing returns nothing local trigger tr = CreateTrigger() call TriggerRegisterEnterRectSimple(tr, gg_rct_BotRegenSent ) call TriggerAddCondition(tr, Condition( function Trig_JassItems_Conditions ) ) call TriggerAddAction(tr, function Trig_JassItems_Actions ) endfunction
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
rixt7956 | Дата: Понедельник, 03 Января 2011, 22:08:55 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Quote (lawson) проблема в том что как только функция снова прослушиваеться то переменная n снова приходит в ихсходное положение а мне надо что она оставалась измененной(тоесть если функция останавливаеться где n = 2 то при последующем прослушивании оно начнет отсчет с n = 2) Quote (lawson) с переменными типа udg_
|
|
|
|
lawson | Дата: Понедельник, 03 Января 2011, 22:13:46 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Тогда обхясните пожалуйста а то я сегодня сума уже сошел. Добавлено (03-01-2011, 22:13) --------------------------------------------- Я сделал с udg_ так number(переменная) = 1 local integer n = udg_number set n = n + 1 или как еще? Как только бот чтото покупает я вывожу number и он всегда равняеться 1!
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
rixt7956 | Дата: Понедельник, 03 Января 2011, 22:14:11 | Сообщение # 4 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| lawson, Чего тебе объяснять?Ты же при запуске функции присваиваешь исходное значениеQuote (lawson) local integer n = 1 И тем более ты используешь локальные переменные, а при каждом запуске функции они всегда создаються новые.
|
|
|
|
lawson | Дата: Понедельник, 03 Января 2011, 22:30:54 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| я заню что сам себе рою яму тем что создаю local integer это я все уже понял так объясните как сделать чтоб работало! Добавлено (03-01-2011, 22:30) --------------------------------------------- Все разобрался вот я тупица я сделал так local integer n = udg_number set udg_number = 1 if (n == 1) then set udg_number = n + 1 endif Фуу не все только жаль что для каждой функции пидеться обнулять n или создавать новую переменную udg
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
rixt7956 | Дата: Вторник, 04 Января 2011, 00:51:53 | Сообщение # 6 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| real и integer обнулять не надо.
|
|
|
|
FkoFF | Дата: Вторник, 04 Января 2011, 02:28:23 | Сообщение # 7 |
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
| Ох май факин, что за индусский код? Обезьянка из зоопарка и та лучше напишет, поднатаскавшись за недельку..; За одни только полледвейты уже можно казнить. Я уж не говорю о том что там какая то анархия творится...
|
|
|
|
FrozenMaster | Дата: Вторник, 04 Января 2011, 15:56:17 | Сообщение # 8 |
3 уровень
Группа: Пользователи
Сообщений: 69
Награды: 0
Репутация: 11
Блокировки:
| Зачем вы завели меня в эту тему?? Я не шарю в JASS.
Давайте вместе поржём над минусом некого sumert'a в моей репутации!
|
|
|
|
lawson | Дата: Вторник, 04 Января 2011, 16:12:09 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Ох май факин, что за индусский код? Слыш у меня что в инфе написано профессор по програмированию в JASS ? если можешь помочь по оптимизации то помоги а если всякую чушь гониш тогда иди дуй в дудку!
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|