It is currently 16 Apr 2024, 05:43
   
Text Size

Card Contributions

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Card Contributions

Postby Hexadecimal » 07 Mar 2015, 08:28

Sloth wrote:That script doesn't work because the trigger will work in any zone. Even the hand or library.
I see. Still, the way Riders currently handled leaves out the bug I've reported several times: when Riders bounce themselves, soldier token aren't created. Can someone take a look into that ?
Hexadecimal
 
Posts: 69
Joined: 08 Oct 2013, 20:36
Has thanked: 6 times
Been thanked: 2 times

Re: Card Contributions

Postby squee1968 » 09 Sep 2015, 15:19

Since Friarsol implemented Psychic Theft it reminded me of another similar card not yet in Forge. I playtested this briefly, and it seemed to work, but as almost always, there's probably something wrong with it.

Code: Select all
Name:Elkin Lair
ManaCost:3 R
Types:World Enchantment
T:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ At the beginning of each player's upkeep, that player exiles a card at random from his or her hand. The player may play that card this turn. At the beginning of the next end step, if the player hasn't played the card, he or she puts it into his or her graveyard.
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | DefinedPlayer$ TriggeredPlayer | ChangeNum$ 1 | Hidden$ True | Mandatory$ True | AtRandom$ True | RememberChanged$ True | SubAbility$ ElkinEffect
SVar:ElkinEffect:DB$ Effect | StaticAbilities$ ElkinPlay | Duration$ Permanent | RememberObjects$ Remembered | Triggers$ TrigReturn,TrigCast,TrigLandPlayed | SVars$ ElkinSVar,RemoveEffect,DBReturn | SubAbility$ DBResetSVar
SVar:ElkinPlay:Mode$ Continuous | Affected$ Card.IsRemembered | AddHiddenKeyword$ May be played | EffectZone$ Command | AffectedZone$ Exile | CheckSVar$ ElkinSVar | Description$ The player may play that card this turn.
# Even though the Effect is "Permanent", it's not really permanent
SVar:DBResetSVar:DB$ StoreSvar | SVar$ ElkinSVar | Type$ Number | Expression$ 1 | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:ElkinSVar:Number$1
# Return the card as a normal trigger
SVar:TrigReturn:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | TriggerZones$ Command | Execute$ DBReturn | TriggerDescription$ At the beginning of the next end step, if the player hasn't played the card, he or she puts it into his or her graveyard.
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Graveyard | SubAbility$ RemoveEffect
SVar:TrigLandPlayed:Mode$ LandPlayed | ValidCard$ Land.IsRemembered | Static$ True | TriggerZones$ Command | Execute$ RemoveEffect
SVar:RemoveEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
# Remove Effect when the card is played
SVar:TrigCast:Mode$ SpellCast | ValidCard$ Card.IsRemembered | Static$ True | TriggerZones$ Command | Execute$ RemoveEffect
SVar:RemAIDeck:True
SVar:RemRandomDeck:True
SVar:Picture:http://www.wizards.com/global/images/magic/general/elkin_lair.jpg
Oracle: At the beginning of each player's upkeep, that player exiles a card at random from his or her hand. The player may play that card this turn. At the beginning of the next end step, if the player hasn't played the card, he or she puts it into his or her graveyard.
EDIT: Lol, I knew something like that was coming although the other cards I was basing this off of didn't have anything like that. Fixed. Thanks again, Friarsol, and congrats on your new arrival.
Last edited by squee1968 on 09 Sep 2015, 16:26, edited 1 time in total.
squee1968
 
Posts: 254
Joined: 18 Nov 2011, 03:28
Has thanked: 110 times
Been thanked: 45 times

Re: Card Contributions

Postby friarsol » 09 Sep 2015, 15:47

squee1968 wrote:Since Friarsol implemented Psychic Theft it reminded me of another similar card not yet in Forge. I playtested this briefly, and it seemed to work, but as almost always, there's probably something wrong with it.
It also needs a LandPlayed static trigger like Grinning Totem does to clear the effect.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Contributions

Postby Hanmac » 18 Dec 2015, 06:24

I don't know if it's the right Thread for it, but for one of the cards I want to script from Oath I need "withDevoid" similar to "withDeathtouch" or does that already work?
Hanmac
 
Posts: 954
Joined: 06 May 2013, 18:44
Has thanked: 229 times
Been thanked: 158 times

Re: Card Contributions

Postby friarsol » 18 Dec 2015, 15:04

Hanmac wrote:I don't know if it's the right Thread for it, but for one of the cards I want to script from Oath I need "withDevoid" similar to "withDeathtouch" or does that already work?
Should already work it's setup as "with<Keyword>"
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Contributions

