 |
|
|
| View previous topic :: View next topic |
| Author |
Message |
Count0

Joined: 09 Apr 2004 Posts: 252 Location: Seattle
|
Posted: Fri Apr 11, 2008 1:48 pm Post subject: Martial Arts skills |
|
|
In putting together my Monk archetype roster character I found a couple of skill triggers that I think Phule made. I can't find them anywhere so I thought I'd post them. I'm not sure where I go t them, originally, only that they appear to be proper implementations of my Rune-Fu martial arts idea.
At any rate, thanks Phule... _________________ "That is not dead which can eternal lie,
And with strange aeons even death may die."
Runes of Horror
Runesword II - OS project home on SourceForge |
|
| Back to top |
|
 |
Phule

Joined: 12 Mar 2004 Posts: 1256
|
Posted: Fri Apr 11, 2008 7:46 pm Post subject: |
|
|
You're welcome. And yes, I did create those two. _________________ Get My RuneSword 2 stuff from My Web Page |
|
| Back to top |
|
 |
oneillz

Joined: 31 Mar 2008 Posts: 116 Location: Mostly Eternia
|
Posted: Tue Apr 15, 2008 3:46 pm Post subject: |
|
|
I haven't used those skills yet [reminiscent of D2's Assassin] of the name
but the Martial Arts character/skill is one of the most fantastic things in this game.
The character cannot have anything in hand, yet is very powerful... too overpowered, in my opinion.
From a technical view, it can stun and perform a killing blow... a character I needed when I played the tome Myne to kill the Champion.
And from a fun point of view, I love how there is a lot of dialog action [i.e. smashes with a telling blow] |
|
| Back to top |
|
 |
Count0

Joined: 09 Apr 2004 Posts: 252 Location: Seattle
|
Posted: Tue Apr 15, 2008 4:20 pm Post subject: |
|
|
Right on!
And I agree that the more dialog action the better. I've been noticing that myself lately. I'm just beginning to do some playtesting in my 'A Box of Hell' tome and that's one big note I have to myself in testing encounters - bump the dialog up one level whenever possible. That's one thing that helps give RS that pen-and-paper game feel, I think. _________________ "That is not dead which can eternal lie,
And with strange aeons even death may die."
Runes of Horror
Runesword II - OS project home on SourceForge |
|
| Back to top |
|
 |
oneillz

Joined: 31 Mar 2008 Posts: 116 Location: Mostly Eternia
|
Posted: Mon Aug 03, 2009 3:05 am Post subject: |
|
|
| Code: | '
' THE UPCOMING TO HIT ROLL GETS A BONUS BASED ON SKILL LEVEL
' MAY GET MINUSES IF CHAR HAS LESS THAN 6 ACT PTS FOR THIS ATTACK
'
Put TriggerNow.SkillLevel - Local.IntegerC Into Local.IntegerB
CombatRollAttack Blunt Bonus Local.IntegerB
'
' EXIT IF TO HIT ROLL FAILS. OTHERWISE, ROLL A SILENT D20. HIGH
' ROLLS GET SPECIAL EFFECTS BASED ON BRUCE LEE/CHUN LI'S LEVEL
'
If Global.AttackRoll < CreatureTarget.Defense
Exit Trigger
Else
Let Local.IntegerA = Random.20
EndIf |
I'm just trying to understand the code.
What does Local.IntegerC, B, and A do? From what I can decipher, it's the comment that goes before the code. If you have less than 7 action points but perform the skill, there will be a hit penalty (like attacking with a regular weapon)
Finally, the second part of the code. I didn't include the rest (maybe I should?) because I really would like to understand it. What I can get through the second part of the code is...
If the dice roll is higher than the enemy's defense, some type of trigger will not take effect. Then the last part of the code I just don't get at all. |
|
| Back to top |
|
 |
Phule

