forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Вопросы очередного новичка (http://forum.boolean.name/showthread.php?t=9214)

RlexGm 13.01.2010 16:24

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 133371)
Вот так :PositionEntity player,0,0,0
а потом идет цикл
While not keydown(1)


А если место 0,0,0 поставить переменные то если переменные изменятся позиция так называемого "player" :) не изменится

KingMaks 13.01.2010 16:27

Ответ: Вопросы очередного новичка
 
EaNub

переменная = скокко там
переменная2 = скокко там
переменная3 = скокко там

While not keydown(1)

PositionEntity player,переменная,переменная2,переменная3


и при нажатии вперед меняй значение переменной и т.д.

-=SCiP=- 13.01.2010 16:33

Ответ: Вопросы очередного новичка
 
Цитата:

Вопрос: Если скрыл модель HideEntity как вернуть назад модель, к жизни?
Если память не изменяет мне.
ShowEntity entity

RlexGm 13.01.2010 21:52

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 133374)

и при нажатии вперед меняй значение переменной и т.д.

Да не тут то было... Объект же вращается, и напремер когда он повёрнут в другую сторону и ты нажмаешь вперед... и он идет не куда направлена камера вообщем

NitE 13.01.2010 22:13

Ответ: Вопросы очередного новичка
 
positionentity позиционирует объект, им нельзя двигать. для этого есть moveentity чтобы перемещать объект относительно себя, translateentity для перемещения объекта относительно мира.
и естественно если нужно чтобы объект шел туда куда смотрит камера надо двигать объект вместе с камерой (entityparent).

RlexGm 13.01.2010 22:19

Ответ: Вопросы очередного новичка
 
я это знаю, Nite посмотри предыдущие посты...
а MoveEntity не работает когда PositionEntity находится в цикле...

NitE 13.01.2010 23:17

Ответ: Вопросы очередного новичка
 
чета я вообще запутался - напиши конкретно и кратко в чем трабла, помогу исправить.

baton4ik 14.01.2010 00:07

Ответ: Вопросы очередного новичка
 
Eanub, не знаю, как другие, а я не понял, ЗАЧЕМ ТЕБЕ ПОЗИЦИОНИРОВАТЬ В ЦИКЛЕ? :) PositionEntity заюзай до цикла, а в цикле двигай!
Хотя... Если я правильно понял, тебе надо ПРЯМО В ЦИКЛЕ переместить игрока в точку? :) Если так, то... хм... Ну мне ничего умнее этого в голову не пришло:
i=1
...
repeat ;начало цикла

...
if i=1 then positionentity player,x,y,z
i=2
endif
...

Until KeyHit(1)


И каждый раз, когда надо переместить таким же образом делай i=1, а x, y, z нужными координатами. Конечно, есть решение попроще :-D Но мне в голову пришло только это.

Если я неправильно тебя понял, я извиняюсь

KingMaks 14.01.2010 16:46

Ответ: Вопросы очередного новичка
 
Baton4 я ему ето писал, ему чемто не понравилось))

Eanub никто не поймет в чем проблема, дай хоть код :)

RlexGm 14.01.2010 17:37

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от Baton4 (Сообщение 133420)
Eanub Если я правильно понял, тебе надо ПРЯМО В ЦИКЛЕ переместить игрока в точку?

так оно и есть:)

Цитата:

Сообщение от KingMaks (Сообщение 133469)
Baton4 я ему ето писал, ему чемто не понравилось))

