Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

The evolution and state of Eclipse.


DrNova
 Share

Recommended Posts

@lel:

> You guys are all just too lazy to learn VB6.

That isn't the reason.

I don't use EO because I feel like making my own UI would be defacing the beauty that it currently is. If anything, I miss the old EO that lacked the smooth UI. I felt like I could customize it from the bottom, up.
Link to comment
Share on other sites

  • Replies 111
  • Created
  • Last Reply

Top Posters In This Topic

That's why I had the interface as it was. Of course everyone complained about it being grey and boring and how they couldn't get it to look good.

So I added a full GUI system. Then everyone complained about how it was hard to customise and how everyone's game looked the same because no one bothered to change it.

You just can't win on this forum. Anything you do is going to have people who like it and dislike it. In the end you just do whatever the hell you want and stop caring what everyone else thinks. It's the only way to go, really. I've learnt a lot of very important life skills after dealing with people on here for so long. Try and please everyone and you'll never get anywhere. There will always be people who simply don't get along with you and don't like what you do. If you sit there worrying about it you'll just get depressed.

Be confident and do what you want. Since I stated living by these rules I'm a hell of a lot more popular in real life and feel much better about my lot in general.
Link to comment
Share on other sites

@Robin:

> That's why I had the interface as it was. Of course everyone complained about it being grey and boring and how they couldn't get it to look good.
>
> So I added a full GUI system. Then everyone complained about how it was hard to customise and how everyone's game looked the same because no one bothered to change it.
>
> You just can't win on this forum. Anything you do is going to have people who like it and dislike it. In the end you just do whatever the hell you want and stop caring what everyone else thinks. It's the only way to go, really. I've learnt a lot of very important life skills after dealing with people on here for so long. Try and please everyone and you'll never get anywhere. There will always be people who simply don't get along with you and don't like what you do. If you sit there worrying about it you'll just get depressed.
>
> Be confident and do what you want. Since I stated living by these rules I'm a hell of a lot more popular in real life and feel much better about my lot in general.

If that was the case, why didn't you stay consistent with your principles by keeping the layout general (grey)?
Link to comment
Share on other sites

The whole problem is that everyone who can program is getting sick of doing things for us who can't. Like my earlier post, maybe we should have someone dissect EO and put scripting into it for those of us who can't. We just need to tell people that whilst scripting is easier, that's not a reason to just throw systems together.

Alot of people need an attitude adjustment in the meantime. If we were nicer to the newbs and helped them even if their question is 'Server's down, how can I sort that?' just tell them to go in the server folder and kindly point them in the direction of the official guides and FAQ.

EO is better than ES perhaps tenfold, but if scripting was re-added we'd maybe have some more new ideas in. Personally I think everyone just mainly wants the three big things, Pets, Quests and Speech Bubbles. If we did have some good scripts for these we'd have many more people releasing their own original tutorials or expansions on the official ones.

Maybe we could set it up like the projects forum? So the tutorial is only added if it's properly written. I understand no-one wants to take over development of EO, and Eclipse C is going to be a while, but this might be a good comprimise in the meantime.

@⠛ʍEи:

> And you guys need to stop worshiping Robin, and start worshiping me again!

You and your foul-eggnog-hating-temptress ways. Never.
Link to comment
Share on other sites

How about you all stop talking about what the developers should do and actually do it yourself?

You can keep talking about doing this shit all day but people have been doing this for years. No one ever does.

Again, the reason EO is the way it is is because I'm the one who made it. No one else wants to do any work. Ideas are cheap, the ability and drive to make them a reality is a rarity.

If you want something done then you need to do it yourself. Simple as that.
Link to comment
Share on other sites

Adding scripting into EO is well beyond my capabilities and I'm pretty sure if I wrote a thread about ES and people using it, it would be deleted. I think Renzo's hit the nail on the head, maybe we should let people casually use ES.

Think, Robin, about Crystalshire. It's a simple, but glossy 2D ORPG. It has good graphics, doesn't tax your brain to play it and there's zero bugs. That's your idea of an ORPG.

Then think about Ambardia. In the short time I spent playing it before it went into re-development, I enjoyed it massively. At first I blanched at the graphics, but after a while it felt like an old game I'd been playing for years and felt comfortable in. And in that's in two weeks of play altogether. The features were fun to delve into and the whole feel of 'This game was put together by an amateur group of people who just made whatever they liked' just stuck.

Ecipse Stable is full of bugs, that's true. But those of us who might benefit from it as casual developers are being cut off with 'Don't use Stable, it'll kill your project'. We're not looking for something to be the next Runescape or WoW. Maybe just an all-purpose board with tutorials and questions and answers for the use of ES might be a good idea. If we can get ES up and running again, and try and be nicer to people, we'd all be better for it.
Link to comment
Share on other sites

> EO is better than ES perhaps tenfold, but if scripting was re-added we'd maybe have some more new ideas in.

I totally disagree. How are scripting and ideas connected?
Btw you can script, you just have to do it in VB6 and it's called coding.
There isn't a big.. No not even a small difference between it. Except for Syntax.. MAYBE.
You should USE what you have. There are possibilities.
Scripting is not needed if you have the source.
Link to comment
Share on other sites

@Bonk:

> Then think about Ambardia.

I'll cut you off right there. Ambardia fell under its own weight. Even with Joe and I trying to fix the problems it was still bugged to high hell. I couldn't even get it to run through the IDE without it crashing.

This is what happens when you build a project on such a flawed foundation. Joe and I tried to fix everything. It was too much work. That thing is beyond help. So I made EO instead.

I am never going to touch ES again and until someone come along and literally re-programs the entire thing no one else will either.

Please stop talking about a matter you don't understand. Ask Richy. He's the co-owner and programmer from Ambardia. He'll tell you the exact same thing.

How would you feel if you spent years building a project like that only for it to fail because you didn't take people's advice in the past. That's why I cut out all support for EE and ES. People are too damn stubborn to listen to reason. If I let people use either engine then I'd be letting them go down a path which would eventually lead to their project's death. I won't do that, regardless of how many small minded people hate me for it.

In fact I hugely prefer the EO version of Ambardia. It's a huge improvement which couldn't have occurred had I not released my work and cut off support for it's retarded cousin.

