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

coziboy

Members
  • Posts

    24
  • Joined

  • Last visited

    Never

Everything posted by coziboy

  1. > would not if app.major, app.minor or app.rev not the same as the server, then the client will not run? > btw nice i like encrypt system look, at client section replace ``` buffer.WriteLong App.Major buffer.WriteLong App.Minor buffer.WriteLong App.Revision ``` with ``` buffer.WriteLong version ``` so client will not send it's app.major minor and revision to server and why i made this function? the reason is [here](http://www.eclipseorigins.com/community/index.php?/topic/135161-another-client-versioning-system/#entry918586) this is just simple modification to save bandwith if you don't make any change to your client.exe after update… just upload 1KB for version.ini, not 1MB for client.exe just to use app.major minor revision :) btw, that encrypt system i found from google :lol:
  2. > Also, if it's saved client side in a .ini file, wouldn't they be able to just go in and change it ayways? Like if you release a major exploit fix, they could bypass it by just updating the version so the server thinks the client is updated. thats why i make optional code to encrypt the version string and the encrypter program use a special key so if the player want to bypass the version, i think they must hack the scripter mind :mellow:
  3. > Why not just use VB6's inbuilt versioning control? i.e > > ``` > app.major > app.minor > app.revision > > ``` > And for the updating of resources: > > Just make a new version for the update and update it. Don't change the client versioning and make the player open the client via the updater. nah, some player sometimes open the client directly from client.exe, not from the updater if they do that, for example i make an update of some paperdoll user A has updated client, and he use the new equipment user B hasn't update his client when user B meet user A, he will got an 'unrecoverable DX8' error so it's recommended to make an force update for every update back to main problem, some player sometimes open the client directly from client.exe, not from the updater so this is the function of this mod, to warn a player if they don't open from updater :D (sorry for bad english)
  4. alternate you can use quest system feat event system make quest to kill that boss then in the stairs, make a conditional branch to check if the quest is completed, if it not completed, that player can go through that stair ;)
  5. Hello everyone :) I will share my simple mod to answer my friend thread ( [http://www.eclipseorigins.com/community/index.php?/topic/135149-how-to-force-player-update/](http://www.eclipseorigins.com/community/index.php?/topic/135149-how-to-force-player-update/) ) This mod just to save bandwith from the player when there is an update from your game… normally, when you want to force player to update their client, you change the version from client.exe from source and server.exe too... then you must upload your client.exe to updater to make player can play the game... but how if your update isn't update your client.exe? in example just update some resource... then this mod will help your player to save their bandwith... this mod make a new configuration for client version with .ini format client will read this configuration then send to the server to check if client is updated, if not it will show message box that their client isn't updated... so here is the code :lol: **CLIENT SECTION** open ``` modClientTCP ``` search for ``` Public Sub SendLogin ``` add ``` Dim filename As String Dim version As Long ``` under ``` Dim buffer As clsBuffer ``` under ``` If Options.Debug = 1 Then On Error GoTo ErrorHandler ``` add ``` filename = App.path & "\Data Files\version.ini" If Not FileExist(filename, True) Then version = 1 Else version = Val(GetVar(filename, "Version", "Version")) End If ``` in the same sub search for ``` buffer.WriteLong App.Major buffer.WriteLong App.Minor buffer.WriteLong App.Revision ``` and replace it into ``` buffer.WriteLong version ``` **SERVER SECTION** open ``` modHandleData ``` search for ``` If Buffer.ReadLong < CLIENT_MAJOR Or Buffer.ReadLong < CLIENT_MINOR Or Buffer.ReadLong < CLIENT_REVISION Then ``` and replace to ``` If Buffer.ReadLong < CVERSION Then ``` next open ``` modConstants ``` add ``` Public Const CVERSION As Byte = x ``` 'change x with your server version under ``` Public Const CLIENT_REVISION As Byte = 1 ``` **How to change version** in client folder, open data files folder make / edit a file with name "version.ini" (without **""**) inside a Version.ini, copy this code ``` [Version] Version= x ``` #change x with your server version then if you upload your client, remember to update version.ini too :P **Optional** You can encrypt your version.ini so player can't change their client version with easy way :biker: Download [attachment=1132:encrypter.rar] open it's source code look for **billymaho** then replace it to your special key :P go to client code replace ``` version = Val(GetVar(filename, "Version", "Version")) ``` with ``` Open filename For Input As #1 Line Input #1, txt Close #1 version = DecryptWithClipper(txt, "billymaho") ``` change billymaho with your special key then include **modEncrypt.bas** from attachment to your client source last,, open version.ini, clear entire data then insert your Encrypted Version from Encrypt - Decrypt.exe ;)
  6. > I am basically restating CoziBoy: > > Use a versioning system. Here is an example of a version 1.0.1\. When the player logs in or registers connects to the server send the version info along with the other data. Make the server check the version with the current version. The current version should be stored with the server. > > When an update takes place increase the version number on the new client and on the server by 1\. Then upload the client. > > If the versions don't match up show a message saying it's outdated and asking the player whether the game should be updated and the make the game start the updater and shut itself down. no, i mean he could make a modification, so we don't use client versioning but he can use a external versioning. in example make a configuration file in txt, when the game start client read the version from txt file then send it to server to check the version of the client. so when every update is avaiable, we don't need to reupload the client to use versioning system, but just the txt file :P i'll make the tutor later ;)
  7. i think you can make some modification with your client and server make a file in client folder, called version.ini place, for example, version=1 inside version.ini then in the client.vbp make some code to read the version.ini, then sent to the server in the server, make some code inside server.vbp to read the client version, if not match, show a msg box to warn player that their version isn't updated. this is more simple and easier rather than change your client.exe version, but if you do this player can easily made some modification to get rid of updating client :angry: sorry for bad english :(
  8. > You should be more specific… > > - What engine. > > - Afther doing what, attacking to player or enemy? > > - Show us the line where comes the error. i think i know the problem, but i don't know how to fix it is the problem of EFF, it happened when someone make a party then kill an npc with a drop the problem is notice who pick that drop item so in my EFF i clear that notice :(
  9. > Unfortunately, EFF does not have that feature; however, it does have an ability to deal different types of damage through combat to allow a more randomized battle damage. > > > > TO ALL OF ECLIPSE> > > I miss you guys. I hate how life gets so complicated you end up losing good things. Thank you all for your patience and support of EFF. I fear that people will soon make a free source engine with rips from mine and better features if they haven't all ready. So I did want to point out now that before that happens, everything I did for EFF, I did for this website. This website brought me in to the world of programming and now programming is my favorite hobby. It's what I do every single day. I'm even getting a bachelor's in Software and Mobile Application Programming. Though Eclipse may be a bunch of nerds and gamers, I love this place. If I ever make it somewhere in life and become the next Bill Gates or Steve Jobs, Eclipse and its community will be the Headliner of "How I got there". > > > > Thank you all for everything. thank you so much :( you're contribution is really awesome :( i'll miss you soon :(
  10. > When the book feature is finished, you'll only have to replace your Client executable file and possibly the Server executable. So don't worry. > > I feel I have an awesome addition coming to our gaming community here soon. > > It's an Updater application originally designed for this community, but will eventually serve a much broader scope of people. > > Instead of having to create a website and manage your files when they're updated, this application automatically detects ANY file that's a part of your game and updates your client whenever you want it to! And guess what, it all ready works 100%! There's nothing but good news when it comes to this Updater ladies and gentleman. You're gonna love it! how about you make a tutorial how to upgrade it with source? because there is many people like me have modified this source sorry for bad english
  11. > Depends on your engine and graphics library, but all you need to do is load/display the appropriate images and text when the user selects a different class. maybe he can use frmMenu.PictClasslogo.picture = blablabla
  12. coziboy

    Party Only Chat

    > ~~Umm isnt there already a party chat, with "/p" ?? o.O~~ > > lol, i though eo had party chat xD But if not then this is helpful. :) just like what i said, tested on eclipse the final frontier :lol: in this engine there is no party chat with /p command ;) CMIIW :P
  13. coziboy

    Party Only Chat

    > Saw one of these earlier on, but it's nice to see you come up with a useful tutorial! Keep up the good work ^_^ > There is a tutorial for this. But since this a first timer, keep up the good work! > > And also, just a suggestion: To make your code look a bit more neater, you could group together variable declaration. > > eg: > > ``` > dim var1 as string, var2 as string > dim num1 as long, num2 as byte > > ``` > etc my mistake, sorry.. :( > ``` > > Dim Msg As String > Dim s As String > Dim partynum As Long > Dim i As Long > > ``` > can also make bit shorter like > > > > ``` > > Dim Msg, s As String > Dim partynum, i As Long > > ``` > Thanks for tutorial ;) i think that will cause an error, if i'm sure that is vb.net script :huh: but thanks for everyone who tell me to simply this code :wub:
  14. coziboy

    Party Only Chat

    Okay this is my first tutorial or whatever you can say because this is just a little change from some code :P *tested on eclipse the final frontier *difficult: Very Easy (deathkeeper said :lol: ) **Client Side** open **modEnumeration** and add this ``` CSayParty ``` below ``` CSayMsg ``` then find in **modClientTCP** ``` Public Sub SayMsg(ByVal text As String) Dim buffer As clsBuffer ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo ErrorHandler Set buffer = New clsBuffer buffer.WriteLong CSayMsg buffer.WriteString text SendData buffer.ToArray() Set buffer = Nothing ' Error handler Exit Sub ErrorHandler: HandleError "SayMsg", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` below that add this ``` Public Sub PartyMsg(ByVal text As String) Dim buffer As clsBuffer ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo ErrorHandler Set buffer = New clsBuffer buffer.WriteLong CSayParty buffer.WriteString text SendData buffer.ToArray() Set buffer = Nothing ' Error handler Exit Sub ErrorHandler: HandleError "PartyMsg", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` then open **modInput** and search for ``` ' Say message If Len(chatText) > 0 Then Call SayMsg(MyText) End If ``` below that add this ``` 'Party Message If Left$(chatText, 1) = "~" Then chatText = Mid$(chatText, 2, Len(chatText) - 1) If Len(chatText) > 0 Then Call PartyMsg(chatText) End If MyText = vbNullString UpdateShowChatText Exit Sub End If ``` **Server Side** open **modEnumerations** then below ``` CSayMsg ``` add this ``` CSayParty ``` open **modHandleData** below ``` HandleDataSub(CSayMsg) = GetAddress(AddressOf HandleSayMsg) ``` add this ``` HandleDataSub(CSayParty) = GetAddress(AddressOf HandlePartyMsg) ``` still at **modHandleData**, search for this sub ``` Private Sub HandleSayMsg ``` below that sub add this sub ``` Public Sub HandlePartyMsg(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Msg As String, s As String Dim partynum As Long, i As Long Dim buffer As clsBuffer Set buffer = New clsBuffer buffer.WriteBytes Data() Msg = buffer.ReadString ' Prevent hacking For i = 1 To Len(Msg) If AscW(Mid$(Msg, i, 1)) < 32 Or AscW(Mid$(Msg, i, 1)) > 126 Then Exit Sub End If Next If Not TempPlayer(index).inParty > 0 Then PlayerMsg index, "You need to be in a party to talk in Party Chat!", BrightRed Exit Sub End If s = "[Party]" & GetPlayerName(index) & ": " & Msg partynum = TempPlayer(index).inParty PartyMsg partynum, "[Party] " & GetPlayerName(index) & " : " & Msg, Blue Call TextAdd(Msg) Call AddLog(s, PLAYER_LOG) Set buffer = Nothing End Sub ``` **_Done…_**
  15. > yeah you like a pet :poonbox: > > tell me if you got the bugs :ph34r: aye captain :wacko:
  16. my and deathkeeper mod to make such a dungeon party map with key replace ``` ' Check to see if its a Party Dungeon If Map(mapnum).Moral = MAP_MORAL_PARTY_MAP Then ' Check to make sure the player is in a party. If not exit the sub so they dont change maps If TempPlayer(index).inParty < 1 Then Call PlayerMsg(index, "This is a party map. You have to be in a party to enter it.", Red) Exit Sub End If End If ``` with ``` ' Check to see if its a Party Dungeon If Map(mapnum).Moral = MAP_MORAL_PARTY_MAP And GetPlayerAccess(index) = 0 Then If HasItem(index, 100) And TempPlayer(index).inParty > 0 Then TakeInvItem index, 100, 1 Else Call PlayerMsg(index, "You don't have dungeon key", Red) With Map(GetPlayerMap(index)) ' to the bootmap if it is set If .BootMap > 0 Then PlayerWarp index, .BootMap, .BootX, .BootY Else PlayerWarp index, START_MAP, START_X, START_Y End If End With Exit Sub End If ' Check to make sure the player is in a party. If not exit the sub so they dont change maps If TempPlayer(index).inParty < 1 Then Call PlayerMsg(index, "This is a party map. You have to be in a party to enter it.", Red) With Map(GetPlayerMap(index)) ' to the bootmap if it is set If .BootMap > 0 Then PlayerWarp index, .BootMap, .BootX, .BootY Else PlayerWarp index, START_MAP, START_X, START_Y End If End With Exit Sub End If If TempPlayer(index).inParty > 1 And HasItem(index, 100) = 0 Then Call PlayerMsg(index, "You have party but you don't have dungeon key!", Red) With Map(GetPlayerMap(index)) ' to the bootmap if it is set If .BootMap > 0 Then PlayerWarp index, .BootMap, .BootX, .BootY Else PlayerWarp index, START_MAP, START_X, START_Y End If End With Exit Sub End If If TempPlayer(index).inParty < 1 And HasItem(index, 100) = 1 Then Call PlayerMsg(index, "You have dungeon key but you dont' have party!", Red) With Map(GetPlayerMap(index)) ' to the bootmap if it is set If .BootMap > 0 Then PlayerWarp index, .BootMap, .BootX, .BootY Else PlayerWarp index, START_MAP, START_X, START_Y End If End With Exit Sub End If End If ``` look at ``` TakeInvItem index, 100, 1 ``` it mean when they want to enter dungeon, server will take item number #100 once you can change item number as you wish and you can combine this with this tutorial to make free daily key -> [http://www.eclipseorigins.com/community/index.php?/topic/130200-eo-daily-reward-system/](http://www.eclipseorigins.com/community/index.php?/topic/130200-eo-daily-reward-system/) :P
  17. i am a pet :o thanks for your tutor brother :wub:
  18. > arent you ruining fps by this? > > ``` > tmrPM = tick + 1000 'check every 1 seconds > > ``` > Just do check afther leaving party, if he leaves next what command comes is check in what map is he. ;) in fact, i don't know exactly about vb :( but when i used that function, and some modification in server, i can check player who leave party in party map and warp them to somewhere :D but if u can make it's more effective, i want to know it too :lol: (sorry for bad english :( )
  19. > is there check afther leaving party if player in party map? i have one open **modGameLogic** add ``` Dim tmrPM As Long ``` before ``` Dim tmr25 As Long ``` then below ``` ' * Check surface timers * ' Sprites ``` add ``` If tmrPM < tick Then If Map.Moral = MAP_MORAL_PARTY_MAP And GetPlayerAccess(MyIndex) < ADMIN_MAPPER Then If Party.Leader < 1 Then 'your command here End If End If tmrPM = tick + 1000 'check every 1 seconds End If ``` then open **modConstants** below ``` Public Const MAP_MORAL_SAFE As Byte = 1 ``` add ``` Public Const MAP_MORAL_PARTY_MAP As Byte = 2 ``` done :D
  20. maybe you want to add this to disable user from leaving party map… maybe if u want to make a dungeon mode with party map :D **CLIENT SIDE** open **modGeneral** below ``` Dim buffer As clsBuffer, I As Long ``` add ``` If Map.Moral = MAP_MORAL_PARTY_MAP And InGame = True Then Call AddText("You must leave dungeon first to exit from game", BrightGreen) Else ``` in same procedure below ``` 'frmMenu.lblNews.Visible = False ``` add this ``` End If ``` then open **modConstants** below ``` Public Const MAP_MORAL_SAFE As Byte = 1 ``` add this ``` Public Const MAP_MORAL_PARTY_MAP As Byte = 2 ``` sorry for bad english :P
  21. its my fault when mod this engine or there is bug when user event system - warp player, or use admin panel - warp to, suddenly server.exe got runtime '9' :? (sorry for bad english)
  22. im waiting for npc converter from previous version of EFF ;)
  23. > Did you set an npc to have the designated quest? > > > > > > > > Honestly, I'm not sure. It's been quite a while I know, but I've got some other important things to take care of. Like a source of transportation, a place to stay, and a job. Which I have the vehicle and job under control now for the most part. Now I'm working on getting a place of my own. > > > > EDIT: Actually, I've decided to quickly throw in a ranged projectile system and I'll have a working version for you in a couple days or so. The book option has yet to be completed though. Still lacking text. Other than that, it hasn't changed much. Other than an implemented full-screen mode that I have disabled for a god awful bug that I have to exterminate. Anyway…. Yup. Give the programming impaired a little hook up since I've been gone so long. go go go :D i really like your engine so much ;)
×
×
  • Create New...