при i=2 он возвращяет кординату которая была раньше
Вот новая вещ, не давно обнаружил: если ты стоишь в той комнате куда надо переместиться то это вполне работает... а когда не в этой то на милисикунду (наверно:) ) игрок переползает куда надо а потом назад где был:(

и еще на досуге пришел вопрос :(
как в blitz3D проверить столкновение с объектом

Reizel 14.01.2010 19:56

Ответ: Вопросы очередного новичка
 
ЕаНуб код в студию :)

KingMaks 14.01.2010 19:58

Ответ: Вопросы очередного новичка
 
EaNub

EntityCollided

RlexGm 14.01.2010 20:28

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от KingMaks (Сообщение 133492)
EaNub

EntityCollided

If KeyHit(Jump) And EntityCollided(Player,TypeFloor) Then MoveEntity Player,0,20,0

Но прыжка не происходит вообще(
Код в сокращении:

Graphics3D 0,0,32,1
SetBuffer BackBuffer()
Global Menusost=1 ; меню при старте программы
Global PlX#,PlY#,PlZ# ; координаты игрока
PositionEntity Player,50,60,60

While
; ну вообщем там поиграли и ....ну скажем захотели еще раз последний момент позыреть :-D
If KnopkaLoadGame=1 ; ах да кнопка постоянно обновляется в 0
Menusost=4
PlX#=50 ;
PlY#=60 ;
PlZ#=60 ; корды тестовые, потом они из файла считываться будут...
EndIf

If MenuSost=4
PositionEntity Player,PlX#,PlY#,PlZ#
Menusost=2
EndIf ; вот я делаю как вы мне посоветовали..

RenderWorld
UpdateWorld
Flip
Wend
End

KingMaks 14.01.2010 20:37

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133496)
вот я делаю как вы мне посоветовали..

как мы посоветовали лутше не делать.Слушайся советов опытных програмистов:-D

Зделай при столкновении плеера с полом прыжок = ноль

если прыжок = ноль и нажать пробел то игрок прыгет и прыжок = один

Reks888 14.01.2010 20:51

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133496)
If KnopkaLoadGame=1 ; ах да кнопка постоянно обновляется в 0
Menusost=4
PlX#=50 ;
PlY#=60 ;
PlZ#=60 ; корды тестовые, потом они из файла считываться будут...
EndIf

If MenuSost=4
PositionEntity Player,PlX#,PlY#,PlZ#
Menusost=2
EndIf ; вот я делаю как вы мне посоветовали..

RenderWorld
UpdateWorld
Flip
Wend
End

:-D
гыг зачем выносить MenuSost за пределы KnopkaLoadGame при такой логике? Достаточно
If KnopkaLoadGame=1 ; ах да кнопка постоянно обновляется в 0
PlX#=50 ;
PlY#=60 ;
PlZ#=60 ; корды тестовые, потом они из файла считываться будут...
PositionEntity Player,PlX#,PlY#,PlZ#
Menusost=2
EndIf ; вот я делаю как вы мне посоветовали..

-2 лишних переменных и минус лишний if
Истинный кошмар :-D :-D :-D
Цитата:

If KeyHit(Jump) And EntityCollided(Player,TypeFloor) Then MoveEntity Player,0,20,0
Собсно проблема хде-то сдесь прячется. Есть уже уйма предположений:
Для начала напиши так
If KeyHit(Jump) And EntityCollided(Player,TypeFloor)
MoveEntity Player,0,20,0
Stop;
EndIF
При нажатии пробела(или чем ты там прыгаешь) программа должна "зависнуть". Тоесть она как-бэ закончится на этом моменте и больше не будет выполнятся. Если при нажатии пробела игра не останавливается - ошибка в условиях:
1)Бах в EntityCollided(Player,TypeFloor). Плееру не задан тип, а может и колизии с полом - EntityCollided работает лишь при заданных коллизиях. Солюшн: Убрать And EntityCollided(Player,TypeFloor) и попробовать прыгать.
2)Бах в If KeyHit(Jump) - переменная Jump задана неправильно. Солюшн: открыть код, нажать Ctrl+F ввести в поле Jump и посмотреть действительно ли там сканкод 57.
3)Бах в MoveEntity Player,0,20,0 кроме того что для прыжка он двигается по оси Y(:4to:), не исключен вариант что твой игрок прыгает "в пол" а колизии его выталкивают обратно => ничего не просиходит. Солюшн: Поиграть со значениями MoveEntity
Таким образом БАХ может быть в любой части If'a.

baton4ik 14.01.2010 21:12

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133496)
If KnopkaLoadGame=1 ; ах да кнопка постоянно обновляется в 0