![](http://www.funtouchgamer.com/richy/COAUpdater/Quest.PNG)
Link to comment
Share on other sites

Because a lot of people won't mess around with the source, it's too daunting. There's no new people bringng new ideas.

VB6 programming is just too confusing for me. I've had days when I've thought, 'Right, I'll sit down and learn these tutorials on VB6', but it just doesn't click for me. I like the idea of just neatly writing up scripts and plugging them into the engine appeals to me. Maybe then, when we have a simple way of doing things, it will evolve and people will know how to program properly in VB6.

@Robin, then maybe scripting should be added to a split-off of EO.

@Homepage:

> The communities were just the same old people arguing over programming methods yet never actually making any games. It was a sorry state of affairs and an ugly end to a bunch of communities which had such a long and vibrant past.

We're going down the same slippery slope that all the other communities did. I don't want to see Eclipse die, but I'd rather see Eclipse dead than full of people who scare off the newbs, judge others, argue and generally be arseholes to each other, _which is what is happenening now._Take a wild stab at how many people must have buggered off to G2D, Xtremeworlds or the other engines because of how people have copied you and insulted their work. If we don't get a handle on Eclipse we're going to end up in the same position Mirage Realms, Elysium and Player Worlds are in now - we're going to lose Eclipse itself.

Break down the old Eclipse that everyone knew and loved, and what did we have? A fun community, an engine full of features, and people who were ready to help each other. Nowadays we have a 'base', an unfriendly community and a small army of idiots who copy your every move, Robin. You've fostered a community of hostility and no-one can or will do anything for fear of retribution. You're saying that if you want something done, you have to do it yourself, but the state of Eclipse is suffocating creativity and rendering impossible situations to make something good without being attacked by everyone. And no-one, **no-one** who can do something about this will do it.
Link to comment
Share on other sites

Oh please. Stop acting like the people who leave this community like that are the ones who made it a fun place to be. People leave Eclipse because they're removed. These are the people who argue, fight and break the rules.

The community has nothing to do with the engine. Eclipse was slowing down long before I released Origins and a long, _long_ time before it became the de-facto version and EE and ES were phased out. Keep in mind those engines have been removed for less than a year now. Origins has been around for 3 years. Your argument doesn't even make logical sense in the correlation of events, never mind coming across as the cause.

The older generation were simply moving on. All the people who were teenagers moved on to college and work. All the young adults moved on to start families and businesses. After you do a hobby for a certain amount of time you simply get bored and do something else.

People still log on from time to time to see how things are going. Everyone still keeps in touch. As I said before, if you've ever been any community which has been around for over half a decade then you'll recognise this. _Every single community goes through this._ It has nothing to do with the engine and you're a fool for even suggesting it.

Also, don't take my shit out of context. The older communities died because they had no web presence. They relied solely on a few single cases of community boosting all of which happened years before the places got shut down. The reason they died was because of a starved community and a lack of innovation. Eclipse has neither, although it bloody well would have done had I not taken over control of the engine.
Link to comment
Share on other sites

@Bonk:

> Because a lot of people won't mess around with the source, it's too daunting. There's no new people bringng new ideas.
>
> VB6 programming is just too confusing for me. I've had days when I've thought, 'Right, I'll sit down and learn these tutorials on VB6', but it just doesn't click for me. I like the idea of just neatly writing up scripts and plugging them into the engine appeals to me. Maybe then, when we have a simple way of doing things, it will evolve and people will know how to program properly in VB6.
>
> @Robin, then maybe scripting should be added to a split-off of EO.

Ideas are cheap. Robin always says that, and it's true. If you step into game development, you're going to need to know your shit to make something worth a damn, or get someone who knows their shit and work together on it..

People call this thread for the sake of just hobbyist games, but why waste time with them if you're not going to give a shit about how they perform? I should have thought that 3 years ago with Ambardia, Me and Ambard both put a lot of time in that game and we did with the heart that maybe EE would be able to handle it. 400kb of script later, game crashes periodically throughout the day, players complaining about lost items and experience points, it just became more of a nightmare than a development, that's why me and Ambard just said hell with it, and began our own projects on other engines. I'm hoping Ambard does choose EO over G2D, because with everything that I've added in, I still got the same FPS as if I downloaded a clean EO.

But for the minority, maybe EE is worthy, for a 2 minute 2 map game, I'm sure they can find EE on google somewhere if that's the intention, but Robin did what he did to protect people like me, that don't want to lose 3 years of hard work because of a flawed engine unless by chance I duck it up myself which would be my own fault, and I can accept that a lot more then doing everything to find out that the developer of the engine had a bad bug that literally kills the player base I try to obtain..

People can ramble all day about it, the truth is the truth, it may lack the features but I know it'll hold the weight of Ambardia a lot better than that of EE.
Link to comment
Share on other sites

Just to show a sneak peak of what was in Ambardia's script as of Jan. 9th 2009\. This was even before we even broke this main.txt up into separate notepads because the server couldn't even load all this at once.

>! ```
' Eclipse Evolution 2.7 Scripting File
>! ' Global Variables
Public GameName
Public MAX_MAPS
Public MOTD
>! ' Color Constants
Public Const BLACK = 0
Public Const BLUE = 1
Public Const GREEN = 2
Public Const CYAN = 3
Public Const RED = 4
Public Const MAGENTA = 5
Public Const BROWN = 6
Public Const GREY = 7
Public Const DARKGREY = 8
Public Const BRIGHTBLUE = 9
Public Const BRIGHTGREEN = 10
Public Const BRIGHTCYAN = 11
Public Const BRIGHTRED = 12
Public Const PINK = 13
Public Const YELLOW = 14
Public Const WHITE = 15
>! ' Admin Constants
Public Const ADMIN_MONITER = 1
Public Const ADMIN_MAPPER = 2
Public Const ADMIN_DEVELOPER = 3
Public Const ADMIN_CREATOR = 4

>! ' Executes when the server initially loads.
Sub OnServerLoad()
GameName = GetVar("Data.ini", "CONFIG", "GameName")
MAX_MAPS = GetVar("Data.ini", "MAX", "MAX_MAPS")
MOTD = GetVar("MOTD.ini", "MOTD", "Msg")
End Sub
>! ' Executes when the scripts are reloaded.
Sub OnScriptReload()
GameName = GetVar("Data.ini", "CONFIG", "GameName")
MAX_MAPS = GetVar("Data.ini", "MAX", "MAX_MAPS")
MOTD = GetVar("MOTD.ini", "MOTD", "Msg")
End Sub
>! ' Executes the MOTD is changed by the client.
Sub ChangeMOTD()
MOTD = GetVar("MOTD.ini", "MOTD", "Msg")
End Sub
>! '************************************Joining*******************************************
Sub JoinGame(index)             
'**************************************************************************************
>! Dim GameName
Dim MOTD
Dim getadmin
Dim charname
Dim charnum
Dim i
charname = GetPlayerLogin(index)
charnum = GetPlayerCharNum(index)
GameName = Trim(GetVar("Data.ini", "CONFIG", "GameName"))
MOTD = GetVar("motd.ini", "MOTD", "Msg")
>! If GetPlayerMap(index) = 113 Or GetPlayerMap(index) = 141 Or GetPlayerMap(index) = 142 Or GetPlayerMap(index) = 143 Then
Call PlayerWarp(index, 25, 9, 6)
Call lockitems(index, 0)
End If
>! Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena", 0)
Call PutVar("Scripts\GWins.ini", "GLIST", "" & GetPlayerGuild(index) & "", 0)
Call PutVar("Scripts\" & "PlayerWins.ini", "WINS", "" & GetPlayerName(index) & "" & GetPlayerCharNum(index) & "", 0)
>! Call spellanim(9, getplayermap(index), getplayerx(index), getplayery(index))
Call PlayerMsg(index, "Welcome to the Royal Lands of " & GameName & "!", 14)
If Trim(MOTD) <> "" Then
        Call PlayerMsg(index, "MOTD: " & MOTD, 10)
End If
Call GlobalMsg("" & getplayername(index) & " has joined " & GameName & "!", 10)
Call SendWhosOnline(index)
>! If GetVar("Mail\" & GetPlayerName(index) & ".ini", "General", "Exists") = "" Then
Call MailMakeIni(index)
End If
Call SendMailUpdate(index)
End Sub
>! '***********************************Leaving********************************************
Sub LeftGame(index)
'**************************************************************************************
Dim GameName         
>! If GetVar("Scripts\awaycount.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "") = "1" Then
Call LockPlayer(index, 0)
Call LockItems(index, 0)
Call LockSpells(index, 0)
Call SetPlayerName(Index, Trim(GetVar("Scripts\afk.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "")))
Call SendPlayerData(index)
Call GlobalMsg("" & GetPlayerName(index) & " is back from being AFK.", 10)
Call PutVar("Scripts\awaycount.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "", 0)
End If
>! If GetVar("scripts\charextras\" & getplayername(index) & ".ini", "TEMP", "Transed") = "1" Then     
Call PutVar("scripts\charextras\" & getplayername(index) & ".ini", "TEMP", "Transed", 0) 
Call spellanim(7, getplayermap(index), getplayerx(index), getplayery(index))
Call setplayersprite(index, GetVar("scripts\charextras\" & getplayername(index) & ".ini", "TEMP", "OldSprite"))
Call RemoveTimer("TMRTEST " & index & ", 1")
End If
Call spellanim(9, getplayermap(index), getplayerx(index), getplayery(index))
Call GlobalMsg(GetPlayerName(index) & " has left Ambardia!", 10)
End Sub
>! '***************************************Dropping**************************************
Sub DropItems(index)           
'**************************************************************************************
Call Playermsg(index, "You rummage through your belongings. It appears death did not affect them!", 10)
End Sub
>! '*****************************************Death*****************************************
Sub OnDeath(index)
'**************************************************************************************
If GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & ".ini", "QUESTS", "NotNew") = "" Then
Call PlayerWarp(index, 797, 9, 11)
Else
Call playerwarp(index, 220, 10, 12)
Call lockitems(index, 0)
End If
End Sub
>! '***************************************PVPDeath***************************************
Sub OnPvPDeath(attacker,victim)
'**************************************************************************************
Dim A
Dim V
>! A = GetVar("accounts\" & GetPlayerLogin(attacker) & "\char" & GetPlayerCharNum(attacker) & "Wins.ini", "CHAR", "W")
V = GetVar("accounts\" & GetPlayerLogin(victim) & "\char" & GetPlayerCharNum(victim) & "Losses.ini", "CHAR", "L")

If GetPlayerIP(attacker) = GetPlayerIP(victim) Then
Call PlayerMsg(attacker, "Exploiting PvP Stats is forbidden!", 14)
ElseIf A = "" And V = "" Then
Call PutVar("accounts\" & GetPlayerLogin(attacker) & "\char" & GetPlayerCharNum(attacker) & "Wins.ini", "CHAR", "W", 1)
Call PutVar("accounts\" & GetPlayerLogin(victim) & "\char" & GetPlayerCharNum(victim) & "Losses.ini", "CHAR", "L", 1)
Call MapMsg(GetPlayerMap(attacker), "" & GetPlayerName(attacker) & " just killed " & GetPlayerName(victim) & "!", 12)
Call SetPlayerPK(attacker, GetPlayerPK(attacker) + 1)
Call SendPlayerData(attacker)
Call lockitems(victim, 0)
ElseIf A = "" Then
Call PutVar("accounts\" & GetPlayerLogin(attacker) & "\char" & GetPlayerCharNum(attacker) & "Wins.ini", "CHAR", "W", 1)
Call PutVar("accounts\" & GetPlayerLogin(victim) & "\char" & GetPlayerCharNum(victim) & "Losses.ini", "CHAR", "L", V + 1)
Call MapMsg(GetPlayerMap(attacker), "" & GetPlayerName(attacker) & " just killed " & GetPlayerName(victim) & "!", 12)
Call SetPlayerPK(attacker, GetPlayerPK(attacker) + 1)
Call SendPlayerData(attacker)
Call lockitems(victim, 0)
ElseIf V = "" Then
Call PutVar("accounts\" & GetPlayerLogin(victim) & "\char" & GetPlayerCharNum(victim) & "Losses.ini", "CHAR", "L", 1)
Call PutVar("accounts\" & GetPlayerLogin(attacker) & "\char" & GetPlayerCharNum(attacker) & "Wins.ini", "CHAR", "W", A + 1)
Call MapMsg(GetPlayerMap(attacker), "" & GetPlayerName(attacker) & " just killed " & GetPlayerName(victim) & "!", 12)
Call SetPlayerPK(attacker, GetPlayerPK(attacker) + 1)
Call SendPlayerData(attacker)
Call lockitems(victim, 0)
Else
Call PutVar("accounts\" & GetPlayerLogin(attacker) & "\char" & GetPlayerCharNum(attacker) & "Wins.ini", "CHAR", "W", A + 1)
Call PutVar("accounts\" & GetPlayerLogin(victim) & "\char" & GetPlayerCharNum(victim) & "Losses.ini", "CHAR", "L", V + 1)
Call MapMsg(GetPlayerMap(attacker), "" & GetPlayerName(attacker) & " just killed " & GetPlayerName(victim) & "!", 12)
Call SetPlayerPK(attacker, GetPlayerPK(attacker) + 1)
Call SendPlayerData(attacker)
Call lockitems(victim, 0)
End If
End Sub
>! '******************************************Level***************************************
Sub PlayerLevelUp(index)         
'**************************************************************************************
>! Dim I   
Dim D
>! Do While GetPlayerExp(index) => GetPlayerNextLevel(index) 
      D = GetPlayerExp(index) - GetPlayerNextLevel(index)
        Call SetPlayerLevel(index, GetPlayerLevel(index) + 1)
        Call SetPlayerExp(index, D)
        If GetPlayerLevel(index) > 60 Then
                I = 1 + (Int(GetPlayerLevel(index) / 15) )
                Call SetPlayerPoints(index, GetPlayerPoints(index) + ( 1 * 5 ) )
                Call SendPTS(index)
                Else
        I = 1 + (Int(GetPlayerLevel(index) / 15) )         
        Call SetPlayerPoints(index, GetPlayerPoints(index) + ( 1 * I ) )
                Call SendPTS(index)           
                End If
            Loop 
Call PlayerMsg(index, "You have " & GetPlayerPoints(index) & " stat points remaining.", 14) 
Call SendEXP(index)
End Sub
>! '*******************************************StatPoints**********************************
Sub UsingStatPoints(index, PointType)
'**************************************************************************************
>! Select Case PointType
>! '<><><><><>
>! Case 0
>!     If GetPlayerPoints(index) < 1 Then
    Call PlayerMsg(index, "You don't have anymore stat points to spend!", 12)
    Exit Sub
    End If

If GetPlayerSTR(index) + 1 > 999 Then
    Call PlayerMsg(index, "You have maxed your strength!", 14)
      Exit Sub
    End If
>! Call SetPlayerSTR(index, GetPlayerSTR(index) + 1)
Call PlayerMsg(index, "You increase in strength!", 10)
>! '<><><><><>
>! Case 1
    If GetPlayerPoints(index) < 1 Then
    Call PlayerMsg(index, "You don't have anymore stat points to spend!", 12)
    Exit Sub
    End If

If GetPlayerDEF(index) + 1 > 999 Then
Call PlayerMsg(index, "You have maxed your defence!", 14)
Exit Sub
End If
>! Call SetPlayerDEF(index, GetPlayerDEF(index) + 1)
Call PlayerMsg(index, "You have gained more defense!", 14)
>! '<><><><><>
>! Case 2
    If GetPlayerPoints(index) < 1 Then
    Call PlayerMsg(index, "You don't have anymore stat points to spend!", 12)
    Exit Sub
    End If

If GetPlayerMAGI(index) + 1 > 999 Then
Call PlayerMsg(index, "You have maxed your magic!", 14)
Exit Sub
End If
>! Call SetPlayerMAGI(index, GetPlayerMAGI(index) + 1)
Call PlayerMsg(index, "You grow in magical power!", 14)
>! '<><><><><>
>! Case 3
    If GetPlayerPoints(index) < 1 Then
    Call PlayerMsg(index, "You don't have anymore stat points to spend!", 12)
    Exit Sub
    End If

If GetPlayerSpeed(index) + 1 > 999 Then
Call PlayerMsg(index, "You have maxed your speed!", 14)
Exit Sub
End If
>! Call SetPlayerSPEED(index, GetPlayerSpeed(index) + 1)
Call PlayerMsg(index, "You increase in speed!", 14)
>! '<><><><><>
>! End Select
>! Call SetPlayerPoints(index, GetPlayerPoints(index) - 1)
>! End Sub
>! '**********Executes every second, based on the server time.************
Sub TimedEvent(Hours, Minutes, Seconds)
'********************************************************************** 
>! If Hours = 9 And Minutes = 00 And Seconds = 30 Then
Call StartAWar(index)
End If
If Hours = 12 And Minutes = 00 And Seconds = 30 Then
Call StartAWar(index)
End If
If Hours = 15 And Minutes = 00 And Seconds = 30 Then
Call StartAWar(index)
End If
If Hours = 18 And Minutes = 00 And Seconds = 30 Then
Call StartAWar(index)
End If
If Hours = 21 And Minutes = 00 And Seconds = 30 Then
Call StartAWar(index)
End If
If Minutes = 00 And Seconds = 00 Or Minutes = 15 And Seconds = 00 Or Minutes = 30 And Seconds = 00 Or Minutes = 45 And Seconds = 00 Then
Call GlobalMsg("Server: Just a reminder to type /save to save your character up to date!", 14)
End If
If Minutes = 00 And Seconds = 30 Then
Call GlobalMsg("Server: Please register onto our new Ambardia Forums @ http://www.funtouchgamer.com/ambardiaforum/", 14)
End If
End Sub
>! Sub Commands(Index)
Dim i
Dim TextSay
Dim n
Dim m
Dim C
Dim test
Dim x
Dim y
Dim menu_title
Dim Z
Dim G
Dim RankThem
Dim PlayerID
Dim MapNum
Dim A
Dim PlayerY
Dim PlayerX
Dim ChessZ
Dim ChessY
Dim ChessX
Dim Uberness
>! ' Get the command and arguments from the cache. Remember, not everyone will be index(1)...
TextSay = Trim(GetVar("Scripts\Command.ini", "TEMP", "Text" & Index))
i = 1
C = 0
Z = GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena")
G = GetVar("Scripts\GWins.ini", "GLIST", "" & GetPlayerGuild(index) & "")
A = GetVar("Scripts\" & "PlayerWins.ini", "WINS", "" & GetPlayerName(index) & "" & GetPlayerCharNum(index) & "")

' Split the command into an array. All arguments are seperated by spaces.
TextSay = Split(TextSay)
>! Select Case TextSay(0)
Case "/testscripts"
Call TestMain(Index)
Exit Sub
>! Case "/help"
Call PlayerMsg(Index, "Social Commands:", WHITE)
Call PlayerMsg(Index, "'msghere = Broadcast Message", WHITE)
Call PlayerMsg(Index, "!namehere msghere = Player Message", WHITE)
                        Call PlayerMsg(index, ":msghere = Guild Message", WHITE)
Call PlayerMsg(Index, "Available Commands: /help, /emo, /tips, /rainbow, /win, /mission, /return, /away, /back, /save, /who, /fps, /inv, /join, /leave", WHITE)
Exit Sub
>! Case "/calladmins"
If GetPlayerAccess(Index) = 0 Then
Call AdminMsg(GetPlayerName(Index) & " needs your help!", BRIGHTGREEN)
Else
Call PlayerMsg(index, "You don't need help if you're already an Admin.", BRIGHTGREEN)
End If
Exit Sub
>! Case "/admin"
If GetPlayerAccess(Index) > 0 Then
Call PlayerMsg(Index, "Social Commands:", WHITE)
Call PlayerMsg(Index, "=msghere = Private Admin Message", WHITE)
Call PlayerMsg(Index, "Available Commands: /admin, /stopwin /arenacheck, /loc, /test, /cleanme, /info, /mute, /unmute, /mapeditor, /warpmeto, /warptome, /warpto, /setsprite, /mapreport, /kick, /ban, /edititem, /respawn, /editnpc, /motd, /editshop, /ban, /editspell", WHITE)
End If
Exit Sub
>! Case "/warpmeto"
If GetPlayerAccess(Index) > 1 Then
PlayerID = FindPlayer(TextSay(1))
>! If GetPlayerMap(PlayerID) = 113 Or GetPlayerMap(PlayerID) = 141 Or GetPlayerMap(PlayerID) = 142 Or GetPlayerMap(PlayerID) = 143 Then
Call PlayerMsg(index, "Server: " & GetPlayerName(PlayerID) & " is in a war right now which you can not enter.", 14)
Exit Sub
End If
>! If PlayerID > 0 Then
Call PlayerWarp(Index, GetPlayerMap(PlayerID), GetPlayerX(PlayerID), GetPlayerY(PlayerID))
Call PlayerMsg(Index, "You have been warped to " & GetPlayerName(PlayerID) & ".", BROWN)
Else
Call PlayerMsg(Index, "Player is not online.", WHITE)
End If
End If
Exit Sub
>! Case "/warptome"
If GetPlayerAccess(Index) > 1 Then
PlayerID = FindPlayer(TextSay(1))
>! If PlayerID > 0 Then
Call PlayerWarp(PlayerID, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
Call PlayerMsg(PlayerID, "You have been warped to " & GetPlayerName(Index) & ".", BROWN)
Else
Call PlayerMsg(Index, "Player is not online.", WHITE)
End If
End If
Exit Sub
>! Case "/warpto"
If GetPlayerAccess(Index) > 1 Then
MapNum = TextSay(1)
>! If Int(MapNum) = 113 Or Int(MapNum) = 141 Or Int(MapNum) = 142 Or Int(MapNum) = 143 Then
Call PlayerMsg(index, "Server: This map is an Arena map, which prohibits any warping powers.", 14)
Exit Sub
End If
>! If Int(MapNum) > 0 And Int(MapNum) <= MAX_MAPS Then
Call PlayerWarp(Index, Int(MapNum), GetPlayerX(Index), GetPlayerY(Index))
Call PlayerMsg(Index, "You have been warped to map #" & Int(MapNum) & ".", BRIGHTBLUE)
Else
Call PlayerMsg(Index, "Invalid map number.", BRIGHTRED)
End If
End If
Exit Sub
>! Case "/mute"
        If Len(TextSay(1)) > 1 Then
            n = TextSay(1)
            n = FindPlayer(n)

              If GetPlayerAccess(index) < 4 Then
              Call PlayerMsg(index, "You aren't authorized to use this command!", 12)
              Exit Sub
              End If

              If n > 0 Then
              Call PlayerMsg(n, "You have been muted by the server, stop being annoying.", 12)
              Call MutePlayer(n)
              Else
              Call PlayerMsg(index, "Player isn't online!", 12)
              End If
              Else
              Call PlayerMsg(index, "Usage: /mute playername", 15)
              End If
              Exit Sub
>! Case "/checkip"
        If Len(TextSay(1)) > 1 Then
            n = TextSay(1)
            n = FindPlayer(n)

              If GetPlayerAccess(index) < 4 Then
              Call PlayerMsg(index, "You aren't authorized to use this command!", 12)
              Exit Sub
              End If

              If n > 0 Then
              Call PlayerMsg(index, "Server: " & GetPlayerName(n) & "'s IP is " & GetPlayerIP(n) & ".", 14)
              Else
              Call PlayerMsg(index, "Player isn't online!", 12)
              End If
              Else
              Call PlayerMsg(index, "Usage: /mute playername", 15)
              End If
              Exit Sub
>! Case "/unmute"
        If Len(TextSay(1)) > 1 Then
            n = TextSay(1)
            n = FindPlayer(n)

              If GetPlayerAccess(index) < 4 Then
              Call PlayerMsg(index, "You aren't authorized to use this command!", 12)
              Exit Sub
              End If

              If n > 0 Then
              Call PlayerMsg(n, "You have been unmuted by the server.", 12)
              Call UnMutePlayer(n)
              Else
              Call PlayerMsg(index, "Player isn't online!", 12)
              End If
              Else
              Call PlayerMsg(index, "Usage: /unmutethem playername", 15)
              End If
              Exit Sub
>! Case "/gift"
        If Len(TextSay(1)) > 1 Then
            n = TextSay(1)
            n = FindPlayer(n)

              If GetPlayerAccess(index) < 4 Then
              Call PlayerMsg(index, "You aren't authorized to use this command!", 12)
              Exit Sub
              End If

              If n > 0 Then
              If F_Freeslots(n) > 0 Then
              Call PlayerMsg(n, "You come across a gift which has your name on it, from Santa. You picked it up.", 14)
              Call Give_Item(n, 405, 0)
              Else
              Call PlayerMsg(index, "Server: That Players Inventory is full at the moment.", 14)
            End If
              Else
              Call PlayerMsg(index, "Player isn't online!", 12)
              End If
              Else
              Call PlayerMsg(index, "Usage: /gift playername", 15)
              End If
              Exit Sub
>! Case "/stealth"
        If Len(TextSay(1)) > 1 Then
            n = TextSay(1)
            n = FindPlayer(n)

If GetPlayerAccess(index) < 3 Then
Exit Sub
End If
>! If GetPlayerMap(n) = 113 Or GetPlayerMap(n) = 141 Or GetPlayerMap(n) = 142 Or GetPlayerMap(n) = 143 Then
Call PlayerMsg(index, "Server: " & GetPlayerName(n) & " is in a war which you can not enter.", 14)
Exit Sub
End If
>! Call PlayerMsg(index, "Server: Stealth mode begun on " & GetPlayerName(n) & " on map " & GetPlayerMap(n) & ".", 14)
Call SetPlayerSprite(index, 200)
Call SendPlayerData(index)
Call PlayerWarp(index, Int(GetPlayerMap(n)), 0, 0)
End If
Exit Sub
>! Case "/bookeditor"
If getplayeraccess(index) >= 2 Then
'====> Reset the current book page, max pages and current book title I'm editing
Call PutVar("scripts\Charextras\" & GetPlayerName(Index) & ".ini", "TEMP", "BOOK_EDIT_TITLE", "")
Call PutVar("scripts\Charextras\" & GetPlayerName(Index) & ".ini", "TEMP", "BOOK_EDIT_PAGE", 1)
Call PutVar("scripts\Books\" & getplayermenuclickmsg(Index) & ".ini", "" & getplayermenuclickmsg(Index), "MAX_PAGES", 1)
>! '====> Welcome the player to the editor and Open costom menu titled "book_editor"
Call playermsg(Index,"Welcome to the book editor!",15)
Call CustomMenuShow(Index, "book_editor", "\GUI\books.gif", 1)
>! '====> Title of book
Call CustomMenuLabel(Index, 1, "Book title", 20, 10, 10, 0, 0, 160, 170)
Call CustomMenuTextBox(Index, 1, 400, 10, 30, book_title)
>! '====> Page buttons
Call CustomMenuLabel(Index, 2, "Book page", 178, 65, 10, 0, 0, 160, 170)
Call CustomMenuLabel(index, 4, "1", 162, 85, 18, 0, 2, 100, 50)
Call CustomMenuPicture(Index, 1, "\GUI\bookleft.gif",156,85)
Call CustomMenuPicture(Index, 2, "\GUI\bookright.gif",235,85)
>! '====> Setting max pages
Call CustomMenuLabel(Index, 5, "Max Pages", 310, 68, 10, 0, 0, 160, 170)
Call CustomMenuTextBox(Index, 2, 80, 310, 85, "")
>! '====> Writing in the book
Call CustomMenuLabel(Index, 3, "Page text", 20, 130, 10, 0, 0, 160, 170)
Call CustomMenuTextBox(Index, 3, 400, 10, 150, "")
End If
  Exit Sub
>! '<><><><><>
>! Case "/emo"
Call PlayerMsg(index, "Current Emotes: /cool , /love , /;) , /:P , /cry , /grr , /:( , /evil , /!", 15)
>! '<><><><><>
>! Case "/test"
Call testmain(index)
Exit Sub
>! '<><><><><>
>! Case "/tips"
Call Prediction_Ball(index)
Exit Sub
>! '<><><><><>
>! Case "/chess"
Call ChessMaker(index)
Exit Sub
>! Case "/pawn"
Uberness = GetPlayerMap(index)
If Uberness = 325 Or Uberness = 326 Then
Call SetTile(Int(Uberness), 3, 8, 8, 233, 1, 3)
Call SetTile(Int(Uberness), 14, 8, 8, 234, 1, 3)
Call MapMsg(Int(Uberness), "Chess Master: Replacement Pawns have been summoned", 10)
End If
Exit Sub
>! Case "/knight"
Uberness = GetPlayerMap(index)
If Uberness = 325 Or Uberness = 326 Then
Call SetTile(Int(Uberness), 3, 8, 9, 233, 1, 3)
Call SetTile(Int(Uberness), 14, 8, 9, 234, 1, 3)
Call MapMsg(Int(Uberness), "Chess Master: Replacement Knights have been summoned", 10)
End If
Exit Sub
>! Case "/bishop"
Uberness = GetPlayerMap(index)
If Uberness = 325 Or Uberness = 326 Then
Call SetTile(Int(Uberness), 3, 8, 10, 233, 1, 3)
Call SetTile(Int(Uberness), 14, 8, 10, 234, 1, 3)
Call MapMsg(Int(Uberness), "Chess Master: Replacement Bishops have been summoned", 10)
End If
Exit Sub
>! Case "/rook"
Uberness = GetPlayerMap(index)
If Uberness = 325 Or Uberness = 326 Then
Call SetTile(Int(Uberness), 3, 8, 11, 233, 1, 3)
Call SetTile(Int(Uberness), 14, 8, 11, 234, 1, 3)
Call MapMsg(Int(Uberness), "Chess Master: Replacement Rooks have been summoned", 10)
End If
Exit Sub
>! Case "/queen"
Uberness = GetPlayerMap(index)
If Uberness = 325 Or Uberness = 326 Then
Call SetTile(Int(Uberness), 3, 8, 13, 233, 1, 3)
Call SetTile(Int(Uberness), 14, 8, 13, 234, 1, 3)
Call MapMsg(Int(Uberness), "Chess Master: Replacement Queens have been summoned", 10)
End If
Exit Sub
>! Case "/king"
Uberness = GetPlayerMap(index)
If Uberness = 325 Or Uberness = 326 Then
Call SetTile(Int(Uberness), 3, 8, 12, 233, 1, 3)
Call SetTile(Int(Uberness), 14, 8, 12, 234, 1, 3)
Call MapMsg(Int(Uberness), "Chess Master: Replacement Kings have been summoned", 10)
End If
Exit Sub
'<><><><><>
>! Case "/rainbow"
Call all_the_colors_of_the_rainbow(index)
Exit Sub
>! '<><><><><>
>! Case "/return"
If GetPlayerMap(index) = 113 Or GetPlayerMap(index) = 141 Or GetPlayerMap(index) = 142 Or GetPlayerMap(index) = 143 Or GetPlayerMap(index) = 750 Then
Call PlayerMsg(index, "A magic seal has disabled this command from working.", 14)
Else
Call use_town_portal(index)
End If     
Exit Sub
>! Case "/holiday"
Call Holiday(index, 37)
Exit Sub
>! '<><><><><>
>! Case "/cleanme"
If GetPlayerAccess(index) >= 1 Then
Call SetPlayerPk(index, 0)
Call sendplayerdata(index)
End If
Exit Sub
>! '<><><><><>
>! Case "/move"
Uberness = GetPlayerMap(index)
>! If Int(Uberness) = 325 Or Int(Uberness) = 326 Then
>! If GetVar("Scripts\Chess.ini", "MOVE", "" & GetPlayerName(index) & " Check") = "" Then
Call PutVar("Scripts\Chess.ini", "MOVE", "" & GetPlayerName(index) & " Check", 1)
End If
>! If GetVar("Scripts\Chess.ini", "MOVE", "" & GetPlayerName(index) & " Check") = "2" Then
PlayerX = GetPlayerX(index)
PlayerY = GetPlayerY(index)
If Int(PlayerX) => 3 And Int(PlayerX) <= 14 And Int(PlayerY) => 4 And Int(PlayerY) <= 11 Then
ChessX = GetVar("Scripts\Movement.ini", "MOVE", "" & GetPlayerName(index) & "" & "_PieceX")
ChessY = GetVar("Scripts\Movement.ini", "MOVE", "" & GetPlayerName(index) & "" & "_PieceY")
ChessZ = GetVar("Scripts\Movement.ini", "MOVE", "" & GetPlayerName(index) & "" & "_PieceTileSet")
If Int(ChessY) = 233 Then
Call MapMsg(Int(Uberness), "Chess Master: It is now Yellows turn!", 10)
Else
Call MapMsg(Int(Uberness), "Chess Master: It is now Reds turn!", 10)
End If
Call SetTile(Int(Uberness), Int(PlayerX), Int(PlayerY), Int(ChessX), Int(ChessY), Int(ChessZ), 3)
Call PutVar("Scripts\Chess.ini", "MOVE", "" & GetPlayerName(index) & " Check", 1)
Else
Call PlayerMsg(index, "Chess Master: That is an illegal move.", 10)
End If
ElseIf GetVar("Scripts\Chess.ini", "MOVE", "" & GetPlayerName(index) & " Check") = "1" Then
PlayerX = GetPlayerX(index)
PlayerY = GetPlayerY(index)
If GetTileX(Int(Uberness), Int(PlayerX), Int(PlayerY), 3) = 0 And GetTileY(326, Int(PlayerX), Int(PlayerY), 3) = 0 Then
Call PlayerMsg(index, "Chess Master: There is no piece where you're standing!", 10)
Exit Sub
End If
Call PutVar("Scripts\Movement.ini", "MOVE", "" & GetPlayerName(index) & "" & "_PieceX", "" & Trim(GetTileX(Int(Uberness), Int(PlayerX), Int(PlayerY), 3)) & "")
Call PutVar("Scripts\Movement.ini", "MOVE", "" & GetPlayerName(index) & "" & "_PieceY", "" & Trim(GetTileY(Int(Uberness), Int(PlayerX), Int(PlayerY), 3)) & "")
Call PutVar("Scripts\Movement.ini", "MOVE", "" & GetPlayerName(index) & "" & "_PieceTileSet", "" & Trim(GetTileSet(Int(Uberness), Int(PlayerX), Int(PlayerY), 3)) & "")
Call SetTile(Int(Uberness), Int(PlayerX), Int(PlayerY), 0, 0, 0, 3)
Call PutVar("Scripts\Chess.ini", "MOVE", "" & GetPlayerName(index) & " Check", 2)
End If
End If
Exit Sub
>! '<><><><><>
>! Case "/arenacheck"
If GetPlayerAccess(index) >= 4 Then
Call NPCTalk(index, 17, "Arena Player Count List " & vbnewline & "" & vbnewline & "Total Players: " & GetPlayersOnMap(113) + GetPlayersOnMap(141) + GetPlayersOnMap(142) + GetPlayersOnMap(143) & "" & vbnewline & "Castle Arena: " & GetPlayersOnMap(113) & "" & vbnewline & "Ice Arena: " & GetPlayersOnMap(141) & "" & vbnewline & "Lava Arena: " & GetPlayersOnMap(142) & "" & vbnewline & "Graveyard Arena: " & GetPlayersOnMap(143) & "")
End If
Exit Sub
>! '<><><><><>
>! Case "/win"
>! If GetPlayerMap(index) = 113 Or GetPlayerMap(index) = 141 Or GetPlayerMap(index) = 142 Or GetPlayerMap(index) = 143 Then
>! If GetPlayerMap(index) = 113 And GetPlayersOnMap(113) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Then
Call Give_Currency(index, 1, 1)
Call SetPlayerExp(index, GetPlayerExp(index) + 500)
Call PlayerMsg(index, "Arena Guard: You recieve 1 Gold and 500 Exp for winning this war!", 10)
Call PlayerSkillUp(index)
ElseIf GetPlayerMap(index) = 141 And GetPlayersOnMap(141) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Or GetPlayerMap(index) = 142 And GetPlayersOnMap(142) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Or GetPlayerMap(index) = 143 And GetPlayersOnMap(143) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Then
Call Give_Currency(index, 1, 1)
Call SetPlayerExp(index, GetPlayerExp(index) + 2500)
Call PlayerMsg(index, "Arena Guard: You recieve 1 Gold and 2500 Exp for winning this war!", 10)
Call PlayerSkillUp(index)
End If
If GetPlayerMap(index) = 113 And GetPlayersOnMap(113) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Or GetPlayerMap(index) = 141 And GetPlayersOnMap(141) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Or GetPlayerMap(index) = 142 And GetPlayersOnMap(142) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Or GetPlayerMap(index) = 143 And GetPlayersOnMap(143) <= 3 And GetVar("Scripts\Timer.ini", "War", "Clock") = "1" Then     
If GetPlayerGuild(index) = "" Then
Call PlayerMsg(index, "Arena Guard: You now have a total of " & GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena") + 1 & " Arena Win(s)!", 10)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena", Z + 1)
Call PutVar("Scripts\" & "PlayerWins.ini", "WINS", "" & GetPlayerName(index) & "" & GetPlayerCharNum(index) & "", A + 1)
Call PlayerWarp(index, 25, 9, 6)
Call Lockitems(index, 0)
ElseIf GetVar("Scripts\GWins.ini", "GLIST", "" & GetPlayerGuild(index) & "") = "" Then
Call PlayerMsg(index, "Arena Guard: You now have a total of " & GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena") + 1 & " Arena Win(s), and " & GetPlayerGuild(index) & " has a total of  1 Guild Win(s)!", 10)
Call PutVar("Scripts\" & "PlayerWins.ini", "WINS", "" & GetPlayerName(index) & "" & GetPlayerCharNum(index) & "", A + 1)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena", Z + 1)
Call PlayerWarp(index, 25, 9, 6)
Call PutVar("Scripts\GWins.ini", "GLIST", "" & GetPlayerGuild(index) & "", 1)
Call Lockitems(index, 0)
Else
Call PlayerMsg(index, "Arena Guard: You now have a total of " & GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena") + 1 & " Arena Win(s), and " & GetPlayerGuild(index) & " has a total of " & GetVar("Scripts\GWins.ini", "GLIST", "" & GetPlayerGuild(index) & "") + 1 & " Guild Win(s)!", 10)
Call PutVar("Scripts\" & "PlayerWins.ini", "WINS", "" & GetPlayerName(index) & "" & GetPlayerCharNum(index) & "", A + 1)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "Stats.ini", "CHAR", "Arena", Z + 1)
Call PlayerWarp(index, 25, 9, 6)
Call PutVar("Scripts\GWins.ini", "GLIST", "" & GetPlayerGuild(index) & "", G + 1)
Call Lockitems(index, 0)
End If
Else
Call PlayerMsg(index, "Arena Guard: /win is not active yet, wait until we verify you as a winner before typing this.", 2)
End If
End If
Exit Sub
>! '<><><><><>
>! '<><><><><>
>! Case "/mission"
Call Mission(index)
Exit Sub
>! '<><><><><>
>! Case "/away"
>! If GetVar("Scripts\afk.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "") = "" Then
Call PutVar("Scripts\afk.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "", "" & GetPlayerName(index) & "")
End If
>! If GetVar("Scripts\awaycount.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "") = "1" Then
Call PlayerMsg(index, "You're already away!", 14)
Else
Call LockPlayer(index, 1)
Call LockItems(index, 1)
Call LockSpells(index, 1)
Call SetPlayerName(Index, "" & GetPlayerName(index) & " - Away")
Call SendPlayerData(index)
Call PlayerMsg(index, "You are now AFK.", 10)
Call PutVar("Scripts\awaycount.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "", 1)
End If
Exit Sub
>! '<><><><><>
>! Case "/back"
If GetVar("Scripts\awaycount.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "") = "0" Then
Call PlayerMsg(index, "You're already back!", 14)
Else
Call LockPlayer(index, 0)
Call LockItems(index, 0)
Call LockSpells(index, 0)
Call SetPlayerName(Index, Trim(GetVar("Scripts\afk.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "")))
Call SendPlayerData(index)
Call PlayerMsg(index, "You are back from being AFK.", 10)
Call PutVar("Scripts\awaycount.ini", "Away", "" & GetPlayerLogin(index) & "" & GetPlayerCharNum(index) & "", 0)
End If
Exit Sub
End Select
End Sub
>! '****************************************Scripted Tile**********************************
Sub ScriptedTile(index, Script) 
'**************************************************************************************
>! Select Case Script
>! '<><><><><>
>! Case 0
    Call SetWalkthrough(GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
Call Baron_Uber_skills(index)
Exit Sub

'<><><><><>
>! Case 1
Call Baron_Stam_regain(index)
Exit Sub
>! '<><><><><>
>! Case 2
Call Set_town_portal(index)
Exit Sub

'<><><><><>
>! Case 4
If getplayermap(index) = 345 Then
Call playermsg(index,"You open the book, 'History of Ambardia'.",10)
Call CustomMenuShow(index, "book2", "\GUI\books.gif", 1)
Call CustomMenuPicture(index, 1, "\GUI\bookleft.gif",5,185)
Call CustomMenuPicture(index, 2, "\GUI\bookright.gif",383,185)
Call CustomMenuLabel(index, 1, GetVar("scripts\Books\History of Ambardia.ini", "History of Ambardia", "PAGE1"), 25, 16, 10, 0, 0, 160, 200)
Call CustomMenuLabel(index, 2, GetVar("scripts\Books\History of Ambardia.ini", "History of Ambardia", "PAGE2"), 245, 16, 10, 0, 0, 160, 200)
Call CustomMenuLabel(index, 3, "1", 10, 6, 8, 0, 0, 160, 170)
Call CustomMenuLabel(index, 4, "2", 398, 6, 8, 0, 0, 160, 170)
Call CustomMenuTextBox(Index, 1, 400, 10, 400, "")
Call putVar("scripts\Charextras\" & GetPlayerName(index) & ".ini", "TEMP", "BOOK_EDIT_PAGE", 1)
Call putVar("scripts\Charextras\" & GetPlayerName(index) & ".ini", "TEMP", "BOOK_EDIT_TITLE", "History of Ambardia")
End If
Exit Sub
>! '<><><><><>
>! Case 5
Call PlayerMsg(index, "A great amount of energy pushes a piece of ice from the ground and has damaged you.", 12)
Call SpellAnim(26, GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
Call SetPlayerHP(index, GetPlayerHP(index) - 125)
Call SendHp(index)
If GetPlayerHp(index) = 0 Then
Call OnDeath(index)
Call SetPlayerHp(index, GetPlayerMaxHP(index))
Call SetPlayerMp(index, GetPlayerMaxMP(index))
Call SendHp(index)
Call SendMp(index)
End If
Exit Sub
>! '<><><><><>
>! Case 6
If GetPlayerLevel(index) > 39 Then
        Call goshopping(index, 39)
        Else
        Call PlayerMsg(index, "Shop Owner: You're level is to low, I can't sell to you. Come back when you are level 40 or higher.", 10)
        End If
        Exit Sub

'<><><><><>

Case 7
If GetPlayerLevel(index) > 39 Then
        Call goshopping(index, 40)
        Else
        Call PlayerMsg(index, "Shop Owner: You're level is to low, I can't sell to you. Come back when you are level 40 or higher.", 10)
        End If       
        Exit Sub

'<><><><><>

Case 8
If GetPlayerLevel(index) > 39 Then
        Call goshopping(index, 41)
        Else
        Call PlayerMsg(index, "Shop Owner: You're level is to low, I can't sell to you. Come back when you are level 40 or higher.", 10)
        End If
        Exit Sub

'<><><><><>

Case 9
If GetPlayerLevel(index) > 39 Then
        Call goshopping(index, 42)
        Else
        Call PlayerMsg(index, "Shop Owner: You're level is to low, I can't sell to you. Come back when you are level 40 or higher.", 10)
        End If
        Exit Sub

'<><><><><>

Case 10
If GetPlayerLevel(index) > 39 Then
        Call goshopping(index, 43)
        Else
        Call PlayerMsg(index, "Shop Owner: You're level is to low, I can't sell to you. Come back when you are level 40 or higher.", 10)
        End If
        Exit Sub

'<><><><><>     

Case 11
If GetPlayerLevel(index) > 39 Then
        Call goshopping(index, 32)
        Else
        Call PlayerMsg(index, "Shop Owner: You're level is to low, I can't sell to you. Come back when you are level 40 or higher.", 10)
        End If
        Exit Sub

'<><><><><>

Case 12
If GetPlayerLevel(index) > 39 Then
        Call goshopping(index, 33)
        Else
        Call PlayerMsg(index, "Shop Owner: You're level is to low, I can't sell to you. Come back when you are level 40 or higher.", 10)
        End If
        Exit Sub
>! '<><><><><>
>! Case 14
Exit Sub
>! '<><><><><>
>! Case 15
Exit Sub
>! '<><><><><>
>! Case 16
If GetPlayerMap(index) = 372 And GetPlayerLevel(index) >= 75 And GetPlayerLevel(index) < 100 And GetPlayerAccess(index) <= 1 Then
Call PlayerWarp(index, 141, 8, 14)
Call LockItems(index, 1)
ElseIf GetPlayerMap(index) = 110 And GetPlayerLevel(index) >= 50 And GetPlayerLevel(index) < 75 And GetPlayerAccess(index) <= 1 Then
Call PlayerWarp(index, 142, 10, 3)
Call LockItems(index, 1)
ElseIf GetPlayerMap(index) = 178 And GetPlayerLevel(index) > 25 And GetPlayerLevel(index) < 50 And GetPlayerAccess(index) <= 1 Then
Call PlayerWarp(index, 143, 9, 14)
Call LockItems(index, 1)
Else
Call PlayerMsg(index, "Arena Guard: You are higher then the restricted access level, you have been warped to the Garden.", 10)
Call PlayerWarp(index, 25, 9, 6)
Call Lockitems(index, 0)
End If
Exit Sub
>! '<><><><><>
>! Case 17
If GetPlayerLevel(index) <= 25 Then
If GetPlayerLevel(index) >= 10 Then
If GetPlayerAccess(index) <= 1 Then
Call PlayerWarp(index, 113, 5, 14)
Call Lockitems(index, 1)
Else
Call PlayerMsg(index, "Arena Guard: You are higher then the restricted access level, you have been moved to the Garden.", 10)
Call PlayerWarp(index, 25, 9, 6)
Call Lockitems(index, 0)
End If
Else
Call PlayerWarp(index, 25, 9, 6)
Call PlayerMsg(index, "Arena Guard: You must be atleast level 10 to participate in these wars. You have been warped to the Garden.", 10)
End If
Else
Call LockItems(index, 1)
Call NextArena(index)
End If
Exit Sub
>! '<><><><><>
>! Case 18
Call Order(index, 17, "" & vbnewline & "" & vbnewline & "" & vbnewline & "Do you have what it takes to be a God or Goddess of Order?" & vbnewline & "" & vbnewline & "Apply within The Temple and take the Challenge!" & vbnewline & "" & vbnewline & "Only players whom are atleast level 15 are only allowed within." & vbnewline & "" & vbnewline & "Your Order Rank is confirmed." & vbnewline & "" & vbnewline & "" & OrderRank(index) & "" & vbnewline & "" & vbnewline & "Your Rank is also recorded on your profile card.")
Exit Sub
>! '<><><><><>
>! Case 19
If getplayermap(index) = 145 Then
Call playermsg(index,"You open the book, 'The Order of Ambardia'.",10)
Call CustomMenuShow(index, "book2", "\GUI\books.gif", 1)
Call CustomMenuPicture(index, 1, "\GUI\bookleft.gif",5,185)
Call CustomMenuPicture(index, 2, "\GUI\bookright.gif",383,185)
Call CustomMenuLabel(index, 1, GetVar("scripts\Books\The Order of Ambardia.ini", "The Order of Ambardia", "PAGE1"), 25, 16, 10, 0, 0, 160, 200)
Call CustomMenuLabel(index, 2, GetVar("scripts\Books\The Order of Ambardia.ini", "The Order of Ambardia", "PAGE2"), 245, 16, 10, 0, 0, 160, 200)
Call CustomMenuLabel(index, 3, "1", 10, 6, 8, 0, 0, 160, 170)
Call CustomMenuLabel(index, 4, "2", 398, 6, 8, 0, 0, 160, 170)
Call CustomMenuTextBox(Index, 1, 400, 10, 400, "")
Call putVar("scripts\Charextras\" & GetPlayerName(index) & ".ini", "TEMP", "BOOK_EDIT_PAGE", 1)
Call putVar("scripts\Charextras\" & GetPlayerName(index) & ".ini", "TEMP", "BOOK_EDIT_TITLE", "The Order of Ambardia")
End If
Exit Sub
>! '<><><><><>
>! Case 20
If getplayermap(index) = 145 Then
Call playermsg(index,"You open the book, 'The Chaos of Ambardia'.",10)
Call CustomMenuShow(index, "book2", "\GUI\books.gif", 1)
Call CustomMenuPicture(index, 1, "\GUI\bookleft.gif",5,185)
Call CustomMenuPicture(index, 2, "\GUI\bookright.gif",383,185)
Call CustomMenuLabel(index, 1, GetVar("scripts\Books\The Chaos of Ambardia.ini", "The Chaos of Ambardia", "PAGE1"), 25, 16, 10, 0, 0, 160, 200)
Call CustomMenuLabel(index, 2, GetVar("scripts\Books\The Chaos of Ambardia.ini", "The Chaos of Ambardia", "PAGE2"), 245, 16, 10, 0, 0, 160, 200)
Call CustomMenuLabel(index, 3, "1", 10, 6, 8, 0, 0, 160, 170)
Call CustomMenuLabel(index, 4, "2", 398, 6, 8, 0, 0, 160, 170)
Call CustomMenuTextBox(Index, 1, 400, 10, 400, "")
Call putVar("scripts\Charextras\" & GetPlayerName(index) & ".ini", "TEMP", "BOOK_EDIT_PAGE", 1)
Call putVar("scripts\Charextras\" & GetPlayerName(index) & ".ini", "TEMP", "BOOK_EDIT_TITLE", "The Chaos of Ambardia")
    End If
    Exit Sub

'<><><><><>

  Case 21
  Exit Sub

'<><><><><>

  Case 22
  Call SetWalkthrough(GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
  If GetVar("Scripts\Cart.ini", "Action", "Switch") = "0" Then
  If GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "AbilityToSwitch") = "1" Then
  Call SetAttribute(480,3,11,0,0,0,0,"","","")
  Call SetAttribute(480,4,11,0,0,0,0,"","","")
  Call SetTile(480, 7, 7, 9, 234, 9, 5)
  Call SetTile(480, 7, 8, 9, 235, 9, 1)
  Call SetTile(480, 2, 10, 0, 0, 0, 5)
  Call SetTile(480, 2, 11, 0, 0, 0, 3)
  Call SetTile(480, 3, 10, 0, 201, 8, 5)
  Call SetTile(480, 3, 11, 0, 202, 8, 3)
  Call SetTile(480, 4, 10, 1, 201, 8, 5)
  Call SetTile(480, 4, 11, 1, 202, 8, 3)
  Call SetTile(480, 5, 10, 2, 201, 8, 5)
  Call SetTile(480, 5, 11, 2, 202, 8, 3)
  Call PutVar("Scripts\Cart.ini", "Action", "Switch", 1)
  Call SetTimer("MinerTimer " & server & ", 1", 1000)
  Else
  Call PlayerMsg(index, "You must first talk to Engineer and accept his quest before you are allowed to access his switch.", 14)
  End If
  Else
  Call PlayerMsg(index, "The switch has already been turned on!", 14)
  End If
Exit Sub
>! '<><><><><>
>! Case 23
  Call SetWalkthrough(GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
  Call SetTile(488, 4, 1, 0, 0, 0, 5)
  Call SetTile(488, 4, 2, 0, 0, 0, 3)
  Call SetTile(488, 5, 1, 0, 0, 0, 5)
  Call SetTile(488, 5, 2, 0, 0, 0, 3)
  Call SetTile(488, 6, 1, 0, 0, 0, 5)
  Call SetTile(488, 6, 2, 0, 0, 0, 3)
  Call SetTile(488, 7, 1, 0, 0, 0, 5)
  Call SetTile(488, 7, 2, 0, 0, 0, 3)
  Call SetTile(488, 8, 1, 0, 0, 0, 5)
  Call SetTile(488, 8, 2, 0, 0, 0, 3)
  Call SetTile(484, 4, 6, 10, 234, 9, 5)
  Call SetTile(484, 4, 7, 10, 235, 9, 1)
  Call SetAttribute(488,5,2,0,0,0,0,"","","")
  Call SetAttribute(488,6,2,0,0,0,0,"","","")
  Call SetAttribute(488,7,2,0,0,0,0,"","","")
  Call PlayerMsg(index, "A passage has been opened.", 14)
  Call SetTimer("Wall " & server & ", 1", 60000)
  Exit Sub

'<><><><><>

Case 24
  If GetPlayerLevel(index) >= 15 Then
  Call PlayerWarp(index, 145, 9, 12)
  Else
  Call PlayerMsg(index, "The Temple of the Champions of Order only allows warriors who are atleast level 15 before being granted within.", 14)
  End If
  Exit Sub

'<><><><><>

Case 25
Call SetWalkthrough(GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
If GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle") = "" Then
Call PlayerMsg(index, "This switch is on, the liquid in the top pipe flows east.", 14)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle", 1)
Call SetTile(490, 4, 3, 10, 234, 9, 5)
Else
Call PlayerMsg(index, "This switch doesn't work, all other switches reset.", 14)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle", "")
Call SetTile(490, 8, 3, 10, 234, 9, 5)
Call SetTile(490, 4, 3, 9, 234, 9, 5)
Call SetTile(490, 8, 5, 10, 234, 9, 5)
Call SetTile(490, 4, 5, 9, 234, 9, 5)
End If
Exit Sub
>! '<><><><><>

Case 26
Call SetWalkthrough(GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
If GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle") = "1" Then
Call PlayerMsg(index, "This switch is on, the liquid in the bottom pipe flows west.", 14)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle", 2)
Call SetTile(490, 8, 5, 9, 234, 9, 5)
Else
Call PlayerMsg(index, "This switch doesn't work, all other switches reset.", 14)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle", "")
Call SetTile(490, 8, 3, 10, 234, 9, 5)
Call SetTile(490, 4, 3, 9, 234, 9, 5)
Call SetTile(490, 8, 5, 10, 234, 9, 5)
Call SetTile(490, 4, 5, 9, 234, 9, 5)
End If
Exit Sub
>! '<><><><><>

Case 27
Call SetWalkthrough(GetPlayerMap(index), GetPlayerX(index), GetPlayerY(index))
If GetVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle") = "2" Then
Call PlayerMsg(index, "This switch is on, the liquid in the top pipe flows north.", 14)
Call PutVar("accounts\" & GetPlayerLogin(index) & "\char" & GetPlayerCharNum(index) & "_Underground.ini", "Action", "PipePuzzle", 3)
Call SetTile(490, 8, 3, 9, 234, 9, 5)
Else
Call PlayerMsg(index, "This switch doesn't work
```
Link to comment
Share on other sites

I understand what you mean, but the whole engine needs to be edited to make an ORPG, and that's too difficult for too many of us. Logic says get a programmer, but no-one's willing to help you for free.

What I meant, Robin, was that people are being scared away from the engine by people who are imitating you, and you as well. Starting out with something new is always confusing, and what you say to these people seriously knocks their confidence. People may not have thought to look at the instructions before mucking around with the software, and your comments of 'If you can't read instructions you shouldn't be in games design' are unwarranted, because a lot of us think of this as a hobby.

I have never once seen you post something positive on anyone's work, Robin. If you stopped being so condescending and horrid to newbs, there'd be more of them and we'd have a lot less people acting like idiots because of it.
Link to comment
Share on other sites

I have to disagree on a few things there. And please hear me out.

First off, I love you Robin, but you really are an arrogant prick. Just saying :) I understand your point of view, considering that you DID do all the work to release EO, which is better written overall, and in its own right a potentially powerfull engine.  However, you fail to see the overall community needs. It shouldnt be about matching up with your expectations, as EO was written with.

