Matrix Games Forums

Forums  Register  Login  Photo Gallery  Member List  Search  Calendars  FAQ 

My Profile  Inbox  Address Book  My Subscription  My Forums  Log Out

Counter-attacks

 
View related threads: (in this forum | in all forums)

Logged in as: Guest
Users viewing this topic: none
  Printable Version
All Forums >> [Current Games From Matrix.] >> [Modern] >> Hired Guns: The Jagged Edge >> Counter-attacks Page: [1]
Login
Message << Older Topic   Newer Topic >>
Counter-attacks - 1/23/2009 5:05:44 PM   
Edgewise

 

Posts: 34
Joined: 1/18/2009
Status: offline
I've already mentioned in a few places that I think counter-attacks are both too weak and too seldom. I would like to start a thread specifically on this topic because I think it's a fairly easy way to dramatically improve the game. In addition to the 'normal' faction attacks on territory controlled by you and by eachother, I think the factions should all have large 'reactionary' type counter attacks that occur at specific points in the game. For the dictator who should have at least a few thousand total soldiers, I'd give him massive counter attack each time you capture a new zone. When you capture your first area under dictator control, a 1 time counter-attack force of 20 soldiers will begin marching towards that zone from the military base or palace. When you capture your 2nd, 3rd, 4th zone, a 1 time counter-attack force of 2 groups of 20 soldiers which hit you back to back on arrival will begin marching toward the zone as soon as you capture it. So if you quickly take down 3 zones, a 20 man group will be marching to the first zone, and a 40 man group will be marching to each of the other 2 zones. When you capture your 5th and 6th zones, each capture will spawn a 40 man counter attack made up of 20 soldiers followed by 20 elite guards, back to back. Any zones you capture after this will spawn 40 elite troops, hitting in 2 groups of 20 like before, back to back. As soon as the end of the first battle, the next group shows up on the map edge. These counter-attacks would be in addition to an increase in the strength and frequency of counter-attacks that occur when you sit still, which I think should start at 10 malitia every 24 hours when you only hold 1 territory and increase by 5 for each territory you hold up to 20. (15 for 2, 20 for 3) and when you hold 4 zones, the composition should change to 15 malitia 5 soldiers, 10 each for 5 zones, 15 soldiers 5 malitia for 6 zones, 20 soldiers for 7+.

Additionally, if you take the game path that makes Janus your enemy by rescuing the Butsi, ALL 'client' zones get a full 20 merc squad moved into them to defend them immediately, and you start getting Merc attacks from Janus. As you're now enemy to Janus and the Dictator, they both send attacks on you as described above, but the big counter attack comes from whoever owned the zone you capture and who sends the 'daily' attacks will be alternating assuming both can reach you. Might need some kind of 'elite' mercs for Janus as well.

This should make it much more difficult to play the entire game with only 2 or 3 mercs + generic NPC's. :P Anyone have comments here? Am I the only one who thinks the game is too easy even on hardest settings in it's current configuration?

Post #: 1
RE: Counter-attacks - 1/24/2009 12:21:05 AM   
SlickWilhelm


Posts: 1854
Joined: 7/22/2007
From: Rochester, MN
Status: offline
Are you saying that you are playing on the hardest difficulty level and are only using one squad of two Mercs throughout the entire game?

If so, you're a small arms tactical god. I'm playing on easy mode and always end up with most/all of my mercs wounded in every battle. In my first run through of the game, I lost four mercs KIA. In my second game, I just had Rob get KIA by a grenade at the dam.

One easy way to make the game harder for you while you wait for your ideas to be implemented, is maybe try to have your two mercs use handguns and knives only. Also, there's a way to give all the enemy 100 strength, so they would be grenading you back to the stone age. In fact, this one of the biggest changes made by Erik and Sean in the first patch. They toned down the enemy strength and reduced the number of grenades that they had.


_____________________________

Beta Tester - Brother Against Brother
Beta Tester - Commander: The Great War
Beta Tester - Desert War 1940-42

(in reply to Edgewise)
Post #: 2
RE: Counter-attacks - 1/24/2009 8:35:31 AM   
Edgewise

 

