Print Page | Close Window

Map Report

Printed From: Mirage Source
Category: Tutorials
Forum Name: Temporary Archive (Read Only)
Forum Discription: Temporary 3.0.3 archive tutorials, will be deleted when converted.
URL: http://ms.shannaracorp.com/backup-forums/forum_posts.asp?TID=129
Printed Date: 20 December 2006 at 5:52pm
Software Version: Web Wiz Forums 8.01 - http://www.webwizforums.com


Topic: Map Report
Posted By: Sync
Subject: Map Report
Date Posted: 11 February 2006 at 2:40pm
Difficulty: Medium 4/5

Originaly Posted By: Dragoons Master

Map Report!!!!!!!!
 
Finally I finished it!
It´s a little big but it works great!
MAKING IT YOU WILL LOOSE ALL YOUR MAPS!!!
I dont know if there is some better way to make it so if some 1 does, reply plz, hehe

Client side:

In frmIndex, replace:

Private Sub cmdCancel_Click()
    InItemsEditor = False
    InNpcEditor = False
    InShopEditor = False
    InSpellEditor = False
    Unload frmIndex
End Sub

with:

Private Sub cmdCancel_Click()
    InItemsEditor = False
    InNpcEditor = False
    InShopEditor = False
    InSpellEditor = False
    InMapReport = False
    Unload frmIndex
End Sub

Replace:

