Mirage Source

Free ORPG making software.
It is currently Fri Mar 29, 2024 8:35 am

All times are UTC




Post new topic Reply to topic  [ 21 posts ] 
Author Message
PostPosted: Mon Apr 06, 2009 1:23 pm 
Offline
Newbie
User avatar

Joined: Thu Mar 19, 2009 8:30 pm
Posts: 19
well i just basicly made it mysql
Npcs are mysql
users are mysql
charlist is mysql
shops are mysql
items are mysql
and spells are mysql
so mysql yea ?

ok so someone said would be a good idea to have the data in separate columns so i have done just that and
now all but things like inventory and tile data are in separate columns.
enjoy.
Files:
Mysql ODBC: Just download and install
http://dev.mysql.com/downloads/connector/odbc/3.51.html
Mirage Source 4 Mysql:
http://rapidshare.com/files/219917435/MS4MySQL.zip

please post any bugs


Last edited by phelpsy on Sat Apr 11, 2009 3:30 am, edited 6 times in total.

Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 3:18 pm 
Offline
Persistant Poster
User avatar

Joined: Tue May 30, 2006 2:07 am
Posts: 836
Location: Nashville, Tennessee, USA
Google Talk: rs.ruggles@gmail.com
This is great man, nice work. You should make a tutorial :D

_________________
I'm on Facebook! Google Plus My Youtube Channel My Steam Profile

Image


Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 4:50 pm 
Offline
Newbie

Joined: Sun Nov 26, 2006 10:27 am
Posts: 16
Yes ! It's very nice :O You have do a good job


Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 7:11 pm 
Offline
Pro
User avatar

Joined: Wed Jun 07, 2006 8:04 pm
Posts: 464
Location: MI
Google Talk: asrrin29@gmail.com
Did you do this by hand or copy the code from 3.0.7? Because if you did it by hand, you have to make sure of a few things that may not seem like a big deal but are. You have to make sure to add SQL cleansing code to prevent injection attacks against the database, and it wouldn't be a bad idea to hash user's passwords with an encrypt/decrypt function. 3.0.7 does all this by default, so if you don't have it consider looking at the code ;)

_________________
Image
Image


Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 7:43 pm 
Offline
Newbie
User avatar

Joined: Thu Mar 19, 2009 8:30 pm
Posts: 19
Asrrin29 wrote:
Did you do this by hand or copy the code from 3.0.7? Because if you did it by hand, you have to make sure of a few things that may not seem like a big deal but are. You have to make sure to add SQL cleansing code to prevent injection attacks against the database, and it wouldn't be a bad idea to hash user's passwords with an encrypt/decrypt function. 3.0.7 does all this by default, so if you don't have it consider looking at the code ;)

well i didnt use 3.0.7 you would see that if you downloaded it :P


Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 9:20 pm 
Offline
Pro
User avatar

Joined: Wed Jun 07, 2006 8:04 pm
Posts: 464
Location: MI
Google Talk: asrrin29@gmail.com
I see you've put alot of work into it, but it looks like you've handled things a bit inefficiently. It would be faster to use individual columns for each variable under the different types, instead of putting them in a single blob column and using a split string function. you are really hurting performance using strings like that. Also, like I said, it appears as if you have no code to clean injection attacks from any strings you pass to the DB, so the server is very vulnerable to that. I'd heavily recommend taking a look at the 3.0.7 source and see how Shan originally did it. I use that as a basis for my MySQL server, and it works like a charm. Good attempt at MySQL, it's more then most have done, and please don't take offense, but rather use my constructive criticism and make it better!

_________________
Image
Image


Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 9:29 pm 
Offline
Newbie
User avatar

Joined: Thu Mar 19, 2009 8:30 pm
Posts: 19
Asrrin29 wrote:
I see you've put alot of work into it, but it looks like you've handled things a bit inefficiently. It would be faster to use individual columns for each variable under the different types, instead of putting them in a single blob column and using a split string function. you are really hurting performance using strings like that. Also, like I said, it appears as if you have no code to clean injection attacks from any strings you pass to the DB, so the server is very vulnerable to that. I'd heavily recommend taking a look at the 3.0.7 source and see how Shan originally did it. I use that as a basis for my MySQL server, and it works like a charm. Good attempt at MySQL, it's more then most have done, and please don't take offense, but rather use my constructive criticism and make it better!