Posts: 34
Joined: 1/18/2009
Status: offline
It's not me, it's the AI.  If I were playing vs humans, would be much more difficult.  But yea, you can do most of the game with 1 merc, a couple places you need 2, one place I needed 3.  That is knowing where the 's' will hit the fan in advance, obviously I've had to restart a fair number of times.  I've already described my tactics in various threads.  And I do finish many kills with a knife already for the stat gain chance.  Pistols can work just fine too, very low ap per shot and very quiet with a silencer so you don't attract enemy.  A couple of maps tho where you just can't get through it with only 2 mercs without using grenades.  Oh how I tried. :)  Using only pistols and a knife on most maps would not make them harder, just make them take longer.

(in reply to SlickWilhelm)
Post #: 3
RE: Counter-attacks - 1/24/2009 3:48:23 PM   
SlickWilhelm


Posts: 1854
Joined: 7/22/2007
From: Rochester, MN
Status: offline
Oh, I agree with you that the AI needs some work. I think if the AI were stronger, you wouldn't need more counter attacks. You'd have the feeling of accomplishment from defeating the Dictator's forces once and capturing the sector.

I wish the AI was better at making decisions on when to advance, when to retreat, and most importantly.....to seek cover at the end of every turn.


_____________________________

Beta Tester - Brother Against Brother
Beta Tester - Commander: The Great War
Beta Tester - Desert War 1940-42

(in reply to Edgewise)
Post #: 4
RE: Counter-attacks - 1/24/2009 8:41:27 PM   
Edgewise

 

Posts: 34
Joined: 1/18/2009
Status: offline
Even with really 'good' AI which is truely rare in any game, you need at least a healthy increase in in the number and quality of enemies.  With abysmal AI, you need zerg wave swarms of them.  I don't think the AI is quite at the lemming level but on a 1-10 scale I'd go with around 3 for HG.  JA2 I'd give the AI around a 5 and they also had much better hardware, particularly in some of the mods.  Still predictable, but at dangerous.  In HG, if you're at med range with good camo firing a silenced pistol/SMG/AR from grass or a bush, the AI won't see you or hear you and it just stands there getting shot till critical before trying to run away.  They usually won't med themselves or eachother either, just bleed to death if you can't finish them before they'er out of range.  On some maps you can go through the entire map this way, or you can use terrain to create a kill zone where one merc can take on 5-6 at once with no problem.  Most of the AI issues I've seen have already been posted so I don't see any point in going into great detail.

(in reply to SlickWilhelm)
Post #: 5
RE: Counter-attacks - 1/24/2009 10:25:45 PM   
Mraah

 

Posts: 1085
Joined: 2/20/2008
Status: offline
Edgewise,

I've looked at all your posts regarding changes you'd like to see and how the game isn't doing this or isn't doing that, etc etc. From what I can tell, most of your suggestions/ideas appear to be do-able, in one way or another.

I haven't had the time to tweak anything but if you have a moment you can look in the BASIS/SCRIPTS/AI folder and open up the "table_values" lua with notepad and see the variables that can be adjusted ... but unfortunately the remarks are garbled and cannot be translated however it's almost self explanatory.

If you tweak a few things that change your game play to a more challenging level then please let us know.

Below is a snipet from that file (hard level) :

quote:


lvl = LEVEL_HARD,

maxMoveDist = 15, -- расстояния для перемещения (штурмовик)
medMoveDist = 10, --
defMoveDist = 5, --
minMoveDist = 1, --
sniperMaxMoveDist = 5, -- расстояния для перемещения (снайпер)
sniperMedMoveDist = 4, --
sniperDefMoveDist = 3, --
sniperMinMoveDist = 1, --
maxStrategy = 3, -- количество стратегий (TB)
medMoveMistake = 0.3, -- средняя ошибка по направлению при перемещении к цели
smallMoveMistake = 0.1, -- малая ошибка по направлению при перемещении к цели
rotateMistake = 80, -- отклонение цели от линии зрения, при котором поворачиваться с целью увидеть не надо
hitBreathPenalty = 200, -- пенальти на энергию при ранении (для юнитов игрока тоже)
boredInterval = 120, -- время, после которого наемники начинают излагать мудрые мысли
useOneGrenadePerTurn = false,

----------------------------------