Вот в этом месте видимо и трабла! (где обновляется). Выкладывай ВЕСЬ КОД! А то не видать тебе фикса :)

baton4ik 14.01.2010 21:15

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133475)
при i=2 он возвращяет кординату которая была раньше

Трабла в коде! Значит, где-то в цикле у тебя есть

if i=2 then moveentity player,startx,starty,startz

RlexGm 14.01.2010 22:18

Ответ: Вопросы очередного новичка
 
я узнал причину оставания на месте при загрузки и она меня ужаснула!=)
я это все проверял в узких коридорах и не заметил..
при позиционровании он ударяется в стену всторону той точки...

baton4ik 14.01.2010 22:58

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133516)
я узнал причину оставания на месте при загрузки и она меня ужаснула!=)
я это все проверял в узких коридорах и не заметил..
при позиционровании он ударяется в стену всторону той точки...

Почему-то меня преследует острое ощущение дежа-вю...

Morganolla 14.01.2010 23:05

Ответ: Вопросы очередного новичка
 
Вопрос - а можно из типов Type делать массивы...
Например:
Type Body
Field x,y,
End Type
...
Dim Body(100)

...или типы работают только как связанные списки...?

ABTOMAT 14.01.2010 23:14

Ответ: Вопросы очередного новичка
 
Field somethimg[100];
(по памяти)
* пардон, неверно прочитал вопрос.
См. след пост

wolfhound512 14.01.2010 23:27

Ответ: Вопросы очередного новичка
 
Можно:
Код:

Type Body
        Field x,y,z
End Type

Dim array.Body(10)

For i=0 To 10
        array(i) = New Body
        array(i)\x=Rnd(1,10)
        array(i)\y=Rnd(1,10)
        array(i)\z=Rnd(1,10)
Next

For i=0 To 10
        Text 10, i*10, array(i)\x
        Text 100, i*10, array(i)\y
        Text 200, i*10, array(i)\z
Next

WaitKey()


KingMaks 14.01.2010 23:41

Ответ: Вопросы очередного новичка
 
Может кто знает?

Rand (1,128 ) - только чтобы могли попасться только ети числа : 16,32,48,64,80,96,112,128

Чтобы лучше объяснить подам не правильный код : "Rand (1,128 ) Step 16"

NitE 14.01.2010 23:50

Ответ: Вопросы очередного новичка
 
боже мой... где твой абстрактное мышление ? почему всегда надо всё пытатся сделать через как можно большую жопу ?

Код:

i=Rand(1,8)
select s
case i=1 : s=12
case i=2 : s=32
и т.д.
end select


H@NON 14.01.2010 23:53

Ответ: Вопросы очередного новичка
 
если нужно чтобы из рандома совпал ряд чисел, то делай через Select :
Код:

result = false
While result = false
      number = Rand(1,128)
      Select number
          case 16,32,48,64,80,96,112,128
          result = true
      End select
Wend


Reks888 14.01.2010 23:54

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от NitE (Сообщение 133527)
боже мой... где твой абстрактное мышление ? почему всегда надо всё пытатся сделать через как можно большую жопу ?

Код:

i=Rand(1,8)
select s
case i=1 : s=12
case i=2 : s=32
и т.д.
end select


гы-гы. Ты собсно делаешь через ту же жопу.
i=Rand(1,8)
n=i*16
:cool:
Вообще зависит от того для каких целей ты будешь применять. Если тебе нужно чтобы було True если значение кратно 16, то делай i=Rand(1,128)
If i mod 16 = 0 Then allisgood=True

Reizel 15.01.2010 15:58

Ответ: Вопросы очередного новичка
 
Блин вот только что хотел написать это :):)

RlexGm 15.01.2010 18:41

Ответ: Вопросы очередного новичка
 