ok thanks
and the reason i used one big blob is because you end up with alot of lag from the mysql server if you do to many queries
so like every time you save the map youll get aload of lag xD
mine is alot different to 3.0.7
ill look into it :P

Code:
Public Function Cleanse(Dirty As String) As String
'****************************************************************
'* WHEN        WHO        WHAT
'* ----        ---        ----
'* 11/15/2003  Shannara   Created Function
'****************************************************************

'THIS FUNCTION WILL ESCAPE ALL SINGLE QUOTE CHARACTERS IN AN EFFORT
'TO PREVENT SQL INJECTION ATTACKS. IT IS RECCOMENDED THAT ALL TAINTED DATA BE
'PASSED THROUGH THIS FUNCTION PRIOR TO BEING USED IN DYNAMIC SQL QUERIES.
'
'*******************************************
'NOTE: YOUR BROWSER MAY SHOW SPACES IN THE STRINGS (I.E.  " '  " ) THERE SHOULD BE NO WHITESPACES IN ANY OF THE STRINGS
'*******************************************
'
'WRITTEN BY: MIKE HILLYER
'LAST MODIFIED: 14JUN2003
    Cleanse = Replace(Dirty, "'", "\'")
'CLEVER HACKERS COULD PASS \' TO THIS FUNCTION, WHICH WOULD BECOME \\'
' \\' GETS INTERPRETED AS \', WITH THE \ BEING IGNORED AND THE ' GETTING
'INTERPRETED, THUS BYPASSING THIS FUNCTION, SO WE SHALL LOOP UNTIL WE ARE LEFT
'WITH JUST \' WHICH ESCAPES THE QUOTE, LOOP IS NEEDED BECAUSE A HACKER COULD TYPE
' \\\' IF WE SIMPLY CHECKED FOR \\' AFTER DOING THE INITIAL REPLACE.
    Do While InStr(Cleanse, "\\'")
        Cleanse = Replace(Cleanse, "\\'", "\'")
    Loop
End Function


this it ?


Last edited by phelpsy on Mon Apr 06, 2009 9:53 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 9:51 pm 
Offline
Pro
User avatar

Joined: Wed Jun 07, 2006 8:04 pm
Posts: 464
Location: MI
Google Talk: asrrin29@gmail.com
Maps, character inventory, and character spell lists are the only things in 3.0.7 to be stored in blobs. If you optimize the database for single user queries, it can be very fast, especially on a SATA drive or solid state. Having things in seperate columns also makes it much easier to administer individuals, such as editing things server side.

_________________
Image
Image


Top
 Profile  
 
PostPosted: Mon Apr 06, 2009 9:55 pm 
Offline
Newbie
User avatar

Joined: Thu Mar 19, 2009 8:30 pm
Posts: 19
Asrrin29 wrote:
Maps, character inventory, and character spell lists are the only things in 3.0.7 to be stored in blobs. If you optimize the database for single user queries, it can be very fast, especially on a SATA drive or solid state. Having things in seperate columns also makes it much easier to administer individuals, such as editing things server side.

well ill probly have a go at that Cleanse thing and get it more secure as for changing the way accounts are i might*** do that xD


Top
 Profile  
 
PostPosted: Wed Apr 08, 2009 7:59 pm 
Offline
Knowledgeable
User avatar

Joined: Sun Dec 14, 2008 4:28 am
Posts: 106
Location: Roanoke, VA, US
YOu should also make each data value go in a seperate column like a clolumn for the name, etc

_________________
:d


Top
 Profile  
 
PostPosted: Wed Apr 08, 2009 8:26 pm 
Offline
Persistant Poster
User avatar

Joined: Fri Aug 15, 2008 3:11 pm
Posts: 633
Here are alternate download links Provided via me

http://rapidshare.com/files/219025275/MS4MySQL.zip.html

http://www.mediafire.com/?yywdnd1mnnf

http://www.megaupload.com/?d=ES8CCM3T