Private Sub cmdOk_Click()
    EditorIndex = lstIndex.ListIndex + 1
   
    If InItemsEditor = True Then
        Call SendData("EDITITEM" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
    End If
    If InNpcEditor = True Then
        Call SendData("EDITNPC" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
    End If
    If InShopEditor = True Then
        Call SendData("EDITSHOP" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
    End If
    If InSpellEditor = True Then
        Call SendData("EDITSPELL" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
    End If
    If InMapReport = True Then
        Call SendData("REPORTMAP" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
    End If
    Unload frmIndex
End Sub

With:

Private Sub cmdOk_Click()
    EditorIndex = lstIndex.ListIndex + 1
   
    If InItemsEditor = True Then
        Call SendData("EDITITEM" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
        Unload frmIndex
    End If
    If InNpcEditor = True Then
        Call SendData("EDITNPC" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
        Unload frmIndex
    End If
    If InShopEditor = True Then
        Call SendData("EDITSHOP" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
        Unload frmIndex
    End If
    If InSpellEditor = True Then
        Call SendData("EDITSPELL" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
        Unload frmIndex
    End If
    If InMapReport = True Then
        Call SendData("REPORTMAP" & SEP_CHAR & EditorIndex & SEP_CHAR & END_CHAR)
    End If
End Sub


In frmMirage in your admin menu add a button called btnMapreport and Caption seted to Map Report

Add this sub anywhere in there:

Private Sub btnMapreport_Click()
   If GetPlayerAccess(MyIndex) >= ADMIN_MAPPER Then
      Call SendRequestMapReport
   Else: Call AddText("You are not authorized to carry out that action", BrightRed)
   End If
End Sub


In modClientTCP, add this sub any where:

Sub SendRequestMapReport()
Dim packet As String

    packet = "REQUESTMAPREPORT" & SEP_CHAR & END_CHAR
    Call SendData(packet)
End Sub


and under:

    ' :: Item editor packet ::

add:

    ' :::::::::::::::::::::::
    ' :: Map Report packet ::
    ' :::::::::::::::::::::::
    If (LCase(Parse(0)) = "mapreport") Then
        Dim MapNumber As String
        Dim TmpMap As MapRec

        InMapReport = True
       
        frmIndex.Show
        frmIndex.lstIndex.Clear
        For i = 1 To MAX_MAPS
             MapNumber = GetMapName(i)
             ' Add the names
             frmIndex.lstIndex.AddItem i & ": " & MapNumber
        Next i

        frmIndex.lstIndex.ListIndex = 0
        Exit Sub
    End If

And under:

' :: Edit item packet :: <- Used for item editor admins only

add:

    ' :::::::::::::::::::::::
    ' :: Report Map packet ::
    ' :::::::::::::::::::::::
    If (LCase(Parse(0)) = "reportmap") Then
        n = Val(Parse(1))
        Call WarpTo(n)
        Exit Sub
    End If

and in:

Sub SendMap()

replace:

packet = "MAPDATA" & SEP_CHAR & GetPlayerMap(MyIndex) & SEP_CHAR & Trim(Map.Name) & SEP_CHAR & Map.Revision & SEP_CHAR & Map.Moral & SEP_CHAR & Map.Up & SEP_CHAR & Map.Down & SEP_CHAR & Map.Left & SEP_CHAR & Map.Right & SEP_CHAR & Map.Music & SEP_CHAR & Map.BootMap & SEP_CHAR & Map.BootX & SEP_CHAR & Map.BootY & SEP_CHAR & Map.Shop & SEP_CHAR

with:

packet = "MAPDATA" & SEP_CHAR & GetPlayerMap(MyIndex) & SEP_CHAR & Trim(Map.Name) & SEP_CHAR & Map.Revision & SEP_CHAR & Map.Moral & SEP_CHAR & Map.Up & SEP_CHAR & Map.Down & SEP_CHAR & Map.Left & SEP_CHAR & Map.Right & SEP_CHAR & Map.Music & SEP_CHAR & Map.BootMap & SEP_CHAR & Map.BootX & SEP_CHAR & Map.BootY & SEP_CHAR & Map.Shop & SEP_CHAR & Map.Number & SEP_CHAR

In modDatabase add this subs:

Function GetMapNumber(ByVal Mapnum As Long) As Long
Dim FileName As String
Dim f As Long
Dim TmpMap As MapRec

    FileName = App.Path & "\maps\map" & Mapnum & ".dat"
       
    f = FreeFile
    Open FileName For Binary As #f
        Get #f, , TmpMap
    Close #f
       
    GetMapNumber = TmpMap.Number
End Function

Function GetMapName(ByVal Mapnum As Long) As String
Dim FileName As String
Dim f As Long
Dim TmpMap As MapRec

    FileName = App.Path & "\maps\map" & Mapnum & ".dat"
       
    f = FreeFile
    Open FileName For Binary As #f
        Get #f, , TmpMap
    Close #f
       
    GetMapName = TmpMap.Name
End Function


In modTypes, under:

Npc(1 To MAX_MAP_NPCS) As Byte


In this type add:

    Number As Long

In sub:

Sub ClearMap()

under:

    Map.Name = ""

add:

    Map.Number = 0

All Client Side!!!!!!!!!!!!!!!!!!!!



SERVER SIDE:



In modServerTCP find:

' :: Request edit item packet ::

under that add:

    ' :::::::::::::::::::::::::::::::
    ' :: Request map report packet ::
    ' :::::::::::::::::::::::::::::::
    If LCase(Parse(0)) = "requestmapreport" Then
        ' Prevent hacking
        If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then
             Call HackingAttempt(Index, "Admin Cloning")
             Exit Sub
        End If
       
        Call SendDataTo(Index, "MAPREPORT" & SEP_CHAR & END_CHAR)
        Exit Sub
    End If

under:

     ' :: Respawn map packet ::

add:

Sub SendEditSpellTo(ByVal Index As Long, ByVal SpellNum As Long)

add this sub:

Sub SendMapReportTo(ByVal Index As Long, ByVal MapNum As Long)
Dim packet As String

    packet = "REPORTMAP" & SEP_CHAR & MapNum & SEP_CHAR & Trim(Map(MapNum).Name) & END_CHAR
    Call SendDataTo(Index, packet)
End Sub

find:

    ' :: Map data packet ::

under:

Map(MapNum).Shop = Val(Parse(n + 12))

add:

Map(MapNum).Number = Val(Parse(n + 13))

replace:

n = n + 13

with:

n = n + 14

In modDatabase find:

        NewMap.Shop = OldMap.Shop

under that add:

        NewMap.Number = OldMap.Number

In modTypes under:

Type OldMapRec

add:

    Number As Long

under:

Type MapRec

add:

    Number As Long

in sub:

Sub ClearMap(ByVal MapNum As Long)

under:

    Map(MapNum).Name = ""

add:

    Map(MapNum).Number = 0



WOW! Finished...

If you got some bug reply, =D

Edit:

Forgot 1 thing:

In modGamelogic, find:

Public InSpellEditor As Boolean

Under this add:

Public InMapReport As Boolean

Now it shoud work...



Print Page | Close Window

Bulletin Board Software by Web Wiz Forums version 8.01 - http://www.webwizforums.com
Copyright ©2001-2006 Web Wiz Guide - http://www.webwizguide.info