Лидерборд
|
|
FatalBlade | Дата: Пятница, 06 Января 2012, 13:10:58 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Я сделал так, что бы в игре отображалось время игры, то есть сколько времени уже идёт игра. Вот код: Это в ините карты: Code
local integer i = 1 set udg_GameTime = CreateLeaderboard() loop exitwhen i > 9 call LeaderboardSetLabel( udg_GameTime, " Time: " + I2S(R2I(udg_Time[3])) + " : " + I2S(R2I(udg_Time[2])) + " : " + I2S(R2I(udg_Time[1])) ) call PlayerSetLeaderboard(Player(i), udg_GameTime) call LeaderboardDisplay(udg_GameTime, true) set i = i + 1 endloop
А это код работы лидерборда: Code function Trig_Time_Actions takes nothing returns nothing set udg_Time[1] = udg_Time[1] + 1 if udg_Time[1] >= 60.00 then set udg_Time[1] = 0.00 set udg_Time[2] = udg_Time[2] + 1 endif if udg_Time[2] >= 60.00 then set udg_Time[2] = 0.00 set udg_Time[3] = udg_Time[3] + 1 endif call LeaderboardSetLabel( udg_GameTime, " Time: " + I2S(R2I(udg_Time[3])) + " : " + I2S(R2I(udg_Time[2])) + " : " + I2S(R2I(udg_Time[1])) )
//=========================================================================== function InitTrig_Magic_Up takes nothing returns nothing set gg_trg_Time = CreateTrigger() call TriggerRegisterTimerEvent( gg_trg_Time, 1.00, true ) call TriggerAddAction( gg_trg_Time, function Trig_Time_Actions ) endfunction
В результате отображается время данной игры. Но, отображается оно не так как должно отображаться время. Например 00:01:08, он будет показывать вот так 0:1:8. Как сделать так, что если значение одного из 3-х параметров (часы, минуты, секунды), меньше 10, то к ним слева приписывался 0. Например 01,06,09... но не 010, а 10, потому что это двухзначное число.
|
|
|
|
Diabfall | Дата: Пятница, 06 Января 2012, 13:27:26 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| Как вариант. Code local integer i=0 ... loop exitwhen i==3 set i=i+1 if udg_Time[i]<10 then set String[i]="0" else set String[i]="" endif endloop call LeaderboardSetLabel( udg_GameTime, " Time: "+ String[3] + I2S(R2I(udg_Time[3])) + " : " + String[2] + I2S(R2I(udg_Time[2])) + " : " + String[1] + I2S(R2I(udg_Time[1])) )
Сообщение отредактировал Diabfall - Пятница, 06 Января 2012, 13:52:15 |
|
|
|
Borodach | Дата: Пятница, 06 Января 2012, 13:29:00 | Сообщение # 3 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Сделай больше чисел. Если тайм[1]>9 то установить тайм[2]+1 и тайм[1]=0 если тайм[2]>=6 то установить тайм[2]=0
Karamba
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 14:31:33 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| FatalBlade, зачем реал для времени? Инт сойдет. Вот как у меня, на метод не обращай внимания: Code public method SelectTime takes nothing returns nothing set this.seconds = this.seconds + 1 if (this.seconds > 59) then set this.seconds = 0 set this.minutes = this.minutes + 1 endif if (this.seconds < 10) then call MultiboardSetTitleText(this.mb, I2S(this.minutes) + ":" + "0" + I2S(this.seconds) + " " + "WASAI 1.1 Board") else call MultiboardSetTitleText(this.mb, I2S(this.minutes) + ":" + I2S(this.seconds) + " " + "WASAI 1.1 Board") endif endmethod Секунды чекаются через другой внешний периодический триггер дающий игроками золото.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 06 Января 2012, 14:35:33 |
|
|
|
FatalBlade | Дата: Пятница, 06 Января 2012, 14:52:12 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (lawson) Секунды чекаются через другой внешний периодический триггер дающий игроками золото. ? У меня не как в Доте. У меня золото даётся за убийство мобов (по формуле зависящей от уровня убитого) и периодически каждые 3 минуты по сложной формуле зависящей от количества Очков Репутации. Короче если игрок стоит в городе и курит, то золото ему вообще не светит.
Время я сделал так, для красоты))
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 14:56:22 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (FatalBlade) У меня не как в Доте. ОКазывает пувер ругает за оффтоп:
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 06 Января 2012, 14:56:35 |
|
|
|
FatalBlade | Дата: Пятница, 06 Января 2012, 14:59:04 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
|
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 14:59:52 | Сообщение # 8 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
|
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Пятница, 06 Января 2012, 15:00:12 |
|
|
|
Diabfall | Дата: Пятница, 06 Января 2012, 16:21:01 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| FatalBlade, Code function Trig_Time_Actions takes nothing returns nothing local integer i=0 local string s set udg_Time[1] = udg_Time[1] + 1 if udg_Time[1] >= 60.00 then set udg_Time[1] = 0.00 set udg_Time[2] = udg_Time[2] + 1 endif if udg_Time[2] >= 60.00 then set udg_Time[2] = 0.00 set udg_Time[3] = udg_Time[3] + 1 endif loop exitwhen i==3 set i=i+1 if udg_Time[i]<10 then set s[i]="0" else set s[i]="" endif endloop call LeaderboardSetLabel( udg_GameTime, " Time: "+ s[3] + I2S(R2I(udg_Time[3])) + " : " + s[2] + I2S(R2I(udg_Time[2])) + " : " + s[1] + I2S(R2I(udg_Time[1])) ) endfunction
//=========================================================================== function InitTrig_Magic_Up takes nothing returns nothing set gg_trg_Time = CreateTrigger() call TriggerRegisterTimerEvent( gg_trg_Time, 1.00, true ) call TriggerAddAction( gg_trg_Time, function Trig_Time_Actions ) endfunction
Он хочет признание Фрога.
|
|
|
|
tRu^S | Дата: Пятница, 06 Января 2012, 16:27:21 | Сообщение # 10 |
8 уровень
Группа: Проверенные
Сообщений: 614
Награды: 0
Репутация: 138
Блокировки:
| Quote (Diabfall) Он хочет признание Фрога. xD , это же смысл!
|
|
|
|
lawson | Дата: Пятница, 06 Января 2012, 16:57:18 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Diabfall) Он хочет признание Фрога. Нет спасибо признание этого нуба мне не нужно. Quote (tRu^S) xD , это же смысл! Как всегда ни очем.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
SirNikolas | Дата: Пятница, 06 Января 2012, 16:59:56 | Сообщение # 12 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Diabfall) Code loop exitwhen i==3 set i=i+1 if udg_Time[i]<10 then set s[i]="0" else set s[i]="" endif endloop Цикл в три прохода не есть хорошо.
|
|
|
|
Diabfall | Дата: Пятница, 06 Января 2012, 17:20:02 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
| Quote (SirNikolas) Цикл в три прохода не есть хорошо. Омг. Нашёл таки к чему прицепиться. Кому надо тот распишет без цикла, а мне лень.
|
|
|
|