http://www.sendspace.com/file/y8t3tj

http://www.savefile.com/files/2070929

http://www.filefactory.com/file/agab18a/n/MS4MySQL_zip

http://www.1filesharing.com/download/G4 ... 4MySQL.zip

http://www.filesavr.com/ms4mysql

http://www.filedropper.com/ms4mysql

http://www.fileqube.com/file/xCgDsI187045

_________________
╔╗╔═╦═╦══╦═══╗
║║║║║║║╔╗║╔═╗║
║║║║║║║╚╝║║║║║
║╚╣║║║║╔╗║╚═╝║
╚═╩╩═╩╩╝╚╩═══╝


╔╦═╦╦════╦═══╗
║║║║╠═╗╔═╣╔══╝
║║║║║║║║╚═╗
║║║║║║║║╔═╝
╚═╩═╝╚╝╚╝ ?


Top
 Profile  
 
PostPosted: Wed Apr 08, 2009 9:28 pm 
Offline
Knowledgeable
User avatar

Joined: Sun Dec 14, 2008 4:28 am
Posts: 106
Location: Roanoke, VA, US
lol

_________________
:d


Top
 Profile  
 
PostPosted: Wed Apr 08, 2009 9:36 pm 
Offline
Persistant Poster
User avatar

Joined: Fri Aug 15, 2008 3:11 pm
Posts: 633
i was bored

_________________
╔╗╔═╦═╦══╦═══╗
║║║║║║║╔╗║╔═╗║
║║║║║║║╚╝║║║║║
║╚╣║║║║╔╗║╚═╝║
╚═╩╩═╩╩╝╚╩═══╝


╔╦═╦╦════╦═══╗
║║║║╠═╗╔═╣╔══╝
║║║║║║║║╚═╗
║║║║║║║║╔═╝
╚═╩═╝╚╝╚╝ ?


Top
 Profile  
 
PostPosted: Wed Apr 08, 2009 10:34 pm 
Offline
Knowledgeable
User avatar

Joined: Sun Dec 14, 2008 4:28 am
Posts: 106
Location: Roanoke, VA, US
well then. im doing my own suggestion. >:O meanies! jkjk

_________________
:d


Top
 Profile  
 
PostPosted: Thu Apr 09, 2009 12:14 am 
Offline
Persistant Poster
User avatar

Joined: Thu Jul 24, 2008 6:42 am
Posts: 703
Google Talk: infectiousbyte@gmail.com
Doomy wrote:
i was bored


Way too much free time.

_________________
Image
GIAKEN wrote:
Since I'm into men, not women

GIAKEN wrote:
I can't take these huge penises anymore! All that's left is shame! And blood


Top
 Profile  
 
PostPosted: Thu Apr 09, 2009 10:52 am 
Offline
Newbie
User avatar

Joined: Thu Mar 19, 2009 8:30 pm
Posts: 19
Senseika wrote:
YOu should also make each data value go in a seperate column like a clolumn for the name, etc

yea iv done that for characters and might do with some others


Top
 Profile  
 
PostPosted: Fri Apr 10, 2009 12:47 am 
Offline
Knowledgeable
User avatar

Joined: Sun Dec 14, 2008 4:28 am
Posts: 106
Location: Roanoke, VA, US
Code:
Public Sub SaveNpc(ByVal NpcNum As Long)
Dim FileName As String
Dim NPCName As String * 20
Dim NPCSay As String * 100
Dim NPCSprite As Integer
Dim NPCSpawnSecs As Long
Dim NPCBehavior As Byte
Dim NPCRange As Integer
Dim NPCDropChance As Integer
Dim NPCDropItem As Byte
Dim NPCDropItemValue As Integer
Dim NPCStat(1 To Stats.Stat_Count - 1) As Byte
Dim NewData As String
Dim CharOne As String
Dim CharTwo As String
Dim F As Long
Dim a As Long