RTMinBreathForJob = 2000, -- порог энергии, при достижении которого нужно отдыхать (RT)
TBMinBreathForJob = 1000, -- порог энергии, при достижении которого нужно отдыхать (TB)
TBBreathForWalk = 3300,
tooCloseDist = 10, -- минимально возможное расстояние до врага при сближении
moraleTresholdPoseUp = 55, -- порог морали выше которого юнит повышает позу
moraleTresholdPoseDown = 40, -- порог морали ниже которого юнит понижает позу
moraleTresholdFlee = 50, -- ... спасается бегством вместо атаки в melee
strafeProb = 0.3, -- вероятность стрейфа при отсутствии линии огня
forcedMeleeDist = 7, -- расстояние на котором юнит атакует в melee
forcedMeleeProb = 0.9, -- вероятность атаки в melee
turnForVisibleReport = 1, -- количество турнов, после RT, после которых юнит сообщит о видимых врагах союзникам
visibleReportProb = 0.9, -- вероятность сообщения о видимых врагах союзникам
soldierMaxMissTries = 2, -- максимальное количество промахов перед сменой позиции (штурмовик)
sniperMaxMissTries = 3, -- максимальное количество промахов перед сменой позиции (снайпер)
sniperMaxAttacks = 5, -- максимальное количество атак с одного места (снайпер)
tryWalkAroundProb = 0.5, -- вероятность обхода противника (иначе - простое сближение)
minGrenadeRange = 8, -- минимальное расстояние для атаки гранатой
useGrenadeProb = 0.5, -- 1-базовая вероятность атаки гранатой
reloadTreshold = 50, -- процент патронов в магазине при котором проводится тактическая перезарядка
tryHealAlly = true, -- пытаться лечить умирающих союзников?
mayCheckLoot = true, -- шарить по луту без острой необходимости?
tryKillDyingEnemy = true, -- добивать умирающих врагов при проверке лута?
attackDyingEnemyProb = 0.4, -- вероятность атаки умирающего врага
psychoProcessed = 0.15, -- вероятность "психической" реакции при выстреле (для мерков)
maxGrenadeMistake = 3, -- ошибка при броске гранаты (модификатор здоровья)
healthPercentToBandage = 50,

----------------------------------------
RTKnownStalkers = 3, -- количество преследователей известной цели в RT
TBKnownStalkers = 5, -- количество преследователей известной цели в RT

----------------------------

dangerSoundShotDist = 90, -- расстояние, на котором звук выстрела считается опасным
dangerSoundBlastDist = 110, -- расстояние, на котором звук взрыва считается опасным
dangerSoundBulletDist = 5, -- расстояние, на котором звук пули считается опасным
forgetSoundInterval = 200, -- время в секундах, через которое звук будет забыт
RTSoundStalkers = 3, -- количество преследователей звука в RT
TBSoundStalkers = 5, -- количество преследователей звука в TB
RTSoundStalkMode = "walk", -- режим передвижения преследователей звука в RT
TBSoundStalkMode = "run", -- режим передвижения преследователей звука в TB

----------------------------------------------------

roamInterval = 90, -- интервал времени, в течении которого проводится поиск
roamRadius = 20, -- радиус поиска
lazyRoamInterval = 30, -- интервал времени, в течении которого проводится "ленивый" поиск (т.е. без четкой цели)
lazyRoamRadius = 15, -- радиус "ленивого" поиска
lazyRoamIntensivity = 0.12, -- интенсивность "ленивого" поиска
lazyRoamLowTime = 4, -- нижний порог "ничегонеделанья" при "ленивом" поиске
lazyRoamUpTime = 9, -- верхний ...

------------------------------

mpAllyCorpseSighted = 0, -- пенальти если увидел труп союзника
mpAllyHit = -1, -- пенальти если попал по своему
mpAllyKilled = -2, -- пенальти если убил своего (добавочное)
mpAllyKilledAll = -1, -- пенальти всем однополчанам если убил своего (добавочное)
mpHit = -2, -- пенальти если попали
mpKilledAll = -6, -- пенальти всем однополчанам если убили
mbEnemyHit = 2, -- бонус если попал по врагу
mbEnemyKilled = 5, -- бонус если убил врага
mbEnemyKilledAll = 2, -- бонус всем однополчанам если убил врага

-------------------------------------

leaderOptDist = 25, -- оптимальная дистанция бойца до командира
leaderMaxCmdDist = 30, -- максимальная дистанция, на которой командир управляет бойцом
leaderFarDist = 40, -- дистанция при привышении которой командир будет подзывать бойца