Postby fsecco » 22 Dec 2015, 13:37

I've been wanting to script Chaos Orb as it works in Old School 93/94 format, having to target a permanent instead of destroying everything it touches. It obviously can't be flipped, so I'm assuming the players get 100% accuracy with it.

What I could come up was 1, T, Sac Orb: Destroy target permanent.

But that's not perfect for 2 reasons:
1) Chaos Orb doesn't target.
2) You don't sacrifice it, but instead it is destroyed upon resolution (so you can combo with Guardian Beast).

Any way to implement this?

This is how it looks now:
Code: Select all
Name:Chaos Orb
ManaCost:2
Types:Artifact
A:AB$ Destroy | Cost$ 1 T Sac<1/CARDNAME> | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | SpellDescription$ Destroy target permanent.
SVar:Picture:http://www.wizards.com/global/images/magic/general/chaos_orb.jpg
Oracle:{1}, {T}, Sacrifice Chaos Orb: Destroy target permanent.
fsecco
 
Posts: 24
Joined: 11 Jul 2014, 18:37
Has thanked: 0 time
Been thanked: 3 times

Re: Card Contributions

Postby TalpanianEmperor » 03 Jan 2016, 12:32

I came up with this temporary version of General Tazri for testing purposes.

The ally search works fine, but I had to bootleg her second ability from Bloom Tender and Jazal, and it hasn't worked yet.

Code: Select all
Name:General Tazri
ManaCost:4 W
Types:Legendary Creature Human Ally
PT:3/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Creature+Ally | ChangeNum$ 1
A:AB$ PumpAll | Cost$ W U B R G | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckW | References$ CheckW | ConditionSVarCompare$ GE1 | SubAbility$ PumpU | Svar:PumpU:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckU | References$ CheckU | ConditionSVarCompare$ GE1 | SubAbility$ PumpB | Svar:PumpB:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckB | References$ CheckB | ConditionSVarCompare$ GE1 | SubAbility$ PumpR | Svar:PumpR:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSvar$ CheckR | References$ CheckR | ConditionSVarCompare$ GE1 | SubAbility$ PumpG | Svar:PumpG:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckG | References$ CheckG | ConditionSVarCompare$ GE1
SVar:CheckW:Count$Valid Ally+White
SVar:CheckU:Count$Valid Ally+Blue
SVar:CheckB:Count$Valid Ally+Black
SVar:CheckR:Count$Valid Ally+Red
SVar:CheckG:Count$Valid Ally+Green
SVar:Picture:http://www.wizards.com/global/images/magic/general/General_Tazri.jpg
Oracle:When General Tazri enters the battlefield, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.\n{W}{U}{B}{R}{G}: Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures.
"Each year that passes rings you inwardly with memory and might. Wield your heart, and the world will tremble."
-- Doran, The Siege Tower.
TalpanianEmperor
 
Posts: 37
Joined: 06 Oct 2013, 07:03
Has thanked: 6 times
Been thanked: 1 time

Re: Card Contributions

Postby Myrd » 03 Jan 2016, 16:23

fsecco wrote:2) You don't sacrifice it, but instead it is destroyed upon resolution (so you can combo with Guardian Beast).
You can do:

Code: Select all
... SubAbility$ DestroySelf
SVar:DestroySelf:DB$ Destroy | Cost$ 0 | Defined$ Self
Myrd
 
Posts: 87
Joined: 24 Nov 2014, 05:58
Has thanked: 4 times
Been thanked: 32 times

Re: Card Contributions

Postby Marek14 » 04 Jan 2016, 08:53

TalpanianEmperor wrote:I came up with this temporary version of General Tazri for testing purposes.

The ally search works fine, but I had to bootleg her second ability from Bloom Tender and Jazal, and it hasn't worked yet.