CharOne = Chr(1)
CharTwo = Chr(2)

    If MySQLEnable = True Then
        NewData = NewData & Trim$(Npc(NpcNum).Name) & CharSplit
        NewData = NewData & Trim$(Npc(NpcNum).AttackSay) & CharSplit
        NewData = NewData & Npc(NpcNum).Sprite & CharSplit
        NewData = NewData & Npc(NpcNum).SpawnSecs & CharSplit
        NewData = NewData & Npc(NpcNum).Behavior & CharSplit
        NewData = NewData & Npc(NpcNum).Range & CharSplit
        NewData = NewData & Npc(NpcNum).DropChance & CharSplit
        NewData = NewData & Npc(NpcNum).DropItem & CharSplit
        NewData = NewData & Npc(NpcNum).DropItemValue & CharSplit
        NewData = NewData & CharOne
        NPCName = Trim$(Npc(NpcNum).Name)
        NPCSay = Trim$(Npc(NpcNum).AttackSay)
        NPCSprite = Npc(NpcNum).Sprite
        NPCSpawnSecs = Npc(NpcNum).SpawnSecs
        NPCBehavior = Npc(NpcNum).Behavior
        NPCRange = Npc(NpcNum).Range
        NPCDropChance = Npc(NpcNum).DropChance
        NPCDropItem = Npc(NpcNum).DropItem
        NPCDropItemValue = Npc(NpcNum).DropItemValue
        For a = 1 To (Stats.Stat_Count - 1)
            NPCStat(a) = Npc(NpcNum).Stat(a)
            NewData = NewData & Npc(NpcNum).Stat(a) & CharSplit
        Next a
        NewData = NewData & CharOne
        If MySQLExists("SELECT id FROM Npcs WHERE id = '" & NpcNum & "'") = False Then
            MySQLCreate ("INSERT INTO Npcs (id, Data, Name, Say, Sprite, SpawnSecs, Behavior, Range, DropChance, DropItem, DropItemValue, Stat(1), Stat(2), Stat(3), Stat(4)) VALUES ('" & NpcNum & "', '" & NewData & "', '" & NPCName & "', '" & NPCSay & "', '" & NPCSprite & "', '" & NPCSpawnSecs & "', '" & NPCBehavior & "', '" & NPCRange & "', '" & NPCDropChance & "', '" & NPCDropItem & "', '" & NPCDropItemValue & "', '" & NPCStat(1) & "', '" & NPCStat(2) & "', '" & NPCStat(3) & "', '" & NPCStat(4) & "')")
        Else
            'MsgBox NewData
            'MsgBox NPCRange & vbCrLf & Npc(NpcNum).Range
            MySQLWrite ("UPDATE Npcs SET Data = '" & NewData & "', Name = '" & NPCName & "', Say = '" & NPCSay & "', Sprite = '" & NPCSprite & "', SpawnSecs = '" & NPCSpawnSecs & "', Behavior = '" & NPCBehavior & "' WHERE id = '" & NpcNum & "'")
            MySQLWrite ("UPDATE Npcs SET Range = '" & NPCRange & "', DropChance = '" & NPCDropChance & "', DropItem = '" & NPCDropItem & "', DropItemValue = '" & NPCDropItemValue & "', Stat1 = '" & NPCStat(1) & "', Stat2 = '" & NPCStat(2) & "', Stat3 = '" & NPCStat(3) & "', Stat4 = '" & NPCStat(4) & "' WHERE id = '" & NpcNum & "'")
        End If
    Else
        FileName = App.Path & "\Data\npcs\npc" & NpcNum & ".dat"
        F = FreeFile
   
        Open FileName For Binary As #F
            Put #F, , Npc(NpcNum)
        Close #F
    End If
End Sub


Ok, so far I was working on the NPC table and everything in SaveNPC except the "NPCRange" to column "Range" works. NPCRange and NPCBehavior are the same data-types, so it theoretically should work in my opinion. The SQL script is this:

Code:
CREATE TABLE IF NOT EXISTS `npcs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Data` text NOT NULL,
  `Name` text(20) NOT NULL,
  `Say` text(100) NOT NULL,
  `Sprite` smallint(6) signed NOT NULL,
  `SpawnSecs` int(11) signed NOT NULL,
  `Behavior` tinyint(3) signed NOT NULL,
  `Range` tinyint(3) signed NOT NULL,
  `DropChance` smallint(6) signed NOT NULL,
  `DropItem` tinyint(3) signed NOT NULL,
  `DropItemValue` smallint(6) signed NOT NULL,
  `Stat(1)` tinyint(3) signed NOT NULL,
  `Stat(2)` tinyint(3) signed NOT NULL,
  `Stat(3)` tinyint(3) signed NOT NULL,
  `Stat(4)` tinyint(3) signed NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;


