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

[CS:DE] to [EO] Conversation system V1.1


RyokuHasu
 Share

Recommended Posts

apparently since i'm the ~~only one~~ first to come out and say that he successfully converted the convo system from CSDE to EO every one and their grandma wants to know how I did it. lol So instead of helping you all out one by one I'll just make a tutorial on how to do it.

All credit (as far as I know) for this Mod goes to **Robin**

But that doesn't mean that you don't give me a thank you post for taking time to write this ;D

**BOTH CLIENT AND SERVER**

In mod constants

under ' General constants add

```

Public Const MAX_CONVS As Byte = 255

```

under ' Game editor constants add

```

Public Const EDITOR_CONV As Byte = 7

```

in modEnumerations

at the bottom of the "s" list add

```

SChatUpdate

SConvEditor

SUpdateConv

```

at the bottom of the "c" list add

```

CChatOption

CRequestEditConv

CSaveConv

CRequestConvs

```

in modTypes

under ' Public data structures add

```

Public Conv(1 To MAX_CONVS) As ConvWrapperRec

```

at the bottom of Private Type NpcRec add

```

Conv As Long

Convo As Boolean

```

add to the bottom of Private Type MapNpcRec

```

c_lastDir As Byte

c_inChatWith As Long

```

at the bottom of modTypes add

```

Private Type ConvRec

Conv As String

rText(1 To 4) As String

rTarget(1 To 4) As Long

Event As Long

Data1 As Long

Data2 As Long

Data3 As Long

End Type

Private Type ConvWrapperRec

Name As String * NAME_LENGTH

chatCount As Long

Conv() As ConvRec

End Type

```

**CLIENT SIDE**

Add the attached editor to your Client.