Code: Select all
Name:General Tazri
ManaCost:4 W
Types:Legendary Creature Human Ally
PT:3/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | OptionalDecider$ You | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Card.Creature+Ally | ChangeNum$ 1
A:AB$ PumpAll | Cost$ W U B R G | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckW | References$ CheckW | ConditionSVarCompare$ GE1 | SubAbility$ PumpU | Svar:PumpU:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckU | References$ CheckU | ConditionSVarCompare$ GE1 | SubAbility$ PumpB | Svar:PumpB:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckB | References$ CheckB | ConditionSVarCompare$ GE1 | SubAbility$ PumpR | Svar:PumpR:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSvar$ CheckR | References$ CheckR | ConditionSVarCompare$ GE1 | SubAbility$ PumpG | Svar:PumpG:DB$ PumpAll | NumAtt$ 1 | NumDef$ 1 | ConditionCheckSVar$ CheckG | References$ CheckG | ConditionSVarCompare$ GE1
SVar:CheckW:Count$Valid Ally+White
SVar:CheckU:Count$Valid Ally+Blue
SVar:CheckB:Count$Valid Ally+Black
SVar:CheckR:Count$Valid Ally+Red
SVar:CheckG:Count$Valid Ally+Green
SVar:Picture:http://www.wizards.com/global/images/magic/general/General_Tazri.jpg
Oracle:When General Tazri enters the battlefield, you may search your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.\n{W}{U}{B}{R}{G}: Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures.
My version looks like this (uses Soul of Ravnica as template):
Code: Select all
Name:General Tazri
ManaCost:4 W
Types:Legendary Creature Human Ally
PT:3/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may serach your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Creature.Ally | ChangeNum$ 1 | ShuffleNonMandatory$ True
A:AB$ PumpAll | Cost$ W U B R G | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+White+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllU | SpellDescription$ Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures.
SVar:PumpAllU:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Blue+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllB
SVar:PumpAllB:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Black+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllR
SVar:PumpAllR:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Red+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllG
SVar:PumpAllG:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Green+YouCtrl | ConditionCompare$ GE1
SVar:Picture:http://www.wizards.com/global/images/magic/general/general_tazri.jpg
Oracle:When General Tazri enters the battlefield, you may serach your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.\n{W}{U}{B}{R}{G}: Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures.
Marek14
Tester
 
Posts: 2759
Joined: 07 Jun 2008, 07:54
Has thanked: 0 time
Been thanked: 296 times

Re: Card Contributions

Postby TalpanianEmperor » 04 Jan 2016, 09:33

Marek14 wrote:My version looks like this (uses Soul of Ravnica as template):
Code: Select all
Name:General Tazri
ManaCost:4 W
Types:Legendary Creature Human Ally
PT:3/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may serach your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.
SVar:TrigChange:AB$ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | ChangeType$ Creature.Ally | ChangeNum$ 1 | ShuffleNonMandatory$ True
A:AB$ PumpAll | Cost$ W U B R G | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+White+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllU | SpellDescription$ Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures.
SVar:PumpAllU:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Blue+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllB
SVar:PumpAllB:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Black+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllR
SVar:PumpAllR:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Red+YouCtrl | ConditionCompare$ GE1 | SubAbility$ PumpAllG
SVar:PumpAllG:DB$ PumpAll | ValidCards$ Creature.Ally+YouCtrl | NumAtt$ 1 | NumDef$ 1 | ConditionPresent$ Creature.Ally+Green+YouCtrl | ConditionCompare$ GE1
SVar:Picture:http://www.wizards.com/global/images/magic/general/general_tazri.jpg
Oracle:When General Tazri enters the battlefield, you may serach your library for an Ally creature card, reveal it, put it into your hand, then shuffle your library.\n{W}{U}{B}{R}{G}: Ally creatures you control get +X/+X until end of turn, where X is the number of colors among those creatures.
If it works, I'll take it :)
Thanks Marek!
"Each year that passes rings you inwardly with memory and might. Wield your heart, and the world will tremble."
-- Doran, The Siege Tower.
TalpanianEmperor
 
Posts: 37
Joined: 06 Oct 2013, 07:03
Has thanked: 6 times
Been thanked: 1 time

Re: Card Contributions

Postby tjtillman » 24 Jan 2016, 16:53

I've tried this out and it seems to work as I would expect when I cast it. However, when I try to put the card in play for the CPU (with plenty of valid targets) it won't go onto the stack. Any suggestions?

Code: Select all
Name:Nissa's Judgment
ManaCost:4 G
Types:Sorcery
A:SP$ PutCounter | Cost$ 4 G | AILogic$ PowerDmg | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DealToCreature | SpellDescription$ Support 2. (Put a +1/+1 counter on each of up to two target creatures.)
SVar:DealToCreature:DB$ EachDamage | Cost$ 0 | AILogic$ PowerDmg | ValidCards$ Creature.YouCtrl+counters_GE1_P1P1 | NumDmg$ X | References$ X | TgtPrompt$ Choose target creature opponent controls | ValidTgts$ Creature.OppCtrl | SpellDescription$ Each creature you control with a +1/+1 counter deals damage equal to its power to target creature opponent controls.
SVar:X:Count$CardPower
SVar:Picture:http://www.wizards.com/global/images/magic/general/nissas_judgment.jpg
Oracle:Support 2. (Put a +1/+1 counter on each of up to two target creatures.) Choose up to one target creature an opponent controls. Each creature you control with a +1/+1 counter on it deals damage equal to its power to that creature.
tjtillman
 
Posts: 202
Joined: 16 Sep 2013, 17:47
Has thanked: 0 time
Been thanked: 2 times

Re: Card Contributions

Postby friarsol » 24 Jan 2016, 19:58

tjtillman wrote:I've tried this out and it seems to work as I would expect when I cast it. However, when I try to put the card in play for the CPU (with plenty of valid targets) it won't go onto the stack. Any suggestions?

[/code]
Looks right to me, I quickly took a peek and the AI for EachDamage (forge\forge-ai\src\main\java\forge\ai\ability\DamageEachAi.java) is a bit... lacking. We can mark this script with:
SVar:RemAIDeck:True

so the AI won't add it to its deck for limited, and users will get a warning about it for Constructed play. Basically the AI here would need to be expanded to consider targeting creatures too, and looking briefly, it doesn't even seem to be doing what it already does properly. It's not even tabulating up the damage, and not considering the multiple damage sources.
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Card Contributions

Postby Agetian » 24 Jan 2016, 20:33

friarsol wrote:
tjtillman wrote:I've tried this out and it seems to work as I would expect when I cast it. However, when I try to put the card in play for the CPU (with plenty of valid targets) it won't go onto the stack. Any suggestions?

[/code]
Looks right to me, I quickly took a peek and the AI for EachDamage (forge\forge-ai\src\main\java\forge\ai\ability\DamageEachAi.java) is a bit... lacking. We can mark this script with:
SVar:RemAIDeck:True
I added the card in r30720, marked as AI-unplayable for now until someone can come up with a better AI implementation that can handle it. :)

- Agetian
Agetian
Programmer
 
Posts: 3471
Joined: 14 Mar 2011, 05:58
Has thanked: 676 times
Been thanked: 561 times

Re: Card Contributions

Postby tjtillman » 26 Jan 2016, 00:54

friarsol wrote:Looks right to me, I quickly took a peek and the AI for EachDamage (forge\forge-ai\src\main\java\forge\ai\ability\DamageEachAi.java) is a bit... lacking. We can mark this script with:
SVar:RemAIDeck:True

so the AI won't add it to its deck for limited, and users will get a warning about it for Constructed play. Basically the AI here would need to be expanded to consider targeting creatures too, and looking briefly, it doesn't even seem to be doing what it already does properly. It's not even tabulating up the damage, and not considering the multiple damage sources.
So one idea I considered in the script was using RepeatEach and then DealDamage individually but forcing the same target each time. Not sure how the AI would handle that, perhaps just aiming to kill whichever creature the first of the Each could kill on its own. If that's so it wouldn't be optimal, but perhaps at least usable by the CPU then?
tjtillman
 
Posts: 202
Joined: 16 Sep 2013, 17:47
Has thanked: 0 time
Been thanked: 2 times

Re: Card Contributions

Postby fsecco » 01 Feb 2016, 13:06

The image link doesn't work... I guess you could use http://mythicspoiler.com/c15/cards/mizzixsmastery.jpg

Also, it doesn't exile itself... I don't know how to do that without messing the effect.

Code: Select all
Name:Mizzix’s Mastery
ManaCost:3 R
Types:Sorcery
A:SP$ ChangeZone | Cost$ 3 R | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target card in a graveyard | ValidTgts$ Instant.YouCtrl,Sorcery.YouCtrl | RememberChanged$ True | SubAbility$ DBPump | SpellDescription$ Exile target card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. Exile Mizzix's Mastery.
SVar:DBPump:DB$ Pump | Defined$ Remembered | KW$ May be played without paying its mana cost | PumpZone$ Exile | SubAbility$ DBCleanup
A:SP$ ChangeZoneAll | Cost$ 5 R R R | ChangeType$ Instant.YouCtrl,Sorcery.YouCtrl | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True | PrecostDesc$ Overload | CostDesc$ {5}{R}{R}{R} | NonBasicSpell$ True | SubAbility$ DBPump | SpellDescription$ Exile each card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. Exile Mizzix's Mastery.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Picture:http://www.wizards.com/global/images/magic/general/mizzixs_mastery.jpg
Oracle:Exile target card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. Exile Mizzix's Mastery.\nOverload Overload {5}{R}{R}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")
fsecco
 
Posts: 24
Joined: 11 Jul 2014, 18:37
Has thanked: 0 time
Been thanked: 3 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 45 guests


Who is online

In total there are 45 users online :: 0 registered, 0 hidden and 45 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 45 guests

Login Form