Joined: 12 Mar 2004 Posts: 1256
|
Posted: Mon Aug 03, 2009 6:51 am Post subject: |
|
|
In general, Local.IntegerC is a temporary variable that's local to that particular calling of the trigger. It defaults to 0, but just out of habit I never rely on that in my coding, and always make sure to initialize it.
In specific, you're looking for:
| Code: | '
If CreatureNow.ActionPoints <= Pos.7
Put Pos.7 - CreatureNow.ActionPoints Into Local.IntegerC
Let CreatureNow.ActionPoints = Pos.0
Else
Put CreatureNow.ActionPoints - Pos.7 Into CreatureNow.ActionPoints
EndIf
'
| , just a little further up. Basically, Local.IntegerC is the number of action points the person is short - if the martial artist has seven or more action points, Local.IntegerC = 0. If the martial artists has less than seven action points, Local.IntegerC is the difference between the martial artist's action points and seven. It's used as a to-hit penalty - just like the "overswing" option.
The attack bonus is Local.IntegerB, which is assigned the line before as TriggerNow.SkillLevel - Local.IntegerC; that is, if you have a high skill, you get a nice bonus on the attack roll on the CombatRollAttack statement.
There's technically a couple of redundant lines in there, but it doesn't matter as they don't interfere. At the next step, it says "okay, are we below the AC of the target?" If the attack roll didn't pass (Attack Roll < AC), then it quits. Otherwise, it selects a random number (1-20, stored in Local.IntegerA) for use in selecting what special effect happens later on. _________________ Get My RuneSword 2 stuff from My Web Page |
|
| Back to top |
|
 |
oneillz

Joined: 31 Mar 2008 Posts: 116 Location: Mostly Eternia
|
Posted: Mon Aug 03, 2009 10:07 am Post subject: |
|
|
edit
1st part of the code - Just a regular damage dealer.
2nd part of the code - I'm guessing this has to do with the attack roll and not with the position of the character that's attacking, or the creature you're targeting. If so, that makes it alot simpler. If you roll a 20, then the creature is stunned.
3rd part of the code - If the roll is more than 17 or equal to 17, then the skill inflicts extra damage.
Thanks for helping me out, I plan to add more to your codes.
Last edited by oneillz on Mon Aug 03, 2009 5:44 pm; edited 1 time in total |
|
| Back to top |
|
 |
Phule

Joined: 12 Mar 2004 Posts: 1256
|
Posted: Mon Aug 03, 2009 5:20 pm Post subject: |
|
|
You'll need to turn off UBB code and HTML code (they're flags at the bottom of the post) in order for code to be sure to go through properly - I recognize the <pos> in your post above. Because of that mild board issue, I'm afraid you've got some pointer errors in your post - "first part", "second part" and "third part" don't help much when some unknown chunk of it all has been removed. Can you re-post, please? _________________ Get My RuneSword 2 stuff from My Web Page |
|
| Back to top |
|
 |
oneillz

Joined: 31 Mar 2008 Posts: 116 Location: Mostly Eternia
|
Posted: Mon Aug 03, 2009 5:51 pm Post subject: |
|
|
Just the full partial code of Martial Arts.
| Code: | '
' THE SPECIAL D20 BONUSES VARY BASED ON YOUR MARTIAL ARTS SKILL LEVEL
'
Select TriggerNow.SkillLevel
'
Case Pos.1
'
CombatRollDamage Normal Damaged Dice.4d6 Check
If CreatureTarget.Health < Pos.1
Exit Trigger
EndIf
'
If Local.IntegerA = Pos.20
DialogShow "DM" BriefLine Says "[CreatureNow.Name] stuns [CreatureTarget.Name] briefly."
CopyTrigger "Frozen/Stunned" Into CreatureTarget
'
ElseIf Local.IntegerA >= Pos.17
Let Local.IntegerB = Dice.1d6
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "The martial arts attack inflicts [Local.IntegerB] extra damage on [CreatureTarget.Name]"
EndIf
' |
__________
| Code: | '
Case Pos.1
'
CombatRollDamage Normal Damaged Dice.4d6 Check
If CreatureTarget.Health < Pos.1
Exit Trigger
EndIf
' |
From what I can decipher -
1) Case Pos.1 - That equals to a 'Novice' skill level, therefore, 'Adept', 'Expert', and 'Master' triggers will not take effect until you raise the skill.
2) From the code above, the skill will do normal damage, but if the target's health is more than 1, then it will exit the trigger?
_________
| Code: | '
If Local.IntegerA = Pos.20
DialogShow "DM" BriefLine Says "[CreatureNow.Name] stuns [CreatureTarget.Name] briefly."
CopyTrigger "Frozen/Stunned" Into CreatureTarget
' |
From what I can decipher -
1) If the attack roll is equal to 20, then the skill will stun the creature. Is this correct?
__________
| Code: | '
ElseIf Local.IntegerA >= Pos.17
Let Local.IntegerB = Dice.1d6
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "The martial arts attack inflicts [Local.IntegerB] extra damage on [CreatureTarget.Name]"
EndIf
' |
From what I can decipher -
1) Finally, if all the past codes have not taken effect, this final one will have a chance. If the attack roll is equal to 17 or more, then the skill will inflict extra damage.
Is this correct? Sorry if I'm being repetitive, I want to make sure I understand fully before tweaking. |
|
| Back to top |
|
 |