[http://heroofathea.c…Editor_Conv.frm](http://heroofathea.com/Downloads/frmEditor_Conv.frm)

In modClientTCP add at the bottom

```

Public Sub SendRequestEditConv()

Dim Buffer As clsBuffer

Set Buffer = New clsBuffer

Buffer.WriteLong CRequestEditConv

SendData Buffer.ToArray()

Set Buffer = Nothing

End Sub

Public Sub SendSaveConv(ByVal Convnum As Long)

Dim Buffer As clsBuffer

Dim i As Long

Dim x As Long

Set Buffer = New clsBuffer

Buffer.WriteLong CSaveConv

Buffer.WriteLong Convnum

With Conv(Convnum)

Buffer.WriteString .Name

Buffer.WriteLong .chatCount

For i = 1 To .chatCount

Buffer.WriteString .Conv(i).Conv

For x = 1 To 4

Buffer.WriteString .Conv(i).rText(x)

Buffer.WriteLong .Conv(i).rTarget(x)

Next

Buffer.WriteLong .Conv(i).Event

Buffer.WriteLong .Conv(i).Data1

Buffer.WriteLong .Conv(i).Data2

Buffer.WriteLong .Conv(i).Data3

Next

End With

SendData Buffer.ToArray()

Set Buffer = Nothing

End Sub

Sub SendRequestConvs()

Dim Buffer As clsBuffer

Set Buffer = New clsBuffer

Buffer.WriteLong CRequestConvs

SendData Buffer.ToArray()

Set Buffer = Nothing

End Sub

Public Sub SendChatOption(ByVal Index As Long)

Dim Buffer As clsBuffer

Set Buffer = New clsBuffer

Buffer.WriteLong CChatOption

Buffer.WriteLong Index

SendData Buffer.ToArray()

Set Buffer = Nothing

End Sub

```

in modDatabase add at the bottom

```

Sub ClearConv(ByVal Index As Long)

Call ZeroMemory(ByVal VarPtr(Conv(Index)), LenB(Conv(Index)))

Conv(Index).Name = vbNullString

ReDim Conv(Index).Conv(1)

End Sub

Sub ClearConvs()

Dim i As Long

For i = 1 To MAX_CONVS

Call ClearConv(i)

Next

End Sub

```

in modGameEditors add at the bottom

```

' /////////////////

' // Conv Editor //

' /////////////////

Public Sub ConvEditorInit()

Dim i As Long, n As Long

On Error Resume Next

If frmEditor_Conv.Visible = False Then Exit Sub

EditorIndex = frmEditor_Conv.lstIndex.ListIndex + 1

With frmEditor_Conv

.txtName.text = Trim$(Conv(EditorIndex).Name)

If Conv(EditorIndex).chatCount = 0 Then

Conv(EditorIndex).chatCount = 1

ReDim Preserve Conv(EditorIndex).Conv(1 To Conv(EditorIndex).chatCount)

End If

For n = 1 To 4

.cmbReply(n).Clear

.cmbReply(n).AddItem "None"

For i = 1 To Conv(EditorIndex).chatCount

.cmbReply(n).AddItem i

Next

Next

.scrlChatCount = Conv(EditorIndex).chatCount

.scrlConv.Max = Conv(EditorIndex).chatCount

.scrlConv.Value = 1

.txtConv = Conv(EditorIndex).Conv(.scrlConv.Value).Conv

For i = 1 To 4

.txtReply(i).text = Conv(EditorIndex).Conv(.scrlConv.Value).rText(i)

.cmbReply(i).ListIndex = Conv(EditorIndex).Conv(.scrlConv.Value).rTarget(i)

Next

.cmbEvent.ListIndex = Conv(EditorIndex).Conv(.scrlConv.Value).Event

.scrlData1.Value = Conv(EditorIndex).Conv(.scrlConv.Value).Data1

.scrlData2.Value = Conv(EditorIndex).Conv(.scrlConv.Value).Data2

.scrlData3.Value = Conv(EditorIndex).Conv(.scrlConv.Value).Data3

End With

Conv_Changed(EditorIndex) = True

End Sub

Public Sub ConvEditorOk()

Dim i As Long

For i = 1 To MAX_CONVS

If Conv_Changed(i) Then

Call SendSaveConv(i)

End If

Next

Unload frmEditor_Conv

Editor = 0

ClearChanged_Conv

End Sub

Public Sub ConvEditorCancel()

Editor = 0

Unload frmEditor_Conv

ClearChanged_Conv

ClearConvs

SendRequestConvs

End Sub

Public Sub ClearChanged_Conv()

ZeroMemory Conv_Changed(1), MAX_CONVS * 2 ' 2 = boolean length

End Sub

```

In modGlobals

under 'gui add

```

Public inChat As Boolean

```

under ' Editor edited items array add

```

Public Conv_Changed(1 To MAX_CONVS) As Boolean

```

In modHandleData

At the bottom of Public Sub InitMessages() add

```

HandleDataSub(SChatUpdate) = GetAddress(AddressOf HandleChatUpdate)

HandleDataSub(SConvEditor) = GetAddress(AddressOf HandleConvEditor)

HandleDataSub(SUpdateConv) = GetAddress(AddressOf HandleUpdateConv)

```

at the bottom of modHandleData add

```

Private Sub HandleConvEditor()

Dim i As Long

With frmEditor_Conv

Editor = EDITOR_CONV

.lstIndex.Clear

' Add the names

For i = 1 To MAX_CONVS

.lstIndex.AddItem i & ": " & Trim$(Conv(i).Name)

Next

.Show

.lstIndex.ListIndex = 0

ConvEditorInit

End With

End Sub

Private Sub HandleUpdateConv(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

Dim Convnum As Long

Dim Buffer As clsBuffer

Dim i As Long

Dim x As Long

Set Buffer = New clsBuffer

Buffer.WriteBytes Data()

Convnum = Buffer.ReadLong

With Conv(Convnum)

.Name = Buffer.ReadString

.chatCount = Buffer.ReadLong

ReDim Conv(Convnum).Conv(1 To .chatCount)

For i = 1 To .chatCount

.Conv(i).Conv = Buffer.ReadString

For x = 1 To 4

.Conv(i).rText(x) = Buffer.ReadString

.Conv(i).rTarget(x) = Buffer.ReadLong

Next

.Conv(i).Event = Buffer.ReadLong

.Conv(i).Data1 = Buffer.ReadLong

.Conv(i).Data2 = Buffer.ReadLong

.Conv(i).Data3 = Buffer.ReadLong

Next

End With

Set Buffer = Nothing

End Sub

Private Sub HandleChatUpdate(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

Dim Buffer As clsBuffer

Dim i As Long

Dim npcNum As Long

Dim mT As String

Dim o1 As String

Dim o2 As String

Dim o3 As String

Dim o4 As String

Set Buffer = New clsBuffer

Buffer.WriteBytes Data()

npcNum = Buffer.ReadLong

mT = Buffer.ReadString

o1 = Buffer.ReadString

o2 = Buffer.ReadString

o3 = Buffer.ReadString

o4 = Buffer.ReadString

Set Buffer = Nothing

' if npcNum is 0, exit the chat system

If npcNum = 0 Then

inChat = False

frmMain.picChat.Visible = False

Exit Sub

End If

' setup the main window

frmMain.lblChatName.Caption = Trim$(NPC(npcNum).Name)

frmMain.lblChat.Caption = mT

frmMain.lblChatOpt(1).Caption = o1

frmMain.lblChatOpt(2).Caption = o2

frmMain.lblChatOpt(3).Caption = o3

frmMain.lblChatOpt(4).Caption = o4

' render the face

frmMain.picChatFace.Picture = LoadPicture(App.Path & GFX_PATH & "\faces\" & NPC(npcNum).Sprite & ".bmp")

' make it visible

frmMain.picChat.Visible = True

' can't move

inChat = True

End Sub

```

**FORM WORK/CODE**

in frmMain

find your way to you admin panel and make a new editor cmd button as shown

![](http://www.mediafire.com/imgbnc.php/4f4e08fe8d93367bd088fffc27a5474e3646c59b421a562b88a0d42828c11a5f6g.jpg)

2x click it and add

```

If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then

AddText "You need to be a high enough staff member to do this!", AlertColor

Exit Sub

End If

SendRequestEditConv

```

Now make a Pic box and arrange it to look like this

![](http://www.mediafire.com/imgbnc.php/f6c2d5b102ef7b3a5270f4df1c9161db2da2b4d0c75535e8fd1784a5fd4f4e806g.jpg)

Name the parts as follows:

Large pic box = picChat

small pic box = picChatFace

top left label = lblChatName

bottom left label = lblChat (make this one large)

name all the labels on the right

lblChatOpt

and give each one an index in order, index can be found in the properties window.

lblChatOpt (1)

lblChatOpt (2)

lblChatOpt (3)

lblChatOpt (4)

2x click one of the options, any of them, and add

```

Private Sub lblChatOpt_Click(Index As Integer)

SendChatOption Index

End Sub

```

{if you set up the index for each right they should all link to that piece of code.}

in frmMain (code) find Private Sub Form_Unload(Cancel As Integer)

add before ' Error handler

```

picChat.Visible = False

```

In frmEditor_NPC

Stretch the right side of the form out a bit and add in the shown parts

![](http://www.mediafire.com/imgbnc.php/5a2573f1e0cb21807acc2a0e0a8a6932bc2819a6decce7930d0263d337cd796b6g.jpg)

Name the parts as follows:

checkbox = Chkconv

frame = FraConv

label = LblConvNum

scrollbar = ScrlConv

Set FraConv visible to False

2x click Chkconv and add

```

If Chkconv.Value = 1 Then

FraConv.Visible = True

NPC(EditorIndex).Convo = True

Else

FraConv.Visible = False

NPC(EditorIndex).Convo = False

End If

```

2x click ScrlConv and add

```

If scrlConv.Value > 0 Then

lblConvNum.Caption = "Conv: " & Trim$(Conv(scrlConv.Value).Name)

Else

lblConvNum.Caption = "Conv: None"

End If

NPC(EditorIndex).Conv = scrlConv.Value

```

In modGame Editors

in Public Sub NpcEditorInit()

ABOVE ' find the sound we have set add

```

If NPC(EditorIndex).Convo = True Then

.FraConv.Visible = True

.ScrlConv.Value = NPC(EditorIndex).Conv

.LblConvNum.Caption = NPC(EditorIndex).Conv

.Chkconv.Value = 1

Else

.FraConv.Visible = False

.ScrlConv.Value = 1

.LblConvNum.Caption = NPC(EditorIndex).Conv

.Chkconv.Value = 0

End If

```

**SERVER SIDE**

Add the attached modConv to your project

[http://heroofathea.c…ads/modConv.bas](http://www.touchofdeathforums.com/smf/index.php?action=dlattach;topic=74220.0;attach=19038)

in modCombat

in Public Function CanPlayerAttackNpc

under

```

If NpcX = GetPlayerX(attacker) Then

If NpcY = GetPlayerY(attacker) Then

```

add

```

If NPC(npcNum).Behaviour = NPC_BEHAVIOUR_FRIENDLY Then

If NPC(npcNum).Convo = True Then

InitChat attacker, mapNum, mapNpcNum

End If

Exit Function

End If

```

**OPTIONAL STEP**

If you already have the Speech Window mod add this instead of the last part

```

If NPC(npcNum).Behaviour = NPC_BEHAVIOUR_FRIENDLY Then

If NPC(npcNum).Convo = False Then

Call SpeechWindow(attacker, Trim$(NPC(npcNum).AttackSay), npcNum)

Else

InitChat attacker, mapNum, mapNpcNum

End If

Exit Function

End If

```

In modDatabase add at the bottom

```

' ***********

' ** Convs **

' ***********

Sub SaveConvs()

Dim i As Long

For i = 1 To MAX_CONVS

Call SaveConv(i)

Next

End Sub

Sub SaveConv(ByVal convNum As Long)

Dim filename As String

Dim i As Long, x As Long, F As Long

filename = App.Path & "\data\convs\conv" & convNum & ".dat"

F = FreeFile

Open filename For Binary As #F

With Conv(convNum)

Put #F, , .Name

Put #F, , .chatCount

For i = 1 To .chatCount

Put #F, , CLng(Len(.Conv(i).Conv))

Put #F, , .Conv(i).Conv

For x = 1 To 4

Put #F, , CLng(Len(.Conv(i).rText(x)))

Put #F, , .Conv(i).rText(x)

Put #F, , .Conv(i).rTarget(x)

Next

Put #F, , .Conv(i).Event

Put #F, , .Conv(i).Data1

Put #F, , .Conv(i).Data2

Put #F, , .Conv(i).Data3

Next

End With

Close #F

End Sub

Sub LoadConvs()

Dim filename As String

Dim i As Long, n As Long, x As Long, F As Long

Dim sLen As Long

Call CheckConvs

For i = 1 To MAX_CONVS

filename = App.Path & "\data\convs\conv" & i & ".dat"

F = FreeFile

Open filename For Binary As #F

With Conv(i)

Get #F, , .Name

Get #F, , .chatCount

If .chatCount > 0 Then ReDim .Conv(1 To .chatCount)

For n = 1 To .chatCount

Get #F, , sLen

.Conv(n).Conv = Space$(sLen)

Get #F, , .Conv(n).Conv

For x = 1 To 4

Get #F, , sLen

.Conv(n).rText(x) = Space$(sLen)

Get #F, , .Conv(n).rText(x)

Get #F, , .Conv(n).rTarget(x)

Next

Get #F, , .Conv(n).Event

Get #F, , .Conv(n).Data1

Get #F, , .Conv(n).Data2

Get #F, , .Conv(n).Data3

Next

End With

Close #F

Next

End Sub

Sub CheckConvs()

Dim i As Long

For i = 1 To MAX_CONVS

If Not FileExist("\data\convs\conv" & i & ".dat") Then

Call SaveConv(i)

End If

Next

End Sub

Sub ClearConv(ByVal index As Long)

Call ZeroMemory(ByVal VarPtr(Conv(index)), LenB(Conv(index)))

Conv(index).Name = vbNullString

ReDim Conv(index).Conv(1)

End Sub

Sub ClearConvs()

Dim i As Long

For i = 1 To MAX_CONVS

Call ClearConv(i)

Next

End Sub

```

In modGeneral

in Public Sub InitServer()

under ' Check if the directory is there, if its not make it

add

```

ChkDir App.Path & "\Data\", "convs"

```

under Public Sub ClearGameData() add

```

Call SetStatus("Clearing conversations...")

Call ClearConvs

```

under Private Sub LoadGameData() add

```

Call SetStatus("Loading conversations...")

Call LoadConvs

```

in modHadleData

under Public Sub InitMessages() add

```

HandleDataSub(CChatOption) = GetAddress(AddressOf HandleChatOption)

HandleDataSub(CRequestEditConv) = GetAddress(AddressOf HandleRequestEditConv)

HandleDataSub(CSaveConv) = GetAddress(AddressOf HandleSaveConv)

HandleDataSub(CRequestConvs) = GetAddress(AddressOf HandleRequestConvs)

```

and at the bottom of modHandleData add

```

Sub HandleChatOption(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

Dim Buffer As clsBuffer

Dim i As Long

Set Buffer = New clsBuffer

Buffer.WriteBytes Data()

chatOption index, Buffer.ReadLong

Set Buffer = Nothing

End Sub

' :::::::::::::::::::::::::::::

' :: Request edit Conv packet ::

' :::::::::::::::::::::::::::::

Sub HandleRequestEditConv(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

Dim Buffer As clsBuffer

' Prevent hacking

If GetPlayerAccess(index) < ADMIN_DEVELOPER Then

Exit Sub

End If

Set Buffer = New clsBuffer

Buffer.WriteLong SConvEditor

SendDataTo index, Buffer.ToArray()

Set Buffer = Nothing

End Sub

' :::::::::::::::::::::::

' :: Save Conv packet ::

' :::::::::::::::::::::::

Sub HandleSaveConv(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

Dim convNum As Long

Dim Buffer As clsBuffer

Dim i As Long

Dim x As Long

' Prevent hacking

If GetPlayerAccess(index) < ADMIN_DEVELOPER Then

Exit Sub

End If

Set Buffer = New clsBuffer

Buffer.WriteBytes Data()

convNum = Buffer.ReadLong

' Prevent hacking

If convNum < 0 Or convNum > MAX_CONVS Then

Exit Sub

End If

With Conv(convNum)

.Name = Buffer.ReadString

.chatCount = Buffer.ReadLong

ReDim .Conv(1 To .chatCount)

For i = 1 To .chatCount

.Conv(i).Conv = Buffer.ReadString

For x = 1 To 4

.Conv(i).rText(x) = Buffer.ReadString

.Conv(i).rTarget(x) = Buffer.ReadLong

Next

.Conv(i).Event = Buffer.ReadLong

.Conv(i).Data1 = Buffer.ReadLong

.Conv(i).Data2 = Buffer.ReadLong

.Conv(i).Data3 = Buffer.ReadLong

Next

End With

' Save it

Call SendUpdateConvToAll(convNum)

Call SaveConv(convNum)

Call AddLog(GetPlayerName(index) & " saved Conv #" & convNum & ".", ADMIN_LOG)

End Sub

Sub HandleRequestConvs(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

SendConvs index

End Sub

```

In modPlayer

in Sub JoinGame

under ' Send some more little goodies, no need to explain these

add

```

Call SendConvs(index)

```

in modServerTCP add at the bottom

```

Sub SendConvs(ByVal index As Long)

Dim i As Long

For i = 1 To MAX_CONVS

If LenB(Trim$(Conv(i).Name)) > 0 Then

Call SendUpdateConvTo(index, i)

End If

Next

End Sub

Sub SendUpdateConvToAll(ByVal convNum As Long)

Dim packet As String

Dim Buffer As clsBuffer

Dim i As Long

Dim x As Long

Set Buffer = New clsBuffer

Set Buffer = New clsBuffer

Buffer.WriteLong SUpdateConv

Buffer.WriteLong convNum

With Conv(convNum)

Buffer.WriteString .Name

Buffer.WriteLong .chatCount

For i = 1 To .chatCount

Buffer.WriteString .Conv(i).Conv

For x = 1 To 4

Buffer.WriteString .Conv(i).rText(x)

Buffer.WriteLong .Conv(i).rTarget(x)

Next

Buffer.WriteLong .Conv(i).Event

Buffer.WriteLong .Conv(i).Data1

Buffer.WriteLong .Conv(i).Data2

Buffer.WriteLong .Conv(i).Data3

Next

End With

SendDataToAll Buffer.ToArray()

Set Buffer = Nothing

End Sub

Sub SendUpdateConvTo(ByVal index As Long, ByVal convNum As Long)

Dim packet As String

Dim Buffer As clsBuffer

Dim i As Long

Dim x As Long

Set Buffer = New clsBuffer

Buffer.WriteLong SUpdateConv

Buffer.WriteLong convNum

With Conv(convNum)

Buffer.WriteString .Name

Buffer.WriteLong .chatCount

For i = 1 To .chatCount

Buffer.WriteString .Conv(i).Conv

For x = 1 To 4

Buffer.WriteString .Conv(i).rText(x)

Buffer.WriteLong .Conv(i).rTarget(x)

Next

Buffer.WriteLong .Conv(i).Event

Buffer.WriteLong .Conv(i).Data1

Buffer.WriteLong .Conv(i).Data2

Buffer.WriteLong .Conv(i).Data3

Next

End With

SendDataTo index, Buffer.ToArray()

Set Buffer = Nothing

End Sub

Sub SendChatUpdate(ByVal index As Long, ByVal npcNum As Long, ByVal mT As String, ByVal o1 As String, ByVal o2 As String, ByVal o3 As String, ByVal o4 As String)

Dim Buffer As clsBuffer

Set Buffer = New clsBuffer

Buffer.WriteLong SChatUpdate

Buffer.WriteLong npcNum

Buffer.WriteString mT

Buffer.WriteString o1

Buffer.WriteString o2

Buffer.WriteString o3

Buffer.WriteString o4

SendDataTo index, Buffer.ToArray()

Set Buffer = Nothing

End Sub

```

in modtypes

add to the botom of Public Type TempPlayerRec

```

inChatWith As Long

curChat As Long

c_mapNum As Long

c_mapNpcNum As Long

```

**DONE**

**Optional** (not tested)

Stop NPC movement while in chat, found by justn, made by Robin

modServerLoop

Private Sub UpdateMapLogic

under this

```
' /////////////////////////////////////////////

' // This is used for NPC walking/targetting //

' /////////////////////////////////////////////

' Make sure theres a npc with the map

If Map(mapnum).NPC(x) > 0 And MapNpc(mapnum).NPC(x).Num > 0 Then

If MapNpc(mapnum).NPC(x).StunDuration > 0 Then

' check if we can unstun them

If GetTickCount > MapNpc(mapnum).NPC(x).StunTimer + (MapNpc(mapnum).NPC(x).StunDuration * 1000) Then

MapNpc(mapnum).NPC(x).StunDuration = 0

MapNpc(mapnum).NPC(x).StunTimer = 0

End If

Else
```

add

```
' check if in conversation

If MapNpc(mapnum).NPC(x).c_inChatWith > 0 Then

' check if we can stop having conversation

If Not TempPlayer(MapNpc(mapnum).NPC(x).c_inChatWith).inChatWith = npcNum Then

MapNpc(mapnum).NPC(x).c_inChatWith = 0

MapNpc(mapnum).NPC(x).Dir = MapNpc(mapnum).NPC(x).c_lastDir

NpcDir mapnum, x, MapNpc(mapnum).NPC(x).Dir

End If

Else
```

bottom of mod conv add the sub closeplayerchat (the same thing basicly you had in the shop event

```
Public Sub ClosePlayerChat(ByVal index As Long)

' exit the chat

TempPlayer(index).inChatWith = 0

TempPlayer(index).curChat = 0

' send chat update

sendChat index

' send npc dir

With MapNpc(TempPlayer(index).c_mapNum).NPC(TempPlayer(index).c_mapNpcNum)

If .c_inChatWith = index Then

.c_inChatWith = 0

.Dir = .c_lastDir

NpcDir TempPlayer(index).c_mapNum, TempPlayer(index).c_mapNpcNum, .Dir

End If

End With

' clear last of data

TempPlayer(index).c_mapNpcNum = 0

TempPlayer(index).c_mapNum = 0

Exit Sub

End Sub

```

then under "SendBank index" in modconv add:

```
TempPlayer(index).InBank = True
```

then under "SendInventory index" in modconv add:

```
ClosePlayerChat index
```
Link to comment
Share on other sites

  • Replies 170
  • Created
  • Last Reply

Top Posters In This Topic

@Robin:

> Don't try and adopt my writing style and don't try and beg people to credit you for other people's code.

Im not, and I'm not.

I even said to credit you, I just want a post saying Thanks for writing this topic.

About your writing style… O.o... sorry didn't notice.
Link to comment
Share on other sites

the tutorial he said is something like this
@Jimmy:

> create a character value as long, like "firstlogin as long"
> and on the server side in the Sub LeftGame you put a command to change the firstlogin to 1, so after the first logout the value will be changed to 1
> then at the cliente side you create a function to open the conversation (or anything else you want) if the firstlogin value is 0.
> as the value was changed for 1 after the first logout, the conversation will not open again.
Link to comment
Share on other sites

then that not part of this convo system i don't think =P … try making another Q&A topic =D

As for the convo system Tutorial... XD I alsomt finished the Form work section. I forgot the coding now on the new form work XD

* * *

>.< ok ALL FORM WORK IS DONE XD Im such a forgetful tutorial author @w@
Link to comment
Share on other sites

@Aáron:

> Your not the only one to successfully convert it from CS:DE to EO. o.O

>.< ok point taken… but I was the first who came out and said he did it... you should see my PM box filled with requests to show how i did it =P

thus why this tut now exists XD
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...