чет я не допёр а как воспроизвести звук топота(подскажите плз
когда удерживаю бежать то он начинает звук многократно повторять причем до конца доигрывает только 1 раз а потом как получается как дрелью...

Reizel 15.01.2010 18:48

Ответ: Вопросы очередного новичка
 
Создай в типе поле Sount_TOP_TOP :) И делай так:
if чувак_перемещается
If soundPlaying(P\Sound_TOP_TOP) Then P\Sound_TOP_TOP=PlaySound(Sound_TOP_TOP)
endif
endif

PackegerX 15.01.2010 18:52

Ответ: Вопросы очередного новичка
 
ЕаНуб, ну вот я например примерно так делаю: (хоть это и не правильно:) )
sound=loadsound("sound.mp3")
;цикл
while not keyhit(1)
if keydown(30)=1 or keydown (32)=1 then
if snd_rn=1 then
playsound (sound)
snd_rn=0
endif
endif
if keydown(30)=0 and keydown (32)=0 then
snd_rn=1
endif
wend

Reks888 15.01.2010 18:54

Ответ: Вопросы очередного новичка
 
PackegerX
Ох...Сколько же народу на булку прет. Боюсь количество недопроЭктов вскоре увеличится вдвое:-D
Ты откуда к нам заявился? Поисковик или вики?

PackegerX 15.01.2010 19:00

Ответ: Вопросы очередного новичка
 
Rexxar, я с Земли такая планета третья от солнца :) (поисковик)
Я сейчас в процессе - марио в 3д помоему многие начинают с этого хотя я думал что идею хорошую придумал))

Reks888 15.01.2010 19:03

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от PackegerX (Сообщение 133590)
Rexxar, я с Земли такая планета третья от солнца :) (поисковик)
Я сейчас в процессе - марио в 3д помоему многие начинают с этого

Ключевое слово выделено. Неправду ты говоришь - все делают супер мега РПГ которая убьет обливион, готику и (вставить название РПГ). А марио это то как раз чего нет у нас на форуме. Как сделаешь демку - сразу пости в проЭкты. Народ обрадуется, обещаю:)

Taugeshtu 15.01.2010 20:31

Ответ: Вопросы очередного новичка
 
Нет в прогрессе, но был цельный конкурс ажно в 2007-м году...

Morganolla 16.01.2010 01:52

Ответ: Вопросы очередного новичка
 
Еще вопросик - а как в блитце уберечься от повторных инклудов? В сях писали типа If no define... #define.... А?

SBJoker 16.01.2010 02:57

Ответ: Вопросы очередного новичка
 
Всё инклудить в главный файл, т.к. блитз в отличие от с++ не имеет раздельной компиляции исходников, и рассматривает весь код в целом.
Здесь инклуд - просто добавление исходника в проект.

RlexGm 16.01.2010 13:53

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от PackegerX (Сообщение 133585)
ЕаНуб, ну вот я например примерно так делаю: (хоть это и не правильно:) )
sound=loadsound("sound.mp3")
;цикл
while not keyhit(1)
if keydown(30)=1 or keydown (32)=1 then
if snd_rn=1 then
playsound (sound)
snd_rn=0
endif
endif
if keydown(30)=0 and keydown (32)=0 then
snd_rn=1
endif
wend

Запускает звук на звук подрят и получается пердеш какойто:)нет ли какого нить примерчика?:)

Reizel 16.01.2010 15:10

Ответ: Вопросы очередного новичка
 
EaNub я же тебе написал ? Что тебе не ясно? Сморти проигрывается ли канал, если нет то нагружай канал звуком :):)

RlexGm 16.01.2010 15:46

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от Павел (Сообщение 133696)
Сморти проигрывается ли канал, если нет то нагружай канал звуком :):)

ты же писал что сделать через тип(я думаю разницы нету) а вот про каналы 1 раз слышу=)

Reizel 16.01.2010 15:56

Ответ: Вопросы очередного новичка
 