The community is about an easy way into gave development. I'm sorry, but that is what Eclipse always  has been about. If someone was hardcore serious about game development, they will/would learn a proper coding language, go to college, ect. Thats not what Eclipse has ever been though, or not what it was untill EO. Eclipse was an EASY foothold into game development. And regardless of some of the underlying technicalities, Scripting WAS the base of Eclipse, and really most if not all Mirage engines. It was simple to learn, and through experience I know it had some power behind it. Maybe it was poorly implemented and over time increasingly fragmented, but you could do a TON with it if you knew how. I made essentially a real time RTS system, through sadscript alone. It had potential.  But the best part was it was easy to learn.

And because it was easy to learn, more people knew it, and more people could help eachother.  I know me, as well as others, would just go through the entire "Questions" thread and answer most if not all of them. It was always one name or another replying to every thread on that board.  With VB6, the truth is its just not that easy. Sure some of you have picked it up and can do it, bu tthe majority cant.
  Its just NOT AS EASY to learn as sadscript was. Anything with substance you cant just go script somewhere and see the fruit of your work. You have to open other forms and other sections to add extra code, ect. It is not the same accesability that built Eclipse up to its hayday.

Bonk hit the nail on the head. Its just to difficult to modify the engine. I cant say for sure, but I would be willing to bet that most people just do alot of copy and paste coding, finding stuff from the so called tutorials section, (though its a cut and paste section, not a learning section), and try to pop it ijnto their code, with varying results.