Phule

Joined: 12 Mar 2004 Posts: 1256
|
Posted: Mon Aug 03, 2009 6:15 pm Post subject: |
|
|
| oneillz wrote: |
From what I can decipher -
1) Case Pos.1 - That equals to a 'Novice' skill level, therefore, 'Adept', 'Expert', and 'Master' triggers will not take effect until you raise the skill.
|
Correct. And do note that the "Novice" skill level case won't take effect if you're an Adept, Expert, or Master.
| oneillz wrote: |
2) From the code above, the skill will do normal damage, but if the target's health is more than 1, then it will exit the trigger?
|
Almost. If it's less than one (hence the "<"), it'll exit. There's no real point in making the other guy woozy if you've already killed him.
| oneillz wrote: |
_________
| Code: | '
If Local.IntegerA = Pos.20
DialogShow "DM" BriefLine Says "[CreatureNow.Name] stuns [CreatureTarget.Name] briefly."
CopyTrigger "Frozen/Stunned" Into CreatureTarget
' |
From what I can decipher -
1) If the attack roll is equal to 20, then the skill will stun the creature. Is this correct?
|
Close. It's not referencing the attack roll anymore. At this point, Local.IntegerA is a saved value from random.20 earlier, divorced from the attack roll. It's a flat 1 in 20 (5%) chance of having that particular effect.
| oneillz wrote: |
| Code: | '
ElseIf Local.IntegerA >= Pos.17
Let Local.IntegerB = Dice.1d6
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "The martial arts attack inflicts [Local.IntegerB] extra damage on [CreatureTarget.Name]"
EndIf
' |
From what I can decipher -
1) Finally, if all the past codes have not taken effect, this final one will have a chance. If the attack roll is equal to 17 or more, then the skill will inflict extra damage.
Is this correct? Sorry if I'm being repetitive, I want to make sure I understand fully before tweaking. | Yep. _________________ Get My RuneSword 2 stuff from My Web Page |
|
| Back to top |
|
 |
oneillz

Joined: 31 Mar 2008 Posts: 116 Location: Mostly Eternia
|
Posted: Mon Aug 03, 2009 6:23 pm Post subject: |
|
|
| Phule wrote: | | Correct. And do note that the "Novice" skill level case won't take effect if you're an Adept, Expert, or Master. |
Again, you've answered one of my forgot-to-ask future questions.
| Phule wrote: | | Almost. If it's less than one (hence the "<"), it'll exit. There's no real point in making the other guy woozy if you've already killed him. |
No wonder I wasn't making any sense. Darn less than symbols that vaguely resembles L.
| Phule wrote: | | Close. It's not referencing the attack roll anymore. At this point, Local.IntegerA is a saved value from random.20 earlier, divorced from the attack roll. It's a flat 1 in 20 (5%) chance of having that particular effect. |
Oh, I see. That makes perfect sense and ties it all up. |
|
| Back to top |
|
 |
oneillz