Еа, а у тебя юниты или кто там, разве не через типы?
а если в первый раз про каналы слышишь - поясню
Команда PlaySound возвращает хэндл канала, то есть так:
Sound=PlaySound(MtSound)
Здесь Sound - это канал. Теперь этим каналом можно управлять:
ChannelVolume(Sound,Volume#)
Volume - в пределах от 0 до 1, это громкость канала
ChannelPlaying(Sound) - вернет 0, если твой канал Sound не проигрывается, и 1, если это не так
ChannelPitch(Sound,Pitch) - с этим я сам не разобрался, но это регулирует частоту звука(тон, высоту пргоще говоря)
Ну остальное в справке прочтешь

RlexGm 16.01.2010 16:08

Ответ: Вопросы очередного новичка
 
что то не могу разобраться, мож кодик подкинеш?)

KingMaks 16.01.2010 16:21

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133707)
что то не могу разобраться, мож кодик подкинеш?)

Между вашими сообщениями 10 минут разници
Ты даже не попробовал разобраться:)

RlexGm 16.01.2010 17:36

Ответ: Вопросы очередного новичка
 
10 мин это далеко не мало=)
мож всетаки кто нить даст код?

KingMaks 16.01.2010 17:40

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от EaNub (Сообщение 133715)
10 мин это далеко не мало=)
мож всетаки кто нить даст код?


я ещо со звуком не работал но думаю так:
Код:

if ChannelPlaying(шаги) = 0 then
PlaySound(шаги)
 end if


Morganolla 16.01.2010 17:45

Ответ: Вопросы очередного новичка
 
А где у тебя звук то отключается? Нигде?

KingMaks 16.01.2010 17:47

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 133718)
А где у тебя звук то отключается? Нигде?

я имел ввиду:

Код:

if keydown(200) then
 if ChannelPlaying(шаги) = 0 then
PlaySound(шаги)
 end if
 end if

или там если анимация хотьба то .. и вставлять в тот код

RlexGm 18.01.2010 11:02

Ответ: Вопросы очередного новичка
 
