20-01-2007, 11:18 AM
Client:
Server:
Code:
Public Sub SendMap()
Erase Buffer
Buffer = AddLongToBuffer(Buffer, GetPlayerMap(MyIndex))
Buffer = AddToBuffer(Buffer, VarPtr(Map), LenB(Map))
Call SendData(Buffer, SMsgMapData)
End Sub
Code:
Private Sub HandleSMsgMapData(ByVal index As Long, ByVal StartAddr As Long, ByVal ByteLen As Long, ByVal ExtraVar As Long)
Dim i As Long, MapNum As Long
Dim Buffer() As Byte
If HasAccess(index, ADMIN_MAPPER) = NO Then Exit Sub
Buffer = FillBuffer(StartAddr, ByteLen)
MapNum = GetLongFromBuffer(Buffer, True)
Call CopyMemory(ByVal VarPtr(Map(MapNum)), Buffer(0), LenB(Map(MapNum)))
Call SendMapNpcsToMap(MapNum)
Call SpawnMapNpcs(MapNum)
'Save the map
Call SaveMap(MapNum)
' Refresh map for everyone online
For i = 1 To HighIndex
If IsPlaying(i) And GetPlayerMap(i) = MapNum Then
Call PlayerWarp(i, MapNum, GetPlayerX(i), GetPlayerY(i))
End If
Next i
End Sub