1

Тема: Для начинающих кодеров

(Статью написал $pok)
В этой статье я бы хотел рассказать вам для чего нужен тот или иной файл в папке src/game/server (Это если делать сервер).
Первый класс который мы будем редко использовать:
CEntity(entity.cpp и entity.h).
Что же в нем происходит? Ну давайте с самого начала, в teeworlds есть такие вещи как entities, к ним относятся все тайлы начиная со спавна и ниже(откройте спойлер и поймете)

+ Entities

http://s2.hostingkartinok.com/uploads/images/2013/06/bfeb30b0dafc9ecaf312f7933960dfe0.png

Сами Entities это тайлы которые можно перемещать по карте без изменения карты то есть серверно. К entities можно отнести игрока(тии),Оружия(так как они при подборе исчезают и надо ждать чтобы они появились),Броня\Жизни(на DDRace их можно перемещать и на DM они просто исчезают при подборе), Флаги (их можно подобрать и они с вами перемещаються по карте).
Этот файл я никогда не изменял(но, использовал).


Второй класс у нас будет:
CEventHandler(eventhandler.cpp и eventhandler.h)
В нем идет обработка событий, каких? Я не знаю, так-как за все время что я занимался созданием модов, я его не разу не использовал. Про него я особо вам не смогу рассказать.

Третий класс и один из самых значимых классов в сервере:
CGameContext(gamecontext.cpp и gamecontext.h)
Что же это за класс? В этом классе идет обработка чата, голосований, данных передающихся между сервером и клиентом, Админ команды такие как say, teams(перемещение игроков),restart и т.д, Kick и Ban сюда не входит.
Здесь идет обработка событий таких как connect, disconnect игрока, Смерть, создание взрыва, Эффект при ударе молотком, Звуки. При коннекте создается экземпляр класса CPlayer который описан в player.cpp и player.h.

Четвертый класс это:
CPlayer(player.cpp и player.h)
Здесь идет управление над игроком, В teeworlds игрок делиться на 2 части это character(герой) и player(Игрок). Когда человек заходит на сервер то появляется Игрок, а когда спавниться tee то появляется класс character. Игрок, зачем он нам нужен?
Класс игрока принимает от Клиента данные о цвете тии, в какую он тиму хочет, клан, ник, передвижения, стрельбу.

Идем дальше, шестой класс CCharacter(character.cpp и character.h), самое интересное :]
В этом классе происходит передвижения, изменения позиции тии, сторона куда двигается тии, координаты прицела(!!!),кол-во жизней\брони и т.д.
А теперь самое главное, этот класс относиться к entity, когда ваш тии умирает то класс ломается(destroy), и управление отдается снова player.

Седьмоооой класс. И так, этот класс отвечает за игру, за начало\конец раунда, место где заспавниться тии, баланс команд ------ IGameController(gamecontroller.cpp и gamecontroller.h).
В этом классе нет ничего особенного.

Еще один класс называется CGameWorld(gameworld.cpp и gameworld.h) и как не странно отвечает он за игровой мир(карта), но отвечает он только за entities.
И в этом классе нету ничего особенного ab

Зайдем в под папку entities.


Так как CCharacter мы разобрали, пропустим его.

CFlag(flag.cpp и flag.h) класс флага все просто и легко ag

2

Re: Для начинающих кодеров

Previous - это тот, который раньше Slender'ом был?

Спасибо за внимание!
                                                                                                                                                                               Yoga

3

Re: Для начинающих кодеров

Ƶ-Quɘeze пишет:

Previous - это тот, который раньше Slender'ом был?

Ага

4

Re: Для начинающих кодеров

Это $pok вообще-то.

5

Re: Для начинающих кодеров

Старый добрый Спок ab

6

Re: Для начинающих кодеров

ZersevNomad пишет:

Это $pok вообще-то.

Slender'oм он был похоже еще раньше..

Спасибо за внимание!
                                                                                                                                                                               Yoga

7

Re: Для начинающих кодеров

Ƶ-Quɘeze пишет:

Slender'oм он был похоже еще раньше..

Позже вроде бы.

8

Re: Для начинающих кодеров

Gridwyn пишет:

Старый добрый Спок

Который непонятно почему был 4 месяца в клане и его не кикали за инактив.

ПРАВЕЛЬНЫЙ ОБВЕНЯТЕЛЬ
http://lines.akusherstvo.ru/lineika/787720.gif

+ :D

http://s017.radikal.ru/i424/1605/b1/5f04e72bb6a9.png

9

Re: Для начинающих кодеров

Именно потому что он старый и добрый ag

10

Re: Для начинающих кодеров

Ясно.

ПРАВЕЛЬНЫЙ ОБВЕНЯТЕЛЬ
http://lines.akusherstvo.ru/lineika/787720.gif

+ :D

http://s017.radikal.ru/i424/1605/b1/5f04e72bb6a9.png