А можно как нибудь сделать тыкание по объекту, если карта сделана в Cartography shop?
я пробывал чето не получилось(:
If Instr(name$,"knon"); определяем кнопку...
EntityPickMode child, 2
NameEntity child,"knone" ; именуем объект
EndIf


If KeyHit(Use) = True
enti = CameraPick(camplayer,MouseX(),MouseY())
If enti
If EntityDistance(enti, player) < 20
names$ = EntityName(enti)
If names = "knone"
и сюда действие
EndIf
EndIf
....
EndIf

и нечего не происходит когда по нему тыкаеш, помогите!

H@NON 18.01.2010 11:45

Ответ: Вопросы очередного новичка
 
Код:

If Instr(name$,"knon"); определяем кнопку...
EntityPickMode child, 2
NameEntity child,"knone" ; именуем объект
EndIf

Второй раз незачем именовать, ведь чилд уже изначально был назван "knon", вот его и ищи. Тебе щас нужно продебажить код на прохождение условий, просто в каждое условие вставь строку
Код:

If Instr(name$,"knon"); определяем кнопку...
DebugLog "True"
...
 EndIf

и запусти в debug режиме. Если будет писаться в текстовом поле "True", значит он прошел это условие и ты будешь знать в каком месте не сходиться.

RlexGm 18.01.2010 16:18

Ответ: Вопросы очередного новичка
 
( у меня дебагер показывает только главный код, а это у меня все в инклудах(
вообщем вопрос таков:
есть код определения отдельных частей карты:

Function OprObj(ent)
For i=1 To CountChildren(ent)
child=GetChild(ent,i)
name$=Lower(EntityName(child))



If Instr(name$,"knon")
EntityPickMode child, 2
EndIf


Next
End Function

и код для нажатия

If keyHit(use) = True
ent = CameraPick(camplayer,MouseX(),MouseY())

If ent

If EntityDistance(ent, player) < 100
name$ = EntityName(ent)

If name = "knon"

EndIf
EndIf
EndIf
EndIf

И так вопрос господа: как совместить эти два кода?

Hurrit 18.01.2010 17:32

Ответ: Вопросы очередного новичка
 
Для совмещения этих кусочков кода, надо один кусочек вписать в другой. Ваш К.О.

Reks888 18.01.2010 19:14

Ответ: Вопросы очередного новичка
 
А что "супер управление мышей" уже закрыли? Я только боян нарыл на тему :(

ABTOMAT 18.01.2010 19:18

Ответ: Вопросы очередного новичка
 
Закрыли, матершынников забанили
И вместо того, чтобы причитать "Где админы??" могли бы сами сообщить лично одному из старейшин/админов.
Даже кнопка такая есть около каждого поста, чего-то никто ими не пользуется

IGR 18.01.2010 19:20

Ответ: Вопросы очередного новичка
 

Reks888, ахах, аццкий боян !!
вспоминаю себя когда учил блиц !! :-D

is.SarCasm 18.01.2010 19:21

Ответ: Вопросы очередного новичка
 
Баян не в тему но угагагагар. Если рисовал сам то +100500

Зайди наконец в скайп рекс

Reks888 18.01.2010 19:23

Ответ: Вопросы очередного новичка
 
Не могу, у меня бред с компом творится. При запуске начинается холивар процессов(которые уже удалены из реестра и автозапуска(ОМГ)) и поэтому запускается только одна программа поддерживающая интернет. Тоесть я могу запустить ИЛИ скайп ИЛИ мозилу :)
ЗЫ боян не мой, он пренадлежит обществу...на 16 странице "Смешных картинок" лежит

KingMaks 18.01.2010 20:40

Ответ: Вопросы очередного новичка
 
Нужна идея!

Сделал Игрока и управление от 3 лица.Работает Отлично!
Только если подойти к стене и прокрутить камерой вокруг игрока,
то камера проходит сквозь стену и игрока не видно.
Делал колизию камеры со стеной,а когда нет колизии
камера возвращается в прежнее положение, но таким способом есть баги.

Может кто знает способ,чтобы камера не уходила за твердые предметы,
а допустим приближалась к игроку, а потом вновь отдалялась.

ABTOMAT 18.01.2010 20:49

Ответ: Вопросы очередного новичка
 
Самый простой способ так сделать - заменить камеру на пивот, тыкать в его сторону от игрока и ставить камеру в пикнутое место, либо, если пикнулось слишком далеко, либо вообще не пикнулось, то ставить в позицию пивота.
Но неплохо бы избавиться от пивота вообще.

Reks888 18.01.2010 21:15

Ответ: Вопросы очередного новичка
 
читай справку -> EntityInView спасет тебя

KingMaks 18.01.2010 21:24

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от Reks888 (Сообщение 133995)
читай справку -> EntityInView спасет тебя

Хех, читал, ето человек не видит плеера за стеной, а плеер находиться
в координатах видимости камеры, по етому камера видит его как бы и через стену:)

Reks888 18.01.2010 21:30

Ответ: Вопросы очередного новичка
 
А проходимость/непроходимость для кого придумали?)

KingMaks 18.01.2010 21:33

Ответ: Вопросы очередного новичка
 
Цитата:

Сообщение от Reks888 (Сообщение 133997)
А проходимость/непроходимость для кого придумали?)

Ану объясни-ка,я чот не в курсе:4to::)

Reks888 18.01.2010 21:36

Ответ: Вопросы очередного новичка
 
http://www.policyalmanac.org/games/a...torial_rus.htm
Бугога! Кури и незакурим будешь. Вродь как юзается и чтоб ИИ делать, и чтоб в стены не лазать

Reks888 18.01.2010 21:37

Ответ: Вопросы очередного новичка
 
А вообще я страшный извращенец, думаю можно сделать и полегче

Reizel 18.01.2010 21:48

Ответ: Вопросы очередного новичка
 
KingMaks, EntityInView лишь проверяет, попадает ли точка тела в проекцию камеры. И от стен это не зависит. Есть жутко медленная команда EntityVisible() - вот в ней реализовано именно то что тебе надо :) Тока стенам надо EntityPickMode прописывать. В общем, дерзай :)


Часовой пояс GMT +4, время: 04:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot