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}
При захвате первой деревни игрок получает награду за первый захват деревни (Дерево - количество дворов более трёх или бегал одним более трёх раз). Если первый захват был только тремя дворами, то сразу получает бронзовую награду (Бронза - захватил тремя дворами или бегал три раза одним двором).
При захвате деревни тремя дворами и у игрока деревянная награда (Дерево) или нет вообще - получает бронзовую награду (Бронза).
При захвате деревни двумя дворами (при условии, что лояль в ней сбивали не соплемены или игроки из списка друзей) игрок получает серебряную награду (Серебро), если у него более "слабые" уровни данной награды. Скажем случай перезахвата или отбирания деревни у кого-то...
При захвате деревни одним двором (при условии, что лояль в ней сбивали не соплемены или игроки из списка друзей) игрок получает золотую награду (Золото), если у него более "слабые" уровни данной награды. Скажем случай перезахвата (более реальный вариант в случае захвата одним двором) или отбирания деревни у кого-то...
Ну здесь ещё конечно надо учитывать перезахваты, чтобы они не считались захватом одним двором.
Думаю объяснил более правильно...
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}
При захвате первой деревни игрок получает награду за первый захват деревни (Дерево - количество дворов более трёх или бегал одним более трёх раз). Если первый захват был только тремя дворами, то сразу получает бронзовую награду (Бронза - захватил тремя дворами или бегал три раза одним двором).
При захвате деревни тремя дворами и у игрока деревянная награда (Дерево) или нет вообще - получает бронзовую награду (Бронза).
При захвате деревни двумя дворами (при условии, что лояль в ней сбивали не соплемены или игроки из списка друзей) игрок получает серебряную награду (Серебро), если у него более "слабые" уровни данной награды. Скажем случай перезахвата или отбирания деревни у кого-то...
При захвате деревни одним двором (при условии, что лояль в ней сбивали не соплемены или игроки из списка друзей) игрок получает золотую награду (Золото), если у него более "слабые" уровни данной награды. Скажем случай перезахвата (более реальный вариант в случае захвата одним двором) или отбирания деревни у кого-то...
Ну здесь ещё конечно надо учитывать перезахваты, чтобы они не считались захватом одним двором.
Думаю объяснил более правильно...