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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: PUVer, SirNikolas, Ty3uK  
[ВАЖНО] Помощь по JASS
[DUОS]Дата: Вторник, 23 Февраля 2010, 20:07:35 | Сообщение # 176
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Code


[code]function Trig_sd_Func001A takes nothing returns nothing
     local unit u = GetEnumUnit()
     local real x = GetUnitX(u) + 80 * Cos(GetUnitFacing(u) * .0174532)
     local real y = GetUnitY(u) + 80 * Sin(GetUnitFacing(u) * .0174532)
     local location loc1 = Location(x,y)
     local location loc2 = Location(GetUnitX(u),GetUnitY(u))
     local real z = GetLocationZ(loc1)
     local real z2 = GetLocationZ(loc2)
     local real z3Rb = z - z2
     local real ms = GetUnitDefaultMoveSpeed(u)
     if IsUnitType(u,UNIT_TYPE_GROUND) == true or IsUnitType(u,UNIT_TYPE_HERO) == true then
         if z3Rb > 30 and z3Rb < 69 then
             call SetUnitMoveSpeed(u,ms * .30)
         elseif z3Rb > 70 and z3Rb < 179 then
             call SetUnitMoveSpeed(u,ms * .10)
         elseif z3Rb > 180 and z3Rb < 999 then
             call SetUnitMoveSpeed(u,0)
         elseif z3Rb >= -15 and z3Rb <= 15 then
             call SetUnitMoveSpeed(u,ms)
         elseif z3Rb < -30 and z3Rb > -69 then
             call SetUnitMoveSpeed(u,ms * 1.5)
         elseif z3Rb < -80 and z3Rb > -999 then
             call SetUnitMoveSpeed(u,ms * 2.00)
         endif
     endif
     call RemoveLocation(loc1)
     call RemoveLocation(loc2)
     set loc1 = null
     set loc2 = null                           
     set u = null
endfunction

function Trig_Hill_Actions takes nothing returns nothing
     local group g = CreateGroup()
     call GroupEnumUnitsInRect(g,GetWorldBounds(),null)
     call ForGroup(g,function Trig_sd_Func001A)
     call GroupClear(g)
     call DestroyGroup(g)
     set g = null
endfunction

//===========================================================================
function InitTrig_Hill takes nothing returns nothing
      set gg_trg_Hill = CreateTrigger()
      call TriggerRegisterTimerEvent(gg_trg_Hill,.20,true)
      call TriggerAddAction(gg_trg_Hill,function Trig_Hill_Actions)
endfunction

Code
function Trig_CameraActions_Actions takes nothing returns nothing
     local real x = GetUnitX(udg_unit)
     local real y = GetUnitY(udg_unit)
     local real a2 = GetUnitFacing(udg_unit)
     local real x2 = x - 400 * Cos(a2 * .0174532)
     local real y2 = y - 400 * Sin(a2 * .0174532)
     local location loc1 = Location(x,y)
     local location loc2 = Location(x2,y2)
     local real z1 = GetLocationZ(loc1)
     local real z2 = GetLocationZ(loc2)
     local real a1 = 350
     local real offset
     if z1 + 100 >= z2 then
         set offset = GetCameraField(CAMERA_FIELD_ZOFFSET) + GetUnitFlyHeight(udg_unit) + 300 + z1 - GetCameraEyePositionZ()
         set a1 = a1 - 15
     else
         set offset = GetCameraField(CAMERA_FIELD_ZOFFSET) + GetUnitFlyHeight(udg_unit) + 250 + z2 - GetCameraEyePositionZ()
         set a1 = a1 - 40
     endif  
     if GetLocalPlayer() == Player(0) then
         call SetCameraField(CAMERA_FIELD_TARGET_DISTANCE,400,0.5)
         call SetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK,a1,0.5)
         call SetCameraField(CAMERA_FIELD_FIELD_OF_VIEW,2200,0.5)
         call SetCameraField(CAMERA_FIELD_ROTATION,a2,0.5)  
         call SetCameraField(CAMERA_FIELD_ZOFFSET,offset,0.5)
     endif
     call RemoveLocation(loc1)    
     call RemoveLocation(loc2)
     set loc1 = null
     set loc2 = null      
endfunction

//===========================================================================
function InitTrig_CameraActions takes nothing returns nothing
       set gg_trg_CameraActions = CreateTrigger()
       call TriggerRegisterTimerEvent(gg_trg_CameraActions,0.05,true)
       call TriggerAddAction(gg_trg_CameraActions,function Trig_CameraActions_Actions)
endfunction