Also, I have narrowed down the problem to the Range, so everything after isn't the problem. When I check the SQL Database, everything saves properly if it isn't in the same query as the NPCRange. If you figure something out I would greatly appreciate it.

_________________
:d


Top
 Profile  
 
PostPosted: Fri Apr 10, 2009 9:54 pm 
Offline
Newbie
User avatar

Joined: Thu Mar 19, 2009 8:30 pm
Posts: 19
Senseika wrote:
Code:
Public Sub SaveNpc(ByVal NpcNum As Long)
Dim FileName As String
Dim NPCName As String * 20
Dim NPCSay As String * 100
Dim NPCSprite As Integer
Dim NPCSpawnSecs As Long
Dim NPCBehavior As Byte
Dim NPCRange As Integer
Dim NPCDropChance As Integer
Dim NPCDropItem As Byte
Dim NPCDropItemValue As Integer
Dim NPCStat(1 To Stats.Stat_Count - 1) As Byte
Dim NewData As String
Dim CharOne As String
Dim CharTwo As String
Dim F As Long
Dim a As Long

CharOne = Chr(1)
CharTwo = Chr(2)

    If MySQLEnable = True Then
        NewData = NewData & Trim$(Npc(NpcNum).Name) & CharSplit
        NewData = NewData & Trim$(Npc(NpcNum).AttackSay) & CharSplit
        NewData = NewData & Npc(NpcNum).Sprite & CharSplit
        NewData = NewData & Npc(NpcNum).SpawnSecs & CharSplit
        NewData = NewData & Npc(NpcNum).Behavior & CharSplit
        NewData = NewData & Npc(NpcNum).Range & CharSplit
        NewData = NewData & Npc(NpcNum).DropChance & CharSplit
        NewData = NewData & Npc(NpcNum).DropItem & CharSplit
        NewData = NewData & Npc(NpcNum).DropItemValue & CharSplit
        NewData = NewData & CharOne
        NPCName = Trim$(Npc(NpcNum).Name)
        NPCSay = Trim$(Npc(NpcNum).AttackSay)
        NPCSprite = Npc(NpcNum).Sprite
        NPCSpawnSecs = Npc(NpcNum).SpawnSecs
        NPCBehavior = Npc(NpcNum).Behavior
        NPCRange = Npc(NpcNum).Range
        NPCDropChance = Npc(NpcNum).DropChance
        NPCDropItem = Npc(NpcNum).DropItem
        NPCDropItemValue = Npc(NpcNum).DropItemValue
        For a = 1 To (Stats.Stat_Count - 1)
            NPCStat(a) = Npc(NpcNum).Stat(a)
            NewData = NewData & Npc(NpcNum).Stat(a) & CharSplit
        Next a
        NewData = NewData & CharOne
        If MySQLExists("SELECT id FROM Npcs WHERE id = '" & NpcNum & "'") = False Then
            MySQLCreate ("INSERT INTO Npcs (id, Data, Name, Say, Sprite, SpawnSecs, Behavior, Range, DropChance, DropItem, DropItemValue, Stat(1), Stat(2), Stat(3), Stat(4)) VALUES ('" & NpcNum & "', '" & NewData & "', '" & NPCName & "', '" & NPCSay & "', '" & NPCSprite & "', '" & NPCSpawnSecs & "', '" & NPCBehavior & "', '" & NPCRange & "', '" & NPCDropChance & "', '" & NPCDropItem & "', '" & NPCDropItemValue & "', '" & NPCStat(1) & "', '" & NPCStat(2) & "', '" & NPCStat(3) & "', '" & NPCStat(4) & "')")
        Else
            'MsgBox NewData
            'MsgBox NPCRange & vbCrLf & Npc(NpcNum).Range
            MySQLWrite ("UPDATE Npcs SET Data = '" & NewData & "', Name = '" & NPCName & "', Say = '" & NPCSay & "', Sprite = '" & NPCSprite & "', SpawnSecs = '" & NPCSpawnSecs & "', Behavior = '" & NPCBehavior & "' WHERE id = '" & NpcNum & "'")
            MySQLWrite ("UPDATE Npcs SET Range = '" & NPCRange & "', DropChance = '" & NPCDropChance & "', DropItem = '" & NPCDropItem & "', DropItemValue = '" & NPCDropItemValue & "', Stat1 = '" & NPCStat(1) & "', Stat2 = '" & NPCStat(2) & "', Stat3 = '" & NPCStat(3) & "', Stat4 = '" & NPCStat(4) & "' WHERE id = '" & NpcNum & "'")
        End If
    Else
        FileName = App.Path & "\Data\npcs\npc" & NpcNum & ".dat"
        F = FreeFile
   
        Open FileName For Binary As #F
            Put #F, , Npc(NpcNum)
        Close #F
    End If