Joined: 31 Mar 2008 Posts: 116 Location: Mostly Eternia
|
Posted: Tue Aug 04, 2009 7:02 am Post subject: |
|
|
| Code: | '
' THE SPECIAL D20 BONUSES VARY BASED ON YOUR MARTIAL ARTS SKILL LEVEL
'
Select TriggerNow.SkillLevel
'
' NOVICE SKILL LEVEL MARTIAL ARTS
'
If TriggerNow.SkillLevel > Pos.1
Exit Trigger
EndIf
'
' MAKE SURE ENEMY IS NOT DEAD
'
CombatRollDamage Normal Damaged Dice.4d4 Check
If CreatureTarget.Health < Pos.1
Exit Trigger
EndIf
'
' STUN TECHNIQUE
'
If Local.IntegerA = Pos.20
DialogShow "DM" BriefLine Says "[CreatureNow.Name] has stunned [CreatureTarget.Name]"
CopyTrigger "Stun Technique" Into CreatureTarget
'
' EXTRA DAMAGE
'
ElseIf Local.IntegerA >= Pos.10
Let Local.IntegerB = Dice.1d6
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" Briefline Says "[CreatureNow.Name] inflicts [Local.IntegerB] extra damage on [CreatureTarget.Name]"
EndIf |
Some partial code tweaking on Martial Arts.
Is this a step into the right direction?
I plan to add the following; tell me if it's possible
1) More 'EXTRA DAMAGE' triggers, just with a name. Like Roundhouse Kick, Uppercut, Senpuu Kyaku, Hyakuretsu Kyaku (oh, you know where I'm going with this)
2) Triggers that have a secondary effect. Disarming a weapon, slowing the person down (I have that Slow spell somewhere, I forgot where I got it) lowering their defense, lowering their chance to succeed on hit rolls, the Martial Artist will have a chance to attack if they miss
3) This one seems the most far-fetched. When I first got Runesword, I would almost always have my Martial Artist pair with the ability 'Deflect Arrow'. Since then, I've made triggers that also 'Deflect Dart' and 'Deflect Rock'. I wonder, if it's possible that the Martial Artist could -catch- the arrow and -return fire-. This is inspired by Final Fantasy Tactics Advance and of course, martial arts movies (one being Crouching Tiger Hidden Dragon)
_______________
| Code: | '
' ARMOR CHECK
'
ForEach ItemA In CreatureNow
If ItemA.IsEquipped = Global.True
And ItemA.Protection% > Pos.0
DialogShow "DM" Normal Says "You cannot use Martial Arts while weaing armor."
Exit Trigger
EndIf
Next
'
' WEAPON CHECK
'
ForEach ItemA In CreatureNow
If ItemA.IsInHand = Global.True
DialogShow "DM" Normal Says "You cannot use Martial Arts with anything in hand."
Exit Trigger
EndIf
Next
'
' ACTION POINTS CHECK
'
If CreatureNow.ActionPoints = Pos.0
DialogShow "DM" Normal Says "You're out of Action Points!"
Exit Trigger
EndIf
'
' ATTACK RANGE CHECK
'
If CreatureNow.RangeToTarget > Pos.1
DialogShow "DM" Normal Says "You're out of range!"
Exit Trigger
EndIf
'
' SUBTRACT CORRECT AMOUNT OF ACTION POINTS
' LOCAL C IS TO HIT PENALTY FOR TOO FEW AP
'
If CreatureNow.ActionPoints <= Pos.7
Put Pos.7 - CreatureNow.ActionPoints Into Local.IntegerC
Let CreatureNow.ActionPoints = Pos.0
Else
Put CreatureNow.ActionPoints - Pos.7 Into CreatureNow.ActionPoints
EndIf
'
' THE UPCOMING TO HIT ROLL GETS A BONUS BASED ON SKILL LEVEL
' MAY GET MINUSES IF CHAR HAS LESS THAN 6 ACT PTS FOR THIS ATTACK
'
Put TriggerNow.SkillLevel - Local.IntegerC Into Local.IntegerB
CombatRollAttack Blunt Bonus Local.IntegerB
'
' EXIT IF TO HIT ROLL FAILS. OTHERWISE, ROLL A SILENT D20. HIGH
' ROLLS GET SPECIAL EFFECTS BASED ON BRUCE LEE/CHUN LI'S LEVEL
'
If Global.AttackRoll < CreatureTarget.Defense
Exit Trigger
Else
Let Local.IntegerA = Random.20
EndIf
'
' THE SPECIAL D20 BONUSES VARY BASED ON YOUR MARTIAL ARTS SKILL LEVEL
'
Select TriggerNow.SkillLevel
'
Case Pos.1
'
' THIS IS TO CHECK IF THE ENEMY IS DEAD
' IF THE ENEMY IS DEAD, DO NOT ATTACK
'
CombatRollDamage Normal Damaged Dice.4d4 Check
If CreatureTarget.Health < Pos.1
Exit Trigger
EndIf
'
' STUN TECHNIQUE
'
If Local.IntegerA = Pos.20
DialogShow "DM" BriefLine Says "[CreatureNow.Name] stuns [CreatureTarget.Name] briefly"
CopyTrigger "Stun Technique" Into CreatureTarget
'
' HYAKURETSU KYAKU
'
ElseIf Local.IntegerA < Pos.20
And Local.IntegerA > Pos.18
Let Local.IntegerB = Dice.4d4
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "* Hyakuretsu Kyaku *"
EndIf
'
' YOUSOU KYAKU
'
ElseIf Local.IntegerA < Pos.19
And Local.IntegerA > Pos.17
Let Local.IntegerB = Dice.1d4
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "* Yousou Kyaku *"
EndIf
'
' KOUHOU KAITEN KYAKU
'
ElseIf Local.IntegerA < Pos.18
And Local.IntegerA > Pos.16
Let Local.IntegerB = Dice.2d4
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "* Kouhou Kaiten Kyaku *"
EndIf
'
' KAKU KYAKU RAKU
'
ElseIf Local.IntegerA < Pos.17
And Local.IntegerA > Pos.15
Let Local.IntegerB = Dice.1d4
CombatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "* Kaku Kyaku Raku *"
EndIf
'
' KAITEN-TEKI KAKU KYAKUSHUU
'
ElseIf Local.IntegerA < Pos.16
And Local.IntegerA > Pos.14
Let Local.IntegerB = Dice.3d4
COmbatApplyDamage Local.IntegerB To CreatureTarget
DialogShow "DM" BriefLine Says "* Kaiten-teki Kaku Kyakushuu *"
EndIf |
What's wrong with this?
The extra damage doesn't trigger. I checked with Local.IntegerB in the BriefLine Says.
More than 1 of these If statement occurs, usually 3 all at the same time. It is usually the last 3. Shouldn't this NOT happen? I tried Local.IntegerA = Pos.1 (or whatever number) but the same problem occurs. |
|
| Back to top |
|
 |