H_A_PK,
Держи))
ЗЫ: Опять что за код О_о... А ну добавляйся ко мне в асю)) Получить можешь в ЛС, когда напишешь.


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

H_A_PKДата: Вторник, 23 Февраля 2010, 21:08:31 | Сообщение # 177
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Мнебы твой ник в скайпе :ОО. в асе сменил пароль и забыл его как черть=(

проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец
 

[DUОS]Дата: Вторник, 23 Февраля 2010, 21:11:11 | Сообщение # 178
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
H_A_PK,
Создай новую асю))


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

H_A_PKДата: Вторник, 23 Февраля 2010, 21:15:33 | Сообщение # 179
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
Quote (|DUОS|)
H_A_PK,
Создай новую асю))

ладно щас зайду О_о жди ))

Добавлено (23-02-2010, 21:15)
---------------------------------------------
фак, ох уж эта миранда:)
обновляется


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец


Сообщение отредактировал H_A_PK - Вторник, 23 Февраля 2010, 21:15:48
 

H_A_PKДата: Вторник, 23 Февраля 2010, 21:32:51 | Сообщение # 180
Быдлокодер
Группа: Проверенные
Сообщений: 2605
Награды: 1
Репутация: 822
Блокировки:
wtf ?
Прикрепления: 2805280.jpg (43.8 Kb)


проклятье ляжет на любого
кто дочитает до конца
нет не дочитывай не надо
остановись ну всё капец


Сообщение отредактировал H_A_PK - Вторник, 23 Февраля 2010, 21:34:50
 

SvyagaДата: Среда, 24 Февраля 2010, 04:30:46 | Сообщение # 181
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
Svyaga, мне так хочется выругаться матом и сказать тебе много нехорошего.

Подрасти сначала. Да и оскорблять кого-либо за то, что он указывает на твои ошибки будет как минимум глупо.
Quote (DoctorGester)
С трудом верится. Иди гуи учить.

Сначала ты дал неработающую систему, потом создаёшь кучу ненужных локальных и говоришь ещё что-то? Вот примеры: "local unit u = GetEnumUnit() ", "local timer tim = CreateTimer() ", "local unit u = GetEventDamageSource() ",
"private hashtable ht = InitHashtable() " а вот это вообще зачем в твоей системе если нигде не используется о_О
"call DamageTarget(u, GetTriggerUnit(), i)
return true
endif
set u = null
return true
endfunction"
А тут тебе надо перед первым return true тоже сделать set u = null. Хотя нет, "u" вообще не вижу смысла использовать, что и указано выше.

Добавлено (24-02-2010, 04:30)
---------------------------------------------
А, вот ещё:
"call GroupClear(gr)
call DestroyGroup(gr) "
Зачем call GroupClear(gr) если всё равно уничтожаешь группу о_О

Сообщение отредактировал Svyaga - Среда, 24 Февраля 2010, 04:44:31
 

DoctorGesterДата: Среда, 24 Февраля 2010, 17:39:33 | Сообщение # 182
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Во первых, разуй глаза, система абсолютно рабочая. Я сделал поправку на пост ниже лол.
Этот кусок вытащен из другой моей системы в которой используется хт и тот созданный таймер, нужно - убери. Ты в курсе что каждый вызов функции требует времени для системы? В моем случае ты предлагаешь вызвать getenumunit несколько раз, что указывает на что ты нешаришь, гораздо проще и удобнее объявить локалку. Насчет группы может и фейл но я лучше перестрахуюсь.
 

SvyagaДата: Среда, 24 Февраля 2010, 20:28:56 | Сообщение # 183
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
Во первых, разуй глаза, система абсолютно рабочая.

Я не говорил что она нерабочая, так что ты разуй глаза.
Quote (DoctorGester)
нужно - убери

Вот:
Code
local timer tim = CreateTimer()
call TimerStart(tim,0.1,true,function a)
set tim = null

Меняем на:
Code
call TimerStart(CreateTimer(),0.1,true,function a))

И тут не "нужно - убери", а ненужное использование локальной, что, хоть и немного, но тормозит систему. Зачем использовать то, что можно и не использовать, при этом делая только лучше?
Quote (DoctorGester)
В моем случае ты предлагаешь вызвать getenumunit несколько раз, что указывает на что ты нешаришь, гораздо проще и удобнее объявить локалку.

Это ты нешаришь. Чем удобнее и проще объявить локалку? Ну ведь же не тем что писать в функциях меньше надо, ибо для каждого юнита сначала создаётся, потом уничтожается локалка, что значит что использование getenumunit быстрее, не говоря о ненужных локалках... о_О
Quote (DoctorGester)
перестрахуюсь

