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

Derryl

Members
  • Posts

    24
  • Joined

  • Last visited

    Never

Posts posted by Derryl

  1. "Project **Dark**" to "Saga of **Light**" pretty huge transition :P. Try making the main concept of your point less like all the other RPGs out there (social stuff, etc). For example you mentioned doing dungeons, that could be one of your main concepts and at least with that it'd stand out from being the average WIP. Ofcourse that's just a suggestion ;].
  2. 1) Your storyline is horribly written.
    2) The whole games concept is based around a war cause by an orc shooting someone.
    3) Your main feature is a race system.
    4) Your other systems are generic, tacky, etc.
    5) Shamans summon spirits, not undead.
    6) l2use proper forum software. It's not hard.

    And that's it. Don't bother giving one of your long silly argument posts with some silly argument that isn't relevant like you usually do, instead take those points into consideration.
  3. @D.J.:

    > Inb4 crit.
    >
    > Nice tutorial but here are some things you should take into account:
    >
    > 1\. That map is WAY too overcrowded.
    > 2\. Overall it does not look that good because of point number 1.
    >
    > Regards,
    >   Dewald

    Do you even know what "inb4 crit" is? If so are you being a complete idiot on purpose?

    Go outside, it's not all one patch of green and a house, is it? No, ofcourse it isn't. He's the used the perfect amount of detail.
  4. @Grimnnak:

    > It means you probably have some other Quest system and your trying to overwrite it with this one.

    > Just a re-iteration of something which Joe posted over in the 'Bugs & Errors' section.
    >
    > It's detrimental to the debugging process carried out by the skilled members of this forum, and no matter how much you think you're helping by telling them to restart their computer, you aren't. Stay quiet or you'll get a warning.
    >
    > Don't know the answer? Don't reply!
    >
    > Regards,
    > Robin
  5. @Smore:

    > Good feature, bad tutorial. You didn't say where to search for the code, lots of new programmers would be really confused by this.

    > Find ' Draw player names and ' Draw npc names

    If they don't know how to search then they shouldn't bother programming.
  6. This tutorial is basically about making a party chat message system. I use /p for mine. So you will have to change the numbers in the "/p" code to fit the way you're chat messages work. Lets begin.

    **Client Side**

    At the bottom of "modClientTCP" add:

    ```
    Public Sub SendPartyChatMsg(ByVal text As String)
        Dim Buffer As clsBuffer
        Set Buffer = New clsBuffer

        Buffer.WriteLong CPartyChatMsg
        Buffer.WriteString text

        SendData Buffer.ToArray()
        Set Buffer = Nothing
    End Sub
    ```
    In "modEnumerations", above:

    ```
    ' Make sure CMSG_COUNT is below everything else
    ```
    Add:

    ```
    CPartyChatMsg
    ```
    In "modInput", in "Sub Handlekeypresses" under:

    ```
    ' Handle when the player presses the return key
        If KeyAscii = vbKeyReturn Then
    ```
    Add:

    ```
    ' Party Msg
            If Left$(ChatText, 3) = "/p " Then
                ChatText = Mid$(ChatText, 4, Len(ChatText) - 3)

                If Len(ChatText) > 0 Then
                    Call SendPartyChatMsg(ChatText)
                End If

                MyText = vbNullString
                frmMain.txtMyChat.text = vbNullString
                Exit Sub
            End If
    ```
    And thats it for the client side. Again you will have to change the numbers in the above code if you want to use symbols to chat.

    **Server Side**

    In "modHandleData", in "Sub InitMessages" above the "End Sub" add:

    ```
    HandleDataSub(CPartyChatMsg) = GetAddress(AddressOf HandlePartyChatMsg)
    ```
    At the bottom of "modHandleData" add:

    ```
    Sub HandlePartyChatMsg(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
        Dim Buffer As clsBuffer

        Set Buffer = New clsBuffer
        Buffer.WriteBytes Data()
        PartyChatMsg Index, Buffer.ReadString, Pink
        Set Buffer = Nothing
    End Sub
    ```
    At the bottom of "modServerTCP" add:

    ```
    Public Sub PartyChatMsg(ByVal Index As Long, ByVal Msg As String, ByVal Color As Byte)
    Dim i As Long
    Dim Member As Integer
    Dim partyNum As Long

    partyNum = tempPlayer(Index).inParty

        ' not in a party?
        If tempPlayer(Index).inParty = 0 Then
            Call PlayerMsg(Index, "You are not in a party.", BrightRed)
            Exit Sub
        End If

        For i = 1 To MAX_PARTY_MEMBERS
            Member = Party(partyNum).Member(i)
            ' is online, does exist?
            If IsConnected(Party(partyNum).Member(i)) And IsPlaying(Party(partyNum).Member(i)) Then
            ' yep, send the message!
                Call PlayerMsg(Member, "[Party] " & GetPlayerName(Index) & ": " & Msg, Color)
            End If
        Next
    End Sub
    ```
    In "modEnumerations", above:

    ```
    ' Make sure CMSG_COUNT is below everything else
    ```
    Add:

    ```
    CPartyChatMsg
    ```
    And that's it. Goodluck.
  7. A lot of empty space, thats never good at all. If you're going to make a GUI that big you might aswell make a bigger picscreen to match it. But yeah, just reduce the wasted space.
  8. ```
    ' Character consts
    Public Const EqTop As Long = 224
    Public Const EqLeft As Long = 18
    Public Const EqOffsetX As Long = 10
    Public Const EqColumns As Long = 4
    ```
    Have a play around with those. You can find them in modConstants.
  9. 1\. Try this: http://www.touchofdeathforums.com/smf/index.php/topic,70769.0.html. You need VB6 to compile/save your changes after adding it, though.
    2\. Again, there's a tutorial for it: http://www.touchofdeathforums.com/smf/index.php/topic,71740.0.html. And yet again you need VB6.
    3\. Yes they do, you can change it in the NPC Editor (it's caption is "Range").
  10. What you've done isn't really an option.

    This would be how to add an actual option:

    Go to modTypes and scroll down to the "OptionsRec".

    Before the "End Type" add:

    ```
    Movement as Byte
    ```
    In modDatabase find:

    ```
    Call PutVar(fileName, "Options", "Debug", Str(Options.Debug))
    ```
    And under it add:

    ```
    Call PutVar(fileName, "Options", "Movement", Str(Options.Movement))
    ```
    Still in modOptions, in Sub LoadOptions under

    ```
    Options.Debug = 0
    ```
    Add:

    ```
    Options.Movement = 0
    ```
    Under:

    ```
    Options.Debug = GetVar(fileName, "Options", "Debug")
    ```
    Add:

    ```
    Options.Movement = GetVar(fileName, "Options", "Movement")
    ```
    Before "Error handler", add:

    ```
    If Options.Movement = 0 Then
            frmMain.optW.Value = True
        Else
            frmMain.optR.Value = True
        End If
    ```
    Finally, add these two subs at the end of the frmMain code:

    ```
    Private Sub optW_Click()
        ' If debug mode, handle error then exit out
        If Options.Debug = 1 Then On Error GoTo errorhandler

        Options.Movement = 0
        ' save to config.ini
        SaveOptions

        ' Error handler
        Exit Sub
    errorhandler:
        HandleError "optW_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
        Err.Clear
        Exit Sub

    Private Sub optR_Click()
        ' If debug mode, handle error then exit out
        If Options.Debug = 1 Then On Error GoTo errorhandler

        Options.Movement = 1
        ' save to config.ini
        SaveOptions

        ' Error handler
        Exit Sub
    errorhandler:
        HandleError "optR_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
        Err.Clear
        Exit Sub
    End Sub
    ```
    Thats it for the code. Remember to add: Movement= 0 in your config.ini.
  11. (For 3) Go to frmMain and open it's code. Under the "Option Explicit" at the very start add these:

    ```
    Private Declare Function ReleaseCapture Lib "user32" () As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    ```
    Now, in your Form_MouseMove sub above:

    ```
    If debug mode, handle error then exit out
    ```
    Add:

    ```
    Dim lngReturnValue As Long
    If Button = 1 Then
    Call ReleaseCapture
    lngReturnValue = SendMessage(Form1.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
    ```
×
×
  • Create New...