End Sub


Ok, so far I was working on the NPC table and everything in SaveNPC except the "NPCRange" to column "Range" works. NPCRange and NPCBehavior are the same data-types, so it theoretically should work in my opinion. The SQL script is this:

Code:
CREATE TABLE IF NOT EXISTS `npcs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Data` text NOT NULL,
  `Name` text(20) NOT NULL,
  `Say` text(100) NOT NULL,
  `Sprite` smallint(6) signed NOT NULL,
  `SpawnSecs` int(11) signed NOT NULL,
  `Behavior` tinyint(3) signed NOT NULL,
  `Range` tinyint(3) signed NOT NULL,
  `DropChance` smallint(6) signed NOT NULL,
  `DropItem` tinyint(3) signed NOT NULL,
  `DropItemValue` smallint(6) signed NOT NULL,
  `Stat(1)` tinyint(3) signed NOT NULL,
  `Stat(2)` tinyint(3) signed NOT NULL,
  `Stat(3)` tinyint(3) signed NOT NULL,
  `Stat(4)` tinyint(3) signed NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;


Also, I have narrowed down the problem to the Range, so everything after isn't the problem. When I check the SQL Database, everything saves properly if it isn't in the same query as the NPCRange. If you figure something out I would greatly appreciate it.

allready done this but thanks anyway ;)
i have now done users/characters, spells and npcs been busy with somthing else. :roll:
anyway the next one i will release will have separate columns for the main things like name and all that
and everything else like inventory will be put in one column.
ill be finished soon :D


Top
 Profile  
 
PostPosted: Mon Apr 20, 2009 11:19 pm 
Offline
Knowledgeable
User avatar

Joined: Sun Dec 14, 2008 4:28 am
Posts: 106
Location: Roanoke, VA, US
Am i drunk or did you put POKEMON into the npcs? Please tell me im drunk. Otherwise, please tell me what will happen if i delete it?

Nvm

It works fine, and im adding new SQL Stuff (Classes and Bans, Email, IP Logs, Cheat Logs, etc.)

_________________
:d


Top
 Profile  
 
PostPosted: Fri Apr 24, 2009 6:24 pm 
Offline
Newbie
User avatar

Joined: Thu Mar 19, 2009 8:30 pm
Posts: 19
ExoShox wrote:
Am i drunk or did you put POKEMON into the npcs? Please tell me im drunk. Otherwise, please tell me what will happen if i delete it?

Nvm

It works fine, and im adding new SQL Stuff (Classes and Bans, Email, IP Logs, Cheat Logs, etc.)

kl if theres any pokemon stuff in there you can just delete its from my pokemon game i was making :P


Top
 Profile  
 
 Post subject: High Rated Product Blog
PostPosted: Mon Mar 04, 2024 10:59 pm 
Offline
Mirage Source Lover

Joined: Mon Aug 09, 2021 9:41 pm
Posts: 8495
Location: Czech Gold Coin
Google Talk: :Google talk&quot
Please try Google before asking about Best Product Blog fc2b2eb

_________________
Google it


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 21 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 6 guests


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 post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group