In reply to a comment **Admiral** made, Sadscript and VB are actually significantly different. True, there are alot of similarities in overall look, however implementation is very much different, doing one thing in Code requires several additions here and there, Sadscript you could write out your code in the main.ini and the engine did the bulk of the work. At the worst you may have had to manually do some .ini work, but that was simple.

In response to **Ryoku Hasu**, thats exactly my point. How is that anyone learning VB? Basically your saying if you cant figure it out, copy something that will fit your needs thats posted here. Thats not encouraging anything, certainly not helping the overall work ethic and learning cure of the community.

In regards to **Renzo's** comment. I would have to disagree here, at least personally. I really dropped out of the scene only because EO became the new standard bearer, and it was to hard for me to use. And untill that time there was still a healthy community. There was still a massive influx of new people, and a large part of them stuck around for at least a while, because they could figure out enough to keep trying, and enough people KNEW enough to help them out till they gave up. And the Work in progress board, while not at all an indicator of sucess, was an indicator of health, and there was almost DAILY a new project popping up on that board, wether or not it was a good idea regardless. More people were willing to try, instead of being scared off by the complexity and much larger amount of WORK, required.
  And No, it isnt a Rant about the old days of eclipse community wise, even though I miss those, its a discussion about how I think Eclipse took a wrong turn in its identity.