----------------------------------

leaderAllowDiedProb = 0.33, -- допустимый процент живых для продолжения без принятия серьезных и решительных мер
leaderRetreatProb = 0.4, -- вероятность отдачи командиром приказа на отступление при морали 100 (иначе - реформирование отделения)
leaderRetreatTurns = 2, -- количество турнов отступления перед очередной оценкой ситуации

---------------------------------------------

surroundTurns = 2, -- интервал после которого будет проведена очередная оценка ситуации
surManyEnemiesSoldier = 0.2, -- вероятность отступления при большом кол-ве врагов (при морали 100, штурмовик)
surBadHealthSoldier = 0.15, -- вероятность отступления при низком здоровье (при морали 100, штурмовик)
surManyEnemiesSniper = 0.35, -- вероятность отступления при большом кол-ве врагов (при морали 100, снайпер, лидер, патруль)
surBadHealthSniper = 0.25, -- вероятность отступления при низком здоровье (при морали 100, снайпер, лидер, патруль)
retreatHealth = 33, -- процент здоровья для отступления
retreatEnemies = 7, -- количество врагов для отступления (штурмовик)
retreatEnemiesSniper = 4, -- количество врагов для отступления (лидер,снайпер,патруль)



quote:

table_values =
-- really used

over_head = 1.00, -- показывать ремарку над головой
corner = 0.00, -- показывать ремарку в углу

-- for compability only

max_move_distance = 15.00, -- на какое максимальное расстояние отдавать приказ на движение в пошаговом режиме
med_move_distance = 10.00, -- на какое среднее расстояние отдавать приказ на движение в пошаговом режиме
default_move_distance = 5.00, -- на какое расстояние отдавать приказ на движение в пошаговом режиме по умолчанию
min_move_distance = 1.00, -- на какое минимальное расстояние отдавать приказ на движение в пошаговом режиме
min_grenade_throwing_dist = 8.00, -- минимальная дистанция броска гранаты (чтобы не пофачиться)
dist_to_not_move_closer = 10.00,
max_danger_dist_of_bullet_sound = 10.00, -- дистанция, на которой звук пули считается опасным
max_danger_dist_of_grenade_sound = 200.00, -- дистанция, на которой звук упавшей гранаты считается опасным
max_danger_dist_of_shot_sound = 100.00, -- дистанция, на которой звук выстрела считается опасным
allow_stalkers = 5.00, -- сколько человек может преследовать одну и туже цель
retreat_health = 33.00, -- сколько процентов здоровья должно быть чтобы сгенерировать отступление
retreat_enemies = 3.00, -- сколько опасных врагов надо видеть чтобы сгенерировать отсутпление
reload_threshold = 50.00, -- сколько процентов патронов должно остатсья в оружии - чтобы принудительно перезарядить

-- junk below

