Награда за захват 3 дворами

Статус
Закрыто для дальнейших ответов.

DeletedUser

Гость
Награда за захват дворами

1. Золото - одним двором
2. Серебро - двумя дворами
3. Бронза - тремя дворами
4. Дерево - первый захват деревни

Информация

В базе данных игрового мира есть следующие таблицы:

1. Players - игроки в мире
1.1. PlayerID - идентификатор игрока
1.N. .......

2. Villages - деревни в мире
2.1. VillageID - идентификатор деревни
2.N. .......

Реализация

Для реализации данной награды понадобится кросс-таблица лояльности в деревни по отношению к игроку:

3. LoyaltyVillages - лояльность в деревне (кросс)
3.1. VillageID - идентификатор деревни
3.2. PlayerID - идентификатор игрока, сбившего лояль
3.3. Loyalty - лояльность после атаки

В данную таблицу попадают записи только при атаках с дворами:

insert into LoyaltyVillages(VillageID, PlayerID, Loyalty) values({Village_ID}, {Player_ID}, {CurrentLoyalty} - {AttackLoyalty}))

При восстановлении лояльности в деревне до 100 - все записи относительно деревни из неё удаляются:

delete from LoyaltyVillages where VillageID = {Village_ID}

При захвате деревни игроком считается количество дворов, затраченное на захват (здесь можно по PlayerID и альянсу игрока отсечь "накрутку" (если сбивали лояль соплемены - не считать)):

select count(*)
from LoyaltyVillages
where VillageID = {Village_ID}
and PlayerID = {Player_ID}

При захвате первой деревни игрок получает награду за первый захват деревни (Дерево - количество дворов более трёх или бегал одним более трёх раз). Если первый захват был только тремя дворами, то сразу получает бронзовую награду (Бронза - захватил тремя дворами или бегал три раза одним двором).

При захвате деревни тремя дворами и у игрока деревянная награда (Дерево) или нет вообще - получает бронзовую награду (Бронза).

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

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

Ну здесь ещё конечно надо учитывать перезахваты, чтобы они не считались захватом одним двором.

Думаю объяснил более правильно... 8-)
 

DeletedUser

Гость
Награда за захват дворами

1. Золото - одним двором
2. Серебро - двумя дворами
3. Бронза - тремя дворами
4. Дерево - первый захват деревни

Информация

В базе данных игрового мира есть следующие таблицы:

1. Players - игроки в мире
1.1. PlayerID - идентификатор игрока
1.N. .......

2. Villages - деревни в мире
2.1. VillageID - идентификатор деревни
2.N. .......

Реализация

Для реализации данной награды понадобится кросс-таблица лояльности в деревни по отношению к игроку:

3. LoyaltyVillages - лояльность в деревне (кросс)
3.1. VillageID - идентификатор деревни
3.2. PlayerID - идентификатор игрока, сбившего лояль
3.3. Loyalty - лояльность после атаки

В данную таблицу попадают записи только при атаках с дворами:

insert into LoyaltyVillages(VillageID, PlayerID, Loyalty) values({Village_ID}, {Player_ID}, {CurrentLoyalty} - {AttackLoyalty}))

При восстановлении лояльности в деревне до 100 - все записи относительно деревни из неё удаляются:

delete from LoyaltyVillages where VillageID = {Village_ID}

При захвате деревни игроком считается количество дворов, затраченное на захват (здесь можно по PlayerID и альянсу игрока отсечь "накрутку" (если сбивали лояль соплемены - не считать)):

select count(*)
from LoyaltyVillages
where VillageID = {Village_ID}
and PlayerID = {Player_ID}

При захвате первой деревни игрок получает награду за первый захват деревни (Дерево - количество дворов более трёх или бегал одним более трёх раз). Если первый захват был только тремя дворами, то сразу получает бронзовую награду (Бронза - захватил тремя дворами или бегал три раза одним двором).

При захвате деревни тремя дворами и у игрока деревянная награда (Дерево) или нет вообще - получает бронзовую награду (Бронза).

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

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

Ну здесь ещё конечно надо учитывать перезахваты, чтобы они не считались захватом одним двором.

Думаю объяснил более правильно... 8-)

Ура!У меня теперь 4 золота.
 

DeletedUser

Гость
Народ, хорош смешить)) Ф топку сабж... А аффтара на удаление))
 
Статус
Закрыто для дальнейших ответов.
Верх