And finally, **Robin**. You say "If you liked how it was, you should have stepped up and did something about it".  But you know what, most people dont HAVE the long resume you have when it comes to coding, VB6 in particular. People loved Eclipse BECAUSE it gave them a chance to do what they couldnt do before, MAKE AN MMO! It was a thrill for me when I was still able to participate. I still would be in the thick of it if I could. 

Yes, Previous versions of Eclipse did have issues, thats a given. We just didnt have the people with the know how to sort things out for us. But that doesnt mean that you Robin should have treated out history with disdain and portrayed the community as lazy or unwilling. 

This may sound harsh Robin, and again, I am not marginalizing your work, nor your skill, nor your contributions to the Engine over the years. But you in a way usurped what we had going. I feel you should have helped fixed what we had going, instead of changing the entire landscape to something that better fit your own level of commitment/skill.  I respect you completely and I think EO is a good engine, but it moved away from the core of what Eclipse was, and did well as, for a long time.
Link to comment
Share on other sites

@Bonk:

> 'If you can't read instructions you shouldn't be in games design' are unwarranted, because a lot of us think of this as a hobby.

I'm sorry, but name a single hobby you can do without the ability to read or follow instructions. I'm not going to apologise for pointing out the obvious. If you can't follow a detailed guide on installing a program then you don't know enough to use it to make a video game. This is constantly been proven right by how many people actually manage to do anything after asking for help in this area. This was true even before I took over development.