Использование ненужной функции не есть перестрахование.
 

РаЙгАДата: Среда, 24 Февраля 2010, 20:37:27 | Сообщение # 184
8 уровень
Группа: Проверенные
Сообщений: 582
Награды: 0
Репутация: 81
Блокировки:
Всем привет нужна такая вещь под силу лишь очень кру джазэрам... смотрите герой создаёт стену перед собой а 2 кастует спэл волна сил эт пример... ну волна сил наносит урон стене но дальше стены не проходит... очень прошу помочь мне
 

БюллетеньДата: Среда, 24 Февраля 2010, 21:23:52 | Сообщение # 185
6 уровень
Группа: Проверенные
Сообщений: 160
Награды: 0
Репутация: 21
Блокировки:
РаЙгА, заказы тут
D:


[ZorDe]
Ф бой Тускарцы, вы мега %)
 

DoctorGesterДата: Среда, 24 Февраля 2010, 21:28:56 | Сообщение # 186
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Quote
Сначала ты дал неработающую систему

Хитрый тролль, такой хитрый
Лол таймер создается один раз только при инициализации.
В общем с тобой спорить бесполезно(да не покарают меня модеры) ты дурак, ничего в этом не понимаешь и пытаешься выпендриться.
 

SvyagaДата: Среда, 24 Февраля 2010, 21:38:22 | Сообщение # 187
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
Хитрый тролль, такой хитрый.

Если бы таймер создавался только при инициализации, то и строка "local timer tim = CreateTimer() " была бы бессмысленна лол.
Quote (DoctorGester)
В общем с тобой спорить бесполезно(да не покарают меня модеры) ты дурак, ничего в этом не понимаешь и пытаешься выпендриться.

Да не покарают и меня модеры, ибо это ответ на твоё сообщение:
Ты дурак, так как это ты много чего не понимаешь и выпендриваешься только потому что я показываю твои ошибки.


Сообщение отредактировал Svyaga - Среда, 24 Февраля 2010, 21:39:55
 

Artas_UndeadДата: Среда, 24 Февраля 2010, 21:56:22 | Сообщение # 188
9 уровень
Группа: Проверенные
Сообщений: 1953
Награды: 0
Репутация: 365
Блокировки:
Quote (Svyaga)
И тут не "нужно - убери", а ненужное использование локальной, что, хоть и немного, но тормозит систему. Зачем использовать то, что можно и не использовать, при этом делая только лучше?

А обнулять таймер кто будет? Иван Федорович Крузенштерн? © При вызове функции её не обнулиш.
Quote (Svyaga)
Это ты нешаришь. Чем удобнее и проще объявить локалку? Ну ведь же не тем что писать в функциях меньше надо, ибо для каждого юнита сначала создаётся, потом уничтожается локалка, что значит что использование getenumunit быстрее, не говоря о ненужных локалках... о_О

Facepalm.jpg
Унылый тролль, такой унылый. Учи матчасть. С каких это пор у нас при каждом вызове локалки она "создаётся-уничтожается"? Ладно, объясню. Они создаются ПРИ ВЫЗОВЕ ФУНКЦИИ, а не при вызове самой локалки.
 

DragoNДата: Среда, 24 Февраля 2010, 21:58:42 | Сообщение # 189
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Svyaga, DoctorGester, давайте без оскорблений,а то мигом оба получите по бану

El Psy Congroo
 

SvyagaДата: Среда, 24 Февраля 2010, 22:01:35 | Сообщение # 190
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (Artas_Undead)
А обнулять таймер кто будет? Иван Федорович Крузенштерн? © При вызове функции её не обнулиш.

Про это я вообще молчу, я говорил только про использование локальной ненужной, и обнуляет он не таймер а локальную
Quote (Artas_Undead)
С каких это пор у нас при каждом вызове локалки она "создаётся-уничтожается"

ПОТОМУ ЧТО он использует local unit t а затем set t = null, т.е. для каждого раза когда вызывается функция - создаётся локалка. Это ведь не глобальная к-ая существует с инициализации. Я бы не был в этом уверен, если бы после того, как убрал подобные локалки, у меня карта не стала работать быстрее например.
Quote (Dragon93)
Svyaga, DoctorGester, давайте без оскорблений,а то мигом оба получите по бану

Без проблем


Сообщение отредактировал Svyaga - Среда, 24 Февраля 2010, 22:01:56
 

Artas_UndeadДата: Среда, 24 Февраля 2010, 22:06:57 | Сообщение # 191
9 уровень
Группа: Проверенные
Сообщений: 1953
Награды: 0
Репутация: 365
Блокировки:
Quote (Svyaga)
Про это я вообще молчу, я говорил только про использование локальной ненужной, и обнуляет он не таймер а локальную