default_ai_priority = 0.50, -- приоритет действий ИИ по умолчанию НЕ РЕДАКТИРОВАТЬ!
hurt_ai_light_priority = 0.90, -- приоритет действий ИИ при ранении НЕ РЕДАКТИРОВАТЬ!
hurt_ai_medium_priority = 0.91, -- приоритет действий ИИ при ранении НЕ РЕДАКТИРОВАТЬ!
underfire_ai_priority = 0.80, -- приоритет действий ИИ при обстреле НЕ РЕДАКТИРОВАТЬ!
shoot_ai_priority = 0.70, -- приоритет действий ИИ при виде врага НЕ РЕДАКТИРОВАТЬ!
remember_ai_priority = 0.10, -- приоритет вспоминания ИИ звуков НЕ РЕДАКТИРОВАТЬ!
default_trigger_priority = 0.10, -- приоритет приказов триггера по умолчанию
on_attack_shoot_trigger_finding = 0.50, -- вероятность нахождения триггера cover и shoot_position при параметре initiative=1
on_bullet_orders_canceling = 0.50, -- вероятность похерить приказы при параметре persistence=1
only_auto_firing_dist = 20.00, -- дистанция до врага, до которой перс стреляет длинной очередью (80%) или короткой очередью (20%)
max_auto_firing_dist = 25.00, -- дистанция до врага, до которой перс стреляет длинной очередью (20%) или короткой очередью (80%)
max_burst_firing_dist = 50.00, -- дистанция до врага, до которой перс стреляет короткой очередью (60%) или одиночным (40%)
mostly_single_firing_dist = 75.00, -- дистанция до врага, до которой перс стреляет короткой очередью (20%) или одиночным (80%)
dist_to_run_from_grenade = 10.00, -- дистанция, на которую отбегает чел от гранаты
grenade_throwing = 0.15, -- вероятность броска гранаты перед приказом стрелять
max_stand_firing_dist = 30.00, -- дистанция до врага, до которой перс стреляет стоя
max_sit_firing_dist = 75.00, -- дистанция до врага, до которой перс стреляет сидя
time_between_taking_HMG = 2.00, -- промежуток времени в секундах, через который перс пытается взять или бросить HMG
time_trigger_timeout = 10.00, -- время, которое HMG триггер ждет, пока к нему кто-то прибежит
time_to_remember_sound = 5.00, -- время в секундах, которое перс помнит звуки
delay_to_remember_sounds = 4.00, -- максимальная задержка в секундах на вспоминание очередного звука
delay_to_awake = 60.00, -- задержка, после которой idle-бандит встает
dist_to_trace_sound_point = 3.00, -- расстояние, на которое трассировать лучик до источника звука
dist_to_trigger_NEAR = 2.00, -- расстояние, на котором триггер shoot_position считается "близким"
fmod_single = 0.00, -- стрельба одиночными
fmod_triple = 1.00, -- стрельба короткой очередью
fmod_burst = 2.00, -- стрельба очередью
fmod_grenade = 3.00, -- стрельба гранатами
slot_primary = 0.00, -- слот основного оружия (винтовки)
slot_special = 1.00, -- слот спец. оружия (минометы)
slot_secondary = 2.00, -- слот вторичного оружия (пистолеты)
slot_grenade = 3.00, -- слот с гранатами
slot_medkit = 4.00, -- слот с аптечками
slot_melee = 5.00, -- слот с оружием ближнего боя
max_teammate_hurted_distance = 30.00, -- расстояние до своего, на котором обрабатывается событие "Свой ранен"
buttons_ok = 0.00, -- кнопки для messageBox'a: OK
buttons_ok_cancel = 1.00, -- кнопки для messageBox'a: OK & CANCEL
buttons_yes_no = 2.00, -- кнопки для messageBox'a: YES & NO
button_ok = 0.00, -- кнопка от messageBox'a: OK
button_cancel = 3.00, -- кнопка от messageBox'a: CANCEL
button_yes = 4.00, -- кнопка от messageBox'a: YES
button_no = 5.00, -- кнопка от messageBox'a: NO
subpoints_per_point = 25.00, -- for rpg system

----------------------------------


< Message edited by Mraah -- 1/24/2009 10:26:07 PM >

(in reply to Edgewise)
Post #: 6
RE: Counter-attacks - 1/24/2009 10:37:44 PM   
R@S

 

Posts: 46
Joined: 12/11/2008
Status: offline
Quick tip: Right-click on table_values.lua and select "Open With" Firefox or internet explorer. You'll get the cyrillic instead of gibberish and can then translate it with an online translator. Good Luck

(in reply to Mraah)
Post #: 7
RE: Counter-attacks - 1/24/2009 10:38:43 PM   
Reinforce


Posts: 197
Joined: 12/11/2008
Status: offline
I was messing with this file for the past few days. Lots of good stuff in there.. Granted I don't yet know what alot of it really does but they do effect combat and how the AI moves and handles themselves. However this file is only for the Tactical map AI, I'm still searching for where the game keeps the info on how often Attack groups get sent out and how many of them go and bla bla bla. I'll post and let ya'll know if I have any luck finding it.

Much Love,
Reinforce

(in reply to Mraah)
Post #: 8
RE: Counter-attacks - 1/24/2009 10:57:00 PM   
Mraah

 

Posts: 1085
Joined: 2/20/2008
Status: offline
quote:

ORIGINAL: R@S

Quick tip: Right-click on table_values.lua and select "Open With" Firefox or internet explorer. You'll get the cyrillic instead of gibberish and can then translate it with an online translator. Good Luck



R@S,

Ahhh, excellent tip ... thank you. !!