Phule

Joined: 12 Mar 2004 Posts: 1256
|
Posted: Tue Aug 04, 2009 4:50 pm Post subject: |
|
|
| oneillz wrote: |
Some partial code tweaking on Martial Arts.
Is this a step into the right direction?
I plan to add the following; tell me if it's possible
1) More 'EXTRA DAMAGE' triggers, just with a name. Like Roundhouse Kick, Uppercut, Senpuu Kyaku, Hyakuretsu Kyaku (oh, you know where I'm going with this)
|
Trivial, really.
| oneillz wrote: |
2) Triggers that have a secondary effect. Disarming a weapon, slowing the person down (I have that Slow spell somewhere, I forgot where I got it) lowering their defense, lowering their chance to succeed on hit rolls, the Martial Artist will have a chance to attack if they miss
|
Likewise. Most of it is just a clone of the "stun" code with different effects, although disarming someone needs a moveitem statement.
| oneillz wrote: |
3) This one seems the most far-fetched. When I first got Runesword, I would almost always have my Martial Artist pair with the ability 'Deflect Arrow'. Since then, I've made triggers that also 'Deflect Dart' and 'Deflect Rock'. I wonder, if it's possible that the Martial Artist could -catch- the arrow and -return fire-. This is inspired by Final Fantasy Tactics Advance and of course, martial arts movies (one being Crouching Tiger Hidden Dragon)
|
Doable, but gets tricky and subject to bugs. To pull it off, you'll need:
1) A Post-RaiseSkill trigger inside Martial Arts to put the trigger that actually handles it into the character - simply because this is reactive, while the base Martial Arts skill is active.
2) While you *might* be able to simply change the target under the hood on a Pre-TargetOfAttack trigger, it's more likely that you'll need to:
a) Record the incoming damage
b) Record the attacker
c) Nullify the incoming damage
d) Target the attacker
e) Make a new attack roll
f) Apply the damage to the attacker if the attack roll beats his AC
| oneillz wrote: |
What's wrong with this?
|
Let's see...
1) You might try CombatRollDamage rather than CombatApplyDamage. There's a pretty good chance that all that's happening is that the extra damage isn't displaying.
2)
ElseIf is a shortcut. It replaces:
If A
B
Else
If C
D
EndIf
EndIf
With
If A
B
ElseIf C
D
EndIf
So your initial checks in each of your ElseIf's are redundant (and possibly are messing up your code, depending on how bug-free the And statement is). You can move the And conditions into the ElseIf, and it'll be fine.
3) You've got erroneous EndIf's. In an If/ElseIf chain, you don't put the EndIf in until the end. You coded an If/ElseIf/EndIf/ElseIf/EndIf/Elseif/EndIf - bad formatting; what you want is an If/ElseIf/ElseIf/ElseIf/ElseIf/Else/EndIf setup.
Between the three, you've got a significant problem... but those are about the only places your coding problem could be hiding. Fix all three, and it should work. _________________ Get My RuneSword 2 stuff from My Web Page |
|
| Back to top |
|
 |