Кэп, локальная содержит таймер, те локальная = таймер. Ферштейн? А обнулять надо всегда ибо лишние хендлы в памяти.

Quote (Svyaga)
т.е. для каждого раза когда вызывается функция - создаётся локалка.

Ты видишь тут проблему? Во 1, так было всегда, во 2, она обнуляется и проблем не будет.
 

DoctorGesterДата: Среда, 24 Февраля 2010, 22:11:00 | Сообщение # 192
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Svyaga, ок, берем считалку хендлов, запускаем твой и мой вариант, профит, мой побеждает, так как во время действия создается намного меньше хендлов. Dragon93, ну хоть ты вразуми его.
 

SvyagaДата: Среда, 24 Февраля 2010, 22:15:34 | Сообщение # 193
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (Artas_Undead)
Кэп, локальная содержит таймер, те локальная = таймер. Ферштейн? А обнулять надо всегда ибо лишние хендлы в памяти.

Да, но таймер при этом остаётся, и таким образом таймеры будут накапливаться, ибо:
Code
local timer tim = CreateTimer()
call TimerStart(tim,0.1,true,function a)
set tim = null

Равно:
Code
call TimerStart(CreateTimer(),0.1,true,function a))

Так что мой вариант тоже неправилен, если учитывать что таймер не исчезает, я просто показал как можно сделать это, не используя локальную. Так что в любом случае нужно переделать.
Quote (DoctorGester)
Svyaga, ок, берем считалку хендлов, запускаем твой и мой вариант, профит, мой побеждает, так как во время действия создается намного меньше хендлов. Dragon93, ну хоть ты вразуми его.

getrnumunit является native, так что от неё не появляется никаких задержек, в отличие от многочисленных созданий локальных.
Конечно если бы наппример в твоей функции использовалось TriggerSleepAction(...), то локальную было бы необходимо сделать, но здесь она лишняя.


Сообщение отредактировал Svyaga - Среда, 24 Февраля 2010, 22:20:25
 

Artas_UndeadДата: Среда, 24 Февраля 2010, 22:26:26 | Сообщение # 194
9 уровень
Группа: Проверенные
Сообщений: 1953
Награды: 0
Репутация: 365
Блокировки:
Quote (Svyaga)
Да, но таймер при этом остаётся, и таким образом таймеры будут накапливаться, ибо:


Мы обнуляем локалку с таймером тобишь обнуляем таймер тобишь его нет. Клиар?
Quote (Svyaga)
ак что в любом случае нужно переделать.

Как?)
Quote (Svyaga)
getrnumunit является native, так что от неё не появляется никаких задержек, в отличие от многочисленных созданий локальных. Конечно если бы наппример в твоей функции использовалось TriggerSleepAction(...), то локальную было бы необходимо сделать, но здесь она лишняя.

Хватит уже искать в каждом куске кода задержки)) Даже у профи бывают небольшие фейлы в кодах...
Ой, чтото я отошёл от сабжа. Локалки почти не задерживают процессор в отличии от вызовов функций.
Quote (Svyaga)
Равно:

Не сравнивай жопу с пальцем. Девайны тупо заменяют себя на нужный код, а локалки действуют подругому.
 

DoctorGesterДата: Среда, 24 Февраля 2010, 22:31:00 | Сообщение # 195
6 уровень
Группа: Проверенные
Сообщений: 209
Награды: 0
Репутация: 50
Блокировки:
Тебе стоит почитать статьи по жассу.
А также статьи по вжассу. Так как то что ты сейчас написал - полная ересь. Инициализация происходит 1 раз, таймер создается и обнуляется, в памяти остается 1 хендл.
Ты что не понимаешь что обнуление переменной не оставляет в памяти ничего? В этом случае 1 создание локальной переменной почти не занимает памяти, в отличие от нескольких ненужных вызовов одной и той же функции.
Модератор, если я сейчас дам ссылку на статью с одного известного нам сайта не будет ли это считаться рекламой?

Добавлено (24-02-2010, 22:31)
---------------------------------------------
Нет ну таймер то останется, просто мы не сможем к нему обратиться, так как на него нет ссылки в памяти и таймер будет работать вечно о_О

 

SvyagaДата: Среда, 24 Февраля 2010, 22:39:31 | Сообщение # 196
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (Artas_Undead)
Мы обнуляем локалку с таймером тобишь обнуляем таймер тобишь его нет. Клиар?

Это всё равно что сказать что если:
Code
local unit D = CreateUnit(....)
set D = null