@Bonk:

> I have never once seen you post something positive on anyone's work, Robin.

You've been here a month. What do you expect? I'm not going to lie to people. If something is bad I'll say it's bad. If something is good I'll say it's good. Ask anyone who's ever received a compliment from me. I'd say my approval means a hell of a lot more to people when they know they've actually earned it.

@DrNova:

> First off, I love you Robin, but you really are an arrogant prick. Just saying :)

No argument there. Just keep in mind I've been doing this for close to a decade, now. When you do something for half your life you generally know more than the guy who just wondered on to the scene a couple of months ago. I'm assertive and opinionated, but that's just who I am. I'm not going to apologise for it.

@DrNova:

> Its just NOT AS EASY to learn as sadscript was.

_For you._ You're talking about your own experiences here and I'm sorry to say that this simply comes down to you having three years of experience in scripting. You didn't instantly know what to do when you started. You needed to learn. It will have been harder to learn to script than it would be to learn to program because you had nothing to base it off.

You weren't prepared to put in the same amount of effort to learn something new and so you left. Don't assume that new members aren't willing to learn just because you weren't.

@DrNova:

> And finally, **Robin**. You say "If you liked how it was, you should have stepped up and did something about it".  But you know what, most people dont HAVE the long resume you have when it comes to coding, VB6 in particular. People loved Eclipse BECAUSE it gave them a chance to do what they couldnt do before, MAKE AN MMO! It was a thrill for me when I was still able to participate. I still would be in the thick of it if I could. 
>
> Yes, Previous versions of Eclipse did have issues, thats a given. We just didnt have the people with the know how to sort things out for us. But that doesnt mean that you Robin should have treated out history with disdain and portrayed the community as lazy or unwilling.