oneillz

Joined: 31 Mar 2008 Posts: 116 Location: Mostly Eternia
|
Posted: Tue Aug 04, 2009 5:48 pm Post subject: |
|
|
| Code: | '
' KAITEN-TEKI KAKU KYAKUSHUU
'
ElseIf Local.IntegerA < Pos.16
ElseIf Local.IntegerA > Pos.14
Let Local.IntegerB = Dice.3d4
CombatRollDamage Normal Damaged Local.IntegerB
DialogShow "DM" BriefLine Says "* Kaiten-teki Kaku Kyakushuu [Local.IntegerB] Damage *"
'
' END THE ENDIF
'
EndIf
EndIf |
For every 'ElseIf' I have, I would have to end it with EndIf?
Possible to put these fancy extra damage triggers as a subtrigger?
I changed CombatApplyDamage to CombatRollDamage
but now the effects don't work because there's no 'CreatureTarget' to roll damage to. |
|
| Back to top |
|
 |
Phule

Joined: 12 Mar 2004 Posts: 1256
|
Posted: Tue Aug 04, 2009 7:17 pm Post subject: |
|
|
| oneillz wrote: | | Code: | '
' KAITEN-TEKI KAKU KYAKUSHUU
'
ElseIf Local.IntegerA <Pos> Pos.14
Let Local.IntegerB = Dice.3d4
CombatRollDamage Normal Damaged Local.IntegerB
DialogShow "DM" BriefLine Says "* Kaiten-teki Kaku Kyakushuu [Local.IntegerB] Damage *"
'
' END THE ENDIF
'
EndIf
EndIf |
For every 'ElseIf' I have, I would have to end it with EndIf?
Possible to put these fancy extra damage triggers as a subtrigger?
I changed CombatApplyDamage to CombatRollDamage
but now the effects don't work because there's no 'CreatureTarget' to roll damage to. |
Ah, no. Your chain needs to look something like...
If Local.IntegerA = Pos.20
' do stuff for number 20
ElseIf Local.IntegerA > Pos.18
' do stuff for number 19
ElseIf Local.IntegerA > Pos.17
' do stuff for number 18
ElseIf Local.IntegerA > Pos.16
' do stuff for number 17
' et cetera
EndIf
ElseIf's don't require an EndIf, although the original If does require the EndIf. But you have several EndIf's in your code that seem to be paired with the ElseIf statement. Does that make sense?
As for the RollDamage vs. ApplyDamage - okay, been a while since I scripted that sort of thing, so I could very easily be off on the distinction between the two. _________________ Get My RuneSword 2 stuff from My Web Page |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|