То юнит исчезнет, а это не так... Да и как может тогда быть использован таймер которого не существует.
Обнуляя локалку, мы обнуляем ЛОКАЛКУ, т.е. задаем ей другое значение, а когда ставим null, то задаем значение равное нулю. Но таймер мы этим НИКАК не задеваем. Почитай туторы.
Для убирания таймера существует функция DestroyTimer.
Quote (Artas_Undead)
Хватит уже искать в каждом куске кода задержки)) Даже у профи бывают небольшие фейлы в кодах..

Так он говорит что фейла нет =)
Quote (Artas_Undead)
Не сравнивай жопу с пальцем. Девайны тупо заменяют себя на нужный код, а локалки действуют подругому.

Вот сравни:
Его вариант - создаётся локалка, и обозначаетсся таймеру, который создаётся. Затем этот таймер задействуется и локалка обнуляется.
Исправление - задействуется таймер, который тут же и создаётся.
Что быстрее?
Quote (Artas_Undead)
Локалки почти не задерживают процессор в отличии от вызовов функций.

Функции задерживают, но не нативы.

Добавлено (24-02-2010, 22:39)
---------------------------------------------

Quote (DoctorGester)
Ты что не понимаешь что обнуление переменной не оставляет в памяти ничего?

ОМГ. Я тебе говорю о том, что зачем вообще делать эту переменную, если и без её использования эффект тот же, что означает увеличение быстродействия функции.
Quote (DoctorGester)
Нет ну таймер то останется, просто мы не сможем к нему обратиться, так как на него нет ссылки в памяти и таймер будет работать вечно о_О

В том-то и дело что остаётся, хотя его можно и убрать. Зачем оставлять таймер который не используется? Это и называется лик (leak).
 

DragoNДата: Среда, 24 Февраля 2010, 22:41:30 | Сообщение # 197
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
Svyaga, а не реально в функции "а" ловить хэндл этого таймера через GetExpiredTimer() ?,а потом удалять
таймер будет удалён,проверено
это ещё кот доказал


El Psy Congroo
 

SvyagaДата: Среда, 24 Февраля 2010, 22:44:29 | Сообщение # 198
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (DoctorGester)
Ааааа, спасибо просветил, оказывается нативные функции не могут вызвать задержек, хм тогда может вообще не будем использовать локалки?
Ты будешь читать мои посты или нет? Я написал что этот таймер использовался в изначальном коде, как и хт. Интересно что же тогда может вызвать тормоза в любых картах? Ололо, ты просто посмешище, если посчитаете меня неправым давайте бан, или что хотите. Считайте я повелся на троллинг:)

Локалки нужны тогда, когда тебе нужно задержать какое-либо значение, пример я привёл, точнее использование TriggerSleepAction(...), когда значения могут поменяться, либо когда нужно сделать как условие, типа если выполняется то локалка равна одному, а если нет то другому. Если ты даже не знаешь что такое лики и как их определять то как можешь называть себя норм джасером.
Quote (Dragon93)
Svyaga, а не реально в функции а ловить хэндл этого таймера через GetExpiredTimer()?
а потом удалять
таймер буде удалён,проверено
это ещё кот доказал

Дык я про это и говорю, точнее что таймер надо удалять, ибо любые лики следует удалять, как бы незначительны они не были, а мне пишут что это не так, и что я посмешище О_О


Сообщение отредактировал Svyaga - Среда, 24 Февраля 2010, 22:44:54
 

DragoNДата: Среда, 24 Февраля 2010, 22:46:07 | Сообщение # 199
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
все функции события каста(TriggerAddAction),и т.п. запускаются один раз в потоке main

Добавлено (24-02-2010, 22:46)
---------------------------------------------
переменная - просто ссылка на игровой объект
если мы её просто обнулим - потеряем ссылку на объект и как следствие не сможем его удалить


El Psy Congroo
 

SvyagaДата: Среда, 24 Февраля 2010, 22:47:13 | Сообщение # 200
7 уровень
Группа: Проверенные
Сообщений: 472
Награды: 0
Репутация: 65
Блокировки:
Quote (Dragon93)
все функции события каста(TriggerAddAction),и т.п. запускаются один раз в потоке main

А я и не про это говорил а про таймер=) Добавляется действие-то 1 раз, но используется не 1.
Quote (Dragon93)
переменная - просто ссылка на игровой объект
если мы её просто обнулим - потеряем ссылку на объект и как следствие не сможем его удалить

Хоть один единомышленник :D


Сообщение отредактировал Svyaga - Среда, 24 Февраля 2010, 22:48:10
 

Поиск:

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