You're talking as if it's Eclipse vs. Me in this situation. I was a member of Eclipse from the start. You're acting as if I just came in, insulted everyone and then did my own little thing.

I was the developer for Eclipse Evolution 2.8\. My graphical work was some of the most popular user-made interfaces in the entire community (albeit without my permission - thieves worked themselves pretty high in the community hierarchy).

Eclipse had a bad reputation in the communities and rightly so. Little was done for the rampant content theft and plagiarism which went on months after it was reported.

@DrNova:

> This may sound harsh Robin, and again, I am not marginalizing your work, nor your skill, nor your contributions to the Engine over the years. But you in a way usurped what we had going. I feel you should have helped fixed what we had going, instead of changing the entire landscape to something that better fit your own level of commitment/skill.  I respect you completely and I think EO is a good engine, but it moved away from the core of what Eclipse was, and did well as, for a long time.

I did try and fix what we had going. It didn't work. Don't forget that. I tried to work in the existing system and it simply didn't work. Dozens of developers tried but you can't undo 5 years of bad programming practice so easily.

So instead I made something new which would be done properly from the ground up. Given the same situation again now I'd choose the exact same path.

@DrNova:

> Scripting WAS the base of Eclipse, and really most if not all Mirage engines. It was simple to learn, and through experience I know it had some power behind it. Maybe it was poorly implemented and over time increasingly fragmented, but you could do a TON with it if you knew how. I made essentially a real time RTS system, through sadscript alone. It had potential.  But the best part was it was easy to learn.