EDIT NOTE : Hmmm, I tried IE (I don't have firefox) but it opens with notepad with garbled cyrillic ... even though LUA is associated with IE.

< Message edited by Mraah -- 1/24/2009 11:05:27 PM >

(in reply to R@S)
Post #: 9
RE: Counter-attacks - 1/24/2009 10:58:36 PM   
Mraah

 

Posts: 1085
Joined: 2/20/2008
Status: offline

quote:

ORIGINAL: Reinforce

I'm still searching for where the game keeps the info on how often Attack groups get sent out and how many of them go and bla bla bla. I'll post and let ya'll know if I have any luck finding it.

Much Love,
Reinforce


Reinforce,

I found what you're looking for awhile back ... like last week but I forgot where it was ... It details how often the patrols spawn.

Please give me a moment to locate it and I'll post the name over in your mod thread.

Rob


(in reply to Reinforce)
Post #: 10
RE: Counter-attacks - 1/25/2009 12:02:41 AM   
Mraah

 

Posts: 1085
Joined: 2/20/2008
Status: offline
quote:

ORIGINAL: Edgewise

I've already mentioned in a few places that I think counter-attacks are both too weak and too seldom. I would like to start a thread specifically on this topic because I think it's a fairly easy way to dramatically improve the game.



Edgewise,

Thanks for the posting ...

Below is a snipet of the function (mobilization) in the STRATEGY.lua file ... again, all this stuff is do-able ... for the most part ... The problem is testing the values (trial and error) ... at least it's good news :

This file is located in the \basis\campaigns\JAZZ folder ... along with more "stuff".

quote:


function mobilizationUpdate()
local s = Sectors
local current_force = ""

local update = function(sector, data)

if (data.owner == current_force) then
local militia_info = getMilitiaInfo(sector)

if ((militia_info.num < 20) and (militia_info.num > 0)) then
for slot = 1, 4, 1 do
if ((militia_info[slot].num < 5) and (militia_info[slot].mtype ~= nil)) then
if (Pool[current_force].current > 0) then
if (militia_info[slot].mtype == nil) then
militia_info[slot].mtype = current_force
end
--log("!slot_to_reduce", "mobilizationUpdate", sector, slot, militia_info[slot].num)
setMilitia2(sector, slot, militia_info[slot].mtype, militia_info[slot].num + 1)
Pool[current_force].current = Pool[current_force].current - 1
end
end
end
end
end

end

local thru = function(force, data)
if ((force ~= CIVILIAN) and (force ~= PLAYER)) then
current_force = force
table.foreach(s, update)
end
end

table.foreach(Forces, thru)
end


< Message edited by Mraah -- 1/25/2009 12:05:14 AM >

(in reply to Edgewise)
Post #: 11
RE: Counter-attacks - 1/25/2009 3:45:21 AM   
Edgewise

 

Posts: 34
Joined: 1/18/2009
Status: offline
Awesome info.  Unfortunately, full time work and full time school, so it might be a while before I get some free time to mess with any code.  I try to avoid it or I get sucked in and end up modding a virtually new game with new models and all, because I'm a bit detail oriented and OCD about getting it just right. 

(in reply to Mraah)
Post #: 12
RE: Counter-attacks - 1/25/2009 10:20:02 AM   
R@S

 

Posts: 46
Joined: 12/11/2008
Status: offline
quote:

ORIGINAL: Mraah
R@S,

Ahhh, excellent tip ... thank you. !!

EDIT NOTE : Hmmm, I tried IE (I don't have firefox) but it opens with notepad with garbled cyrillic ... even though LUA is associated with IE.


If You're using IE you have to first rename the file from *.lua to *.txt. Then open it with IE and go to the "View" meny. select "Encoding" >> "More" >> "Cyrillic(Windows)" and Bob's your uncle.

But you should use Firefox as your browser since it is far superior to IE and it's free. Well, I think so anyway. Not that it's free but it's far better

Sorry about the delayed reply, sleep always gets in the way.

(in reply to Mraah)
Post #: 13
Page:   [1]
All Forums >> [Current Games From Matrix.] >> [Modern] >> Hired Guns: The Jagged Edge >> Counter-attacks Page: [1]
Jump to:





New Messages No New Messages
Hot Topic w/ New Messages Hot Topic w/o New Messages
Locked w/ New Messages Locked w/o New Messages
 Post New Thread
 Reply to Message
 Post New Poll
 Submit Vote
 Delete My Own Post
 Delete My Own Thread
 Rate Posts


Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI

5.000