Then you know VB6\. The stuff you typed out in to notepad wasn't some magical language than was developed. It was literally VB6 syntax. To transition over in to VB6 all you need to do is grab a copy of the VB6 IDE and use the CTRL + F function.

The only reason you think scripting is easier than sourcing is because you spent the time learning it. It was what you started with. Everyone remembers their first language fondly.

I was well aware of the older users wanting VBScript to stay in the engine. I had a decision to make. I could either cater to the older generation or re-design the system to be more modular, accessible and, most of all, stable. In the end I chose the needs of the many over the needs of the few. People fresh on the scene will find it just as easy to set up their first source edit than their first script. Even easier because of the cleaner source code.

If I'd chosen to keep a flawed system just to appease the needs of a handful of existing users then I'd have exposed many more generations of developers to sub-par systems and broken tools. That's simply unfair to those who come after you.

Everything comes down to this one decision and I'd make the same choice every single time.
Link to comment
Share on other sites

A few things.

First, and I make no claims this is accurate, but I've also been around eclipse quite a while, and I dont remember you around in my early days. I used a different tag (Several actually) and its quite possible you did to, or just werent vocal.

Second, plagurism, theft, ect, not going to comment on, that has nothing to do with the engine really. And most of the communities I've browsed through (and I bounced around for a good while before settling on Eclipse) every one has RMXP graphics. I'm sure it was a pretty fair playing feild when it cam eto where people found what. I'd attribute it to Eclipse having th elargest community (at the time I became treally involved) so there was just more by percentage.

And last, maybe you've forgotten what it was like before you knew, but coding is simply NOT that easy. Sure, the basic syntax remains the same, but IMPLEMENTATION is much different and magnitudes more complex. Open the code for E-anything, and you will find many windows with many many sections of code. It is no small task to figure out what window and what section does what, and most additions to the code require changes to several different windows of code to function properly. You simply cant do anything without editing several different area's.

In reference the the "needs of the many vs needs of the few" section, I dont see it.  You made your desicion based off the needs of the few at the time, because only the few could code worth a damn. And its still like that, because as I look around, people STILL cant code. Some people pick it up marginally, but I see VERY FEW instances where someone ACTUALLY has coded something gameplay related or influencing. There is alot of visible cut and paste, but looking over the projects around here, no fundemental gameplay additions are prevelant.  The small bit of coding actually visablly being done is cosmetic or minor at best.

And that alone seems to be rare enough. I just dont see the evidence of coding being used in any way that rivaled the participation and understanding that sadscript used to have.
Link to comment
Share on other sites

@Robin:

> I'm sorry, but name a single hobby you can do without the ability to read or follow instructions.

Painting.
Whittling
Jogging
Gaming-(harder, but still possible)
Poetry-(probably need to read, but instructions are uneccesary)
cooking
hunting
fishing
camping
collecting
ect

:)
Just saying.
Link to comment
Share on other sites

@DrNova:

> In reference the the "needs of the many vs needs of the few" section, I dont see it.  You made your desicion based off the needs of the few at the time, because only the few could code worth a damn. And its still like that, because as I look around, people STILL cant code. Some people pick it up marginally, but I see VERY FEW instances where someone ACTUALLY has coded something gameplay related or influencing. There is alot of visible cut and paste, but looking over the projects around here, no fundemental gameplay additions are prevelant.  The small bit of coding actually visablly being done is cosmetic or minor at best.
>
> And that alone seems to be rare enough. I just dont see the evidence of coding being used in any way that rivaled the participation and understanding that sadscript used to have.

You're acting as if I cut off EE and scripting as soon as I released Origins.

EO was released slightly after ES. From there both engines developed until Damian cut off support for ES and urged the people who used his engine to use mine instead. I'd tried to help develop EE 2.8 to fix the problems. That didn't work. I tried to help out with ES but the same issues were there. If I couldn't bring myself to dive head-first in to this filth and no one else was then how do you expect it to remain on top?

During this time the old website was still intact. EE and ES were still the _de facto_ releases and EO was just a small version on the forum. Slowly it developed and everyone went over to use it. This wasn't something I forced, this is what they chose to do. Why? Because regardless of what you want to lead people to believe EO was hugely popular for actually bringing something new to the table.

It brought in visual spells, an animated interface, a working hotbar, a drag & drop entity system, dynamic maps, integrated trade skills and resources, dynamic sprites sizes, spell animations, binary packet systems, visual shops, visual player to player trade, visual banks… I could go on. You can drop this entire story about how EO is just a blank base. I've got more feature innovations under my belt than anyone in this place.

From there the scripting board died. Requests were going unanswered, the answer to most of the questions and bug reports was "The engine is just broken." and all the people who had released their systems as scripts before started releasing them as source edits for Origins.

It wasn't until a few months ago that the scripting board was removed in a re-shuffle. It was literally dead. I re-designed the website and forum. Due to the lack of interest in EE it seemed stupid to keep it on. It had gone two years without a single person showing any sign of interest in fixing the problems which made it impossible to use.

So I cleaned up the forum. This was done on a vote. I asked the other administrators and developers every step of the way. The new forum order was actually designed by the other moderators and administrators. I simply clipped off a few extra boards to clean up the design.

From there EE and ES were phased out. At first we offered legacy support, but the only answer we had to all the problems people had were "The engine is broken". People started asking why we were even offering something which didn't work.

You can stop this bullshit story about I usurped the forum and made everyone bow down and accept my girth. Everything I've done has been for the benefit of the community as a whole regardless of how it affects you personally. Everyone has been involved in every single decision we've made along the way. Hell, our hand was forced by the community's decisions in regards to the engines. If you find the site going in a direction you don't agree with then it's your fault for not being an active part of it and pushing your side of things.

If you want to make me out to be some sort of super villain then so be it. Your mind is obviously made up.
Link to comment
Share on other sites

Bonk, Thanks for supporting Ambardia but seriously, look where we are now bro. Our developments went from serving a good 30+ regulars in the beginning of beta, a peak of 60+ in our middle, all the way down to 6-8 regulars at it's end, and mainly it's because EE could not handle any more what we was adding in, I knew that it wasn't going to handle much more and I backed out of it's development, leaving Ambard there which was wrong of me to do, but I just didn't want to hurt his feelings on it because I clearly didn't have the knowledge to fix what was wrong with it, even if I did have the knowledge to, it's just only going to prolong the inevitable that sooner or later, a players FPS would be at 0 and the player will move nowhere.. It took me 5 minutes just to log into Ambardia, not because of the connection but simply because EE's client ate up over 200MB of RAM and I only had a 256MB RAM stick at that time, now I have a 512MB RAM stick and it still takes 5 minutes to log into the game.

Lolli, you speak of having Alley Cats as a popular game, EE just ain't the way for it, I'm sorry to say it.. I spent much time in Ambardia and I know that after time, the more you build in EE, the less the game is going to work out in that engine, you can even ask Ambard if you don't believe me. Sure, it's user friendly but even Ambard knows that the bugs with it has killed whatever hope we had with it's development over time.

I can't say much about the community being harmed by the outcome of EO, and I really doubt there was any harm by it, the forum is the forum and the engine is the engine, they're two different aspects of this community, and it's always been a split of people who chill around here, those who close everything and just concentrate on making their games, and those who ask for support about the engine on the forum.
Link to comment
Share on other sites

@DrNova:

> In reply to a comment **Admiral** made, Sadscript and VB are actually significantly different. True, there are alot of similarities in overall look, however implementation is very much different, doing one thing in Code requires several additions here and there, Sadscript you could write out your code in the main.ini and the engine did the bulk of the work. At the worst you may have had to manually do some .ini work, but that was simple.

Nova, I agree that VB6 requires "a little extra" depending on what you have to do.
However, if all you'd want to do, is script, you can still do that, you'll just have to give your variables a type instead of just putting "Dim."
I don't have the code on me at the moment, but I ported my old EE scripts for Rock, Paper, Scissors, to EO, and it was almost copy and paste, except for making sure I capitalized and added variable types.

Yes, I had to follow the tutorial on how to add in a "scripted" tile, "scripted" NPC, etc., but after that, it was pretty much the exact same thing – throwing my functions in a select case for that NPC.  Only difference, was that I had to put it in the source code with VB, instead of a .txt file in VBS.

On a side note...  I'm pretty sure someone has the old Sadscript tutorial for Mirage -- it's pretty simple to put in, from what I remember, and with some basic intuitive programming ability (that is... common sense) it shouldn't be difficult to add in a scripting systems to origins.
Link to comment
Share on other sites

Then maybe that's the way forward for us? I just want to find a happy medium, but I doubt the scripting boards will come back.

All I think is:
EO Engine with scripting, with a set of well written scripts for guilds, animated tiles, speech bubbles, pets and quests. That's all I want :/
Link to comment
Share on other sites

SadScript was just a wrapper for the Microsoft Scripting Control released on PSC. Shannara came across it and released a tutorial on Mirage. That's the version Sean added to Konfuze which was later released as Elysium and eventually re-branded as Eclipse.

If you want a working scripting system then you need to have it both client and serverside. Having everything done through chatbox messages was ridiculous.

Personally I'm using a system based on commands built in to an event editor on the map. Much easier to use rather than screwing around in subroutines and such.

@Bonk:

> EO Engine with scripting, with a set of well written scripts for guilds, animated tiles, speech bubbles, pets and quests. That's all I want :/

You want a lot for someone who just spent the last few posts insulting me for actually trying to develop the engine. You wonder why no one else stands up to do anything? Because the community are whiny little bastards who complain about anything done.

I have some of the thickest skin around. If even I get tired of this bullshit then I'd like to see someone else deal with it.

Hell, this entire thread has put down 3 years of community and administrative evolving to me being a tyrant dictator who apparently managed to do all of this single-handled against the wishes of everyone in this place. Do you lot really understand how ridiculous that sounds? I'm even getting blamed for shit I didn't even do. Jesus.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...