Log inUsernamePassword
Log me on automatically each visit    
Register
Register
Log in to check your private messages
Log in to check your private messages
Elysium Source Forum Index » Approved Tutorials

Post new topic   Reply to topic
Diamond Paperdoll (v5) Goto page 1, 2, 3, 4, 5, 6  Next
View previous topic :: View next topic  
Author Message
pingu
"The Bird"


Joined: 23 Feb 2006
Posts: 3400
Location: Antartica
Points

PostPosted: Sun Sep 17, 2006 1:49 pm    Post subject: Diamond Paperdoll (v5) Reply with quote

Diamond Paperdoll (v5)
Made by pingu


I can't test it, so this remains UNTESTED until somebody comes along and tries it on a blank source. However, I have a feeling that it will work now because I know exactly what I did and exactly what I needed to do. A few times I had to go back and change something to make it work, so I think it will.

If it doesn't, it's Johnny's turn...


----------


SERVER SIDE


----------

Find and replace all instances of:
Code:
SendWornEquipment

With:
Code:
SendInvSlots


----------

Find: (keep in mind that there are two that need changing)
Code:
Sub SendInvSlots


Replace whole sub with:
Code:
Sub SendInvSlots(ByVal index As Long)
    Dim Packet As String

    If IsPlaying(index) Then
        Packet = "PLAYERINVSLOTS" & SEP_CHAR & GetPlayerArmorSlot(index) & SEP_CHAR & GetPlayerWeaponSlot(index) & SEP_CHAR & GetPlayerHelmetSlot(index) & SEP_CHAR & GetPlayerShieldSlot(index) & SEP_CHAR & END_CHAR
        Call SendDataTo(index, Packet)
    End If

End Sub

Sub SendWornEquipment(ByVal index As Long)
Dim Packet As String
Dim i As Long

    For i = 1 To MAX_PLAYERS
        If IsPlaying(i) Then
            If GetPlayerMap(index) = GetPlayerMap(i) And i <> index Then
                Packet = "PLAYERWORNEQ" & SEP_CHAR & i & SEP_CHAR
                If GetPlayerArmorSlot(i) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(i, GetPlayerArmorSlot(i)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                If GetPlayerWeaponSlot(i) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(i, GetPlayerWeaponSlot(i)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                If GetPlayerHelmetSlot(i) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(i, GetPlayerHelmetSlot(i)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                If GetPlayerShieldSlot(i) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(i, GetPlayerShieldSlot(i)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                Packet = Packet & END_CHAR
                Call SendDataTo(index, Packet)
               
                Packet = "PLAYERWORNEQ" & SEP_CHAR & index & SEP_CHAR
                If GetPlayerArmorSlot(index) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(index, GetPlayerArmorSlot(index)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                If GetPlayerWeaponSlot(index) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(index, GetPlayerWeaponSlot(index)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                If GetPlayerHelmetSlot(index) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(index, GetPlayerHelmetSlot(index)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                If GetPlayerShieldSlot(index) > 0 Then
                    Packet = Packet & GetPlayerInvItemNum(index, GetPlayerShieldSlot(index)) & SEP_CHAR
                Else
                    Packet = Packet & 0 & SEP_CHAR
                End If
                Packet = Packet & END_CHAR
                Call SendDataTo(i, Packet)
            End If
        End If
    Next
End Sub


----------

There are two options for this next piece depending on how styled you want the code to look. Only do one of them!

Option 1: Proper coding method.

Find all occurances of:
Code:
Call SendInvSlots(index)


Under, add:
Code:
Call SendWornEquipment(index)



Option 2: Quick and easy, but sloppy method.

At the bottom of SendInvSlots, add:
Code:
Call SendWornEquipment(index)



They both do the same thing, but have different styles. If the code is to be redistributed, I highly recommend option 1. Otherwise, option 2 works just as fine but is much easier to write.

----------


CLIENT SIDE


----------

Find:
Code:
LevelUpT As Long


Under, add:
Code:
ArmorNum As Long
    WeaponNum As Long
    ShieldNum As Long
    HelmetNum As Long


----------

Find:
Code:
Player(Index).SpellNum = 0


Under, add:
Code:
Player(Index).ArmorNum = 0
    Player(Index).WeaponNum = 0
    Player(Index).ShieldNum = 0
    Player(Index).HelmetNum = 0


----------

Find:
Code:
If Parse(0) = "playerworneq" Then


Replace whole condition with:
Code:
If Parse(0) = "playerworneq" Then
        z = Val(Parse(1))
        If z <= 0 Then Exit Sub
       
        Player(z).ArmorNum = Val(Parse(2))
        Player(z).WeaponNum = Val(Parse(3))
        Player(z).HelmetNum = Val(Parse(4))
        Player(z).ShieldNum = Val(Parse(5))
        Exit Sub
    End If
   
    If Parse(0) = "playerinvslots" Then
        Call SetPlayerArmorSlot(MyIndex, Val(Parse(1)))
        Call SetPlayerWeaponSlot(MyIndex, Val(Parse(2)))
        Call SetPlayerHelmetSlot(MyIndex, Val(Parse(3)))
        Call SetPlayerShieldSlot(MyIndex, Val(Parse(4)))
       
        If GetPlayerArmorSlot(MyIndex) > 0 Then
            Player(MyIndex).ArmorNum = GetPlayerInvItemNum(MyIndex, GetPlayerArmorSlot(MyIndex))
        Else
            Player(MyIndex).ArmorNum = 0
        End If
        If GetPlayerWeaponSlot(MyIndex) > 0 Then
            Player(MyIndex).WeaponNum = GetPlayerInvItemNum(MyIndex, GetPlayerWeaponSlot(MyIndex))
        Else
            Player(MyIndex).WeaponNum = 0
        End If
        If GetPlayerHelmetSlot(MyIndex) > 0 Then
            Player(MyIndex).HelmetNum = GetPlayerInvItemNum(MyIndex, GetPlayerHelmetSlot(MyIndex))
        Else
            Player(MyIndex).HelmetNum = 0
        End If
        If GetPlayerShieldSlot(MyIndex) > 0 Then
            Player(MyIndex).ShieldNum = GetPlayerInvItemNum(MyIndex, GetPlayerShieldSlot(MyIndex))
        Else
            Player(MyIndex).ShieldNum = 0
        End If
       
        Call UpdateVisInv
        Exit Sub
    End If


----------

Find:
Code:
Sub BltPlayer

and
Code:
Sub BltPlayerTop


Replace both whole subs with:
Code:
Sub BltPlayer(ByVal Index As Long)
Dim Anim As Byte
Dim x As Long, y As Long
Dim AttackSpeed As Long

    If GetPlayerWeaponSlot(Index) > 0 Then
        AttackSpeed = Item(Player(Index).WeaponNum).AttackSpeed
    Else
        AttackSpeed = 1000
    End If

    ' Only used if ever want to switch to blt rather then bltfast
    ' I suggest you don't use, because custom sizes won't work any longer
    With rec_pos
        .Top = GetPlayerY(Index) * PIC_Y + Player(Index).YOffset - (SIZE_Y - PIC_Y)
        .Bottom = .Top + PIC_Y
        .Left = GetPlayerX(Index) * PIC_X + Player(Index).XOffset + ((SIZE_X - PIC_X) / 2)
        .Right = .Left + PIC_X + ((SIZE_X - PIC_X) / 2)
    End With
   
    ' Check for animation
    Anim = 0
    If Player(Index).Attacking = 0 Then
        Select Case GetPlayerDir(Index)
            Case DIR_UP
                If (Player(Index).YOffset > PIC_Y / 2) Then Anim = 1
            Case DIR_DOWN
                If (Player(Index).YOffset < PIC_Y / 2 * -1) Then Anim = 1
            Case DIR_LEFT
                If (Player(Index).XOffset > PIC_Y / 2) Then Anim = 1
            Case DIR_RIGHT
                If (Player(Index).XOffset < PIC_Y / 2 * -1) Then Anim = 1
        End Select
    Else
        If Player(Index).AttackTimer + Int(AttackSpeed / 2) > GetTickCount Then
            Anim = 2
        End If
    End If
   
    ' Check to see if we want to stop making him attack
    If Player(Index).AttackTimer + AttackSpeed < GetTickCount Then
        Player(Index).Attacking = 0
        Player(Index).AttackTimer = 0
    End If
   
    x = GetPlayerX(Index) * PIC_X - (SIZE_X - PIC_X) / 2 + sx + Player(Index).XOffset
    y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset + (SIZE_Y - PIC_Y)
   
    rec.Left = (GetPlayerDir(Index) * (3 * (SIZE_X / PIC_X)) + (Anim * (SIZE_X / PIC_X))) * PIC_X
    rec.Right = rec.Left + SIZE_X
   
    If SIZE_X > PIC_X Then
        If x < 0 Then
            x = Player(Index).XOffset + sx + ((SIZE_X - PIC_X) / 2)
            If GetPlayerDir(Index) = DIR_RIGHT And Player(Index).Moving > 0 Then
                rec.Left = rec.Left - Player(Index).XOffset
            Else
                rec.Left = rec.Left - Player(Index).XOffset + ((SIZE_X - PIC_X) / 2)
            End If
        End If
       
        If x > MAX_MAPX * 32 Then
            x = MAX_MAPX * 32 + sx - ((SIZE_X - PIC_X) / 2) + Player(Index).XOffset
            If GetPlayerDir(Index) = DIR_LEFT And Player(Index).Moving > 0 Then
                rec.Right = rec.Right + Player(Index).XOffset
            Else
         rec.Right = rec.Right + Player(Index).XOffset - ((SIZE_X - PIC_X) / 2)
            End If
        End If
    End If
   
    If GetPlayerDir(Index) = DIR_UP Then
        If Player(Index).WeaponNum > 0 Then
            rec.Top = (Int(Item(Player(Index).WeaponNum).Pic / 6) + (SIZE_Y / PIC_Y)) * PIC_Y
            rec.Bottom = rec.Top + PIC_Y
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
       
        If Player(Index).ShieldNum > 0 Then
            rec.Top = (Int(Item(Player(Index).ShieldNum).Pic / 6) + (SIZE_Y / PIC_Y)) * PIC_Y
            rec.Bottom = rec.Top + PIC_Y
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
    End If
   
    rec.Top = GetPlayerSprite(Index) * SIZE_Y + (SIZE_Y - PIC_Y)
    rec.Bottom = rec.Top + PIC_Y
   
    Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_SpriteSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)

    If Player(Index).ArmorNum > 0 Then
        rec.Top = (Int(Item(Player(Index).ArmorNum).Pic / 6) + (SIZE_Y / PIC_Y)) * PIC_Y
        rec.Bottom = rec.Top + PIC_Y
        Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
    End If
   
    If Player(Index).HelmetNum > 0 Then
        rec.Top = (Int(Item(Player(Index).HelmetNum).Pic / 6) + (SIZE_Y / PIC_Y)) * PIC_Y
        rec.Bottom = rec.Top + PIC_Y
        Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
    End If
   
    If GetPlayerDir(Index) <> DIR_UP Then
        If Player(Index).ShieldNum > 0 Then
            rec.Top = (Int(Item(Player(Index).ShieldNum).Pic / 6) + (SIZE_Y / PIC_Y)) * PIC_Y
            rec.Bottom = rec.Top + PIC_Y
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
       
        If Player(Index).WeaponNum > 0 Then
            rec.Top = (Int(Item(Player(Index).WeaponNum).Pic / 6) + (SIZE_Y / PIC_Y)) * PIC_Y
            rec.Bottom = rec.Top + PIC_Y
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
    End If
End Sub

Sub BltPlayerTop(ByVal Index As Long)
Dim Anim As Byte
Dim x As Long, y As Long
Dim AttackSpeed As Long

    If GetPlayerWeaponSlot(Index) > 0 Then
        AttackSpeed = Item(Player(Index).WeaponNum).AttackSpeed
    Else
        AttackSpeed = 1000
    End If

    ' Only used if ever want to switch to blt rather then bltfast
    ' I suggest you don't use, because custom sizes won't work any longer
    With rec_pos
        .Top = GetPlayerY(Index) * PIC_Y + Player(Index).YOffset - (SIZE_Y - PIC_Y)
        .Bottom = .Top + PIC_Y
        .Left = GetPlayerX(Index) * PIC_X + Player(Index).XOffset + ((SIZE_X - PIC_X) / 2)
        .Right = .Left + PIC_X + ((SIZE_X - PIC_X) / 2)
    End With
   
    ' Check for animation
    Anim = 0
    If Player(Index).Attacking = 0 Then
        Select Case GetPlayerDir(Index)
            Case DIR_UP
                If (Player(Index).YOffset > PIC_Y / 2) Then Anim = 1
            Case DIR_DOWN
                If (Player(Index).YOffset < PIC_Y / 2 * -1) Then Anim = 1
            Case DIR_LEFT
                If (Player(Index).XOffset > PIC_Y / 2) Then Anim = 1
            Case DIR_RIGHT
                If (Player(Index).XOffset < PIC_Y / 2 * -1) Then Anim = 1
        End Select
    Else
        If Player(Index).AttackTimer + Int(AttackSpeed / 2) > GetTickCount Then
            Anim = 2
        End If
    End If
   
    ' Check to see if we want to stop making him attack
    If Player(Index).AttackTimer + AttackSpeed < GetTickCount Then
        Player(Index).Attacking = 0
        Player(Index).AttackTimer = 0
    End If
   
    x = GetPlayerX(Index) * PIC_X - (SIZE_X - PIC_X) / 2 + sx + Player(Index).XOffset
    y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
   
    rec.Left = (GetPlayerDir(Index) * (3 * (SIZE_X / PIC_X)) + (Anim * (SIZE_X / PIC_X))) * PIC_X
    rec.Right = rec.Left + SIZE_X
   
    If x < 0 Then
        x = Player(Index).XOffset + sx + ((SIZE_X - PIC_X) / 2)
        If GetPlayerDir(Index) = DIR_RIGHT And Player(Index).Moving > 0 Then
            rec.Left = rec.Left - Player(Index).XOffset
        Else
            rec.Left = rec.Left - Player(Index).XOffset + ((SIZE_X - PIC_X) / 2)
        End If
    End If
   
    If x > MAX_MAPX * 32 Then
        x = MAX_MAPX * 32 + sx - ((SIZE_X - PIC_X) / 2) + Player(Index).XOffset
        If GetPlayerDir(Index) = DIR_LEFT And Player(Index).Moving > 0 Then
            rec.Right = rec.Right + Player(Index).XOffset
        Else
            rec.Right = rec.Right + Player(Index).XOffset - ((SIZE_X - PIC_X) / 2)
        End If
    End If

    If GetPlayerDir(Index) = DIR_UP Then
        If Player(Index).WeaponNum > 0 Then
            rec.Top = Int(Item(Player(Index).WeaponNum).Pic / 6) * PIC_Y + (SIZE_Y - PIC_Y)
            rec.Bottom = rec.Top + (SIZE_Y - PIC_Y)
           
            If y < 0 Then
                y = 0
                If GetPlayerDir(Index) = DIR_DOWN And Player(Index).Moving > 0 Then
                    rec.Top = rec.Top - Player(Index).YOffset
                Else
                    rec.Top = rec.Top - Player(Index).YOffset + (SIZE_Y - PIC_Y)
                End If
            End If
   
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
   
        If Player(Index).ShieldNum > 0 Then
            rec.Top = Int(Item(Player(Index).ShieldNum).Pic / 6) * PIC_Y + (SIZE_Y - PIC_Y)
            rec.Bottom = rec.Top + (SIZE_Y - PIC_Y)
           
            y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
           
            If y < 0 Then
                y = 0
                If GetPlayerDir(Index) = DIR_DOWN And Player(Index).Moving > 0 Then
                    rec.Top = rec.Top - Player(Index).YOffset
                Else
                    rec.Top = rec.Top - Player(Index).YOffset + (SIZE_Y - PIC_Y)
                End If
            End If
           
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
    End If

    rec.Top = GetPlayerSprite(Index) * SIZE_Y
    rec.Bottom = rec.Top + (SIZE_Y - PIC_Y)
   
    y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
   
    If y < 0 Then
        y = 0
        If GetPlayerDir(Index) = DIR_DOWN And Player(Index).Moving > 0 Then
            rec.Top = rec.Top - Player(Index).YOffset
        Else
            rec.Top = rec.Top - Player(Index).YOffset + (SIZE_Y - PIC_Y)
        End If
    End If
   
    Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_SpriteSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)

    If Player(Index).ArmorNum > 0 Then
        rec.Top = Int(Item(Player(Index).ArmorNum).Pic / 6) * PIC_Y + (SIZE_Y - PIC_Y)
        rec.Bottom = rec.Top + (SIZE_Y - PIC_Y)
       
        y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
       
        If y < 0 Then
            y = 0
            If GetPlayerDir(Index) = DIR_DOWN And Player(Index).Moving > 0 Then
                rec.Top = rec.Top - Player(Index).YOffset
            Else
                rec.Top = rec.Top - Player(Index).YOffset + (SIZE_Y - PIC_Y)
            End If
        End If
       
        Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
    End If
   
    If Player(Index).HelmetNum > 0 Then
        rec.Top = Int(Item(Player(Index).HelmetNum).Pic / 6) * PIC_Y + (SIZE_Y - PIC_Y)
        rec.Bottom = rec.Top + (SIZE_Y - PIC_Y)
       
        y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
       
        If y < 0 Then
            y = 0
            If GetPlayerDir(Index) = DIR_DOWN And Player(Index).Moving > 0 Then
                rec.Top = rec.Top - Player(Index).YOffset
            Else
                rec.Top = rec.Top - Player(Index).YOffset + (SIZE_Y - PIC_Y) - 1
            End If
        End If
       
        Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
    End If
   
    If GetPlayerDir(Index) <> DIR_UP Then
        If Player(Index).WeaponNum > 0 Then
            rec.Top = Int(Item(Player(Index).WeaponNum).Pic / 6) * PIC_Y + (SIZE_Y - PIC_Y)
            rec.Bottom = rec.Top + (SIZE_Y - PIC_Y)
           
            y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
           
            If y < 0 Then
                y = 0
                If GetPlayerDir(Index) = DIR_DOWN And Player(Index).Moving > 0 Then
                    rec.Top = rec.Top - Player(Index).YOffset
                Else
                    rec.Top = rec.Top - Player(Index).YOffset + (SIZE_Y - PIC_Y)
                End If
            End If
           
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
       
        If y = 0 Then y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
   
        If Player(Index).ShieldNum > 0 Then
            rec.Top = Int(Item(Player(Index).ShieldNum).Pic / 6) * PIC_Y + (SIZE_Y - PIC_Y)
            rec.Bottom = rec.Top + (SIZE_Y - PIC_Y)
           
            y = GetPlayerY(Index) * PIC_Y - (SIZE_Y - PIC_Y) + sx + Player(Index).YOffset
           
            If y < 0 Then
                y = 0
                If GetPlayerDir(Index) = DIR_DOWN And Player(Index).Moving > 0 Then
                    rec.Top = rec.Top - Player(Index).YOffset
                Else
                    rec.Top = rec.Top - Player(Index).YOffset + (SIZE_Y - PIC_Y)
                End If
            End If
           
            Call DD_BackBuffer.BltFast(x - (NewPlayerX * PIC_X) - NewXOffset, y - (NewPlayerY * PIC_Y) - NewYOffset, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
        End If
    End If
End Sub


----------

Eh?
_________________


Last edited by pingu on Sat Oct 07, 2006 9:57 am; edited 3 times in total
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
frozengod
Sr. Member


Joined: 11 May 2006
Posts: 658
Location: Unknown
Points

PostPosted: Sun Sep 17, 2006 2:00 pm    Post subject: Reply with quote

Quote:
Find and replace all instances of:

Code:
SendWornEquipment


there is alot of these instances for every item it sends the worn equipment.
What about the SendOthers sub that was before ? do we delete that if we have done the other tutorial or ?

*edit* I have 1 sub SendInvSlots but no statements in my server project.
ill try it though.
_________________



Back to top
View user's profile Send private message
pingu
"The Bird"


Joined: 23 Feb 2006
Posts: 3400
Location: Antartica
Points

PostPosted: Sun Sep 17, 2006 2:20 pm    Post subject: Reply with quote

You'll need to do this on a blank source without an attempt of paperdoll. I'm basically renaming that function so that it makes more sense. Hit ctrl + F, click on "Replace", type in "SendWornEquipment" in the top box and then type "SendInvSlots". Make it search through the whole project and then hit "Replace All".

I seem to remember 22 as the number of replacements it made.
_________________
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
CuChulainn
Sr. Member


Joined: 13 Apr 2006
Posts: 1009

Points

PostPosted: Sun Sep 17, 2006 2:22 pm    Post subject: Reply with quote

Ima test this on a blank ed. Ill tell you how it works. Also, is the sprite thing fixed? It sets the head like 2 pixels to the right so it looks fuked up.
_________________


Last edited by CuChulainn on Sun Sep 03, 1675 13:37 pm; edited 2147483647 times in total
Back to top
View user's profile Send private message Send e-mail AIM Address MSN Messenger
pingu
"The Bird"


Joined: 23 Feb 2006
Posts: 3400
Location: Antartica
Points

PostPosted: Sun Sep 17, 2006 2:26 pm    Post subject: Reply with quote

CuChulainn wrote:
Ima test this on a blank ed. Ill tell you how it works. Also, is the sprite thing fixed? It sets the head like 2 pixels to the right so it looks fuked up.


You'll find out that that error is actually just bad graphics. If I were you, I'd move those graphics 2 pixels to the left and see what happens.
_________________
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
CuChulainn
Sr. Member


Joined: 13 Apr 2006
Posts: 1009

Points

PostPosted: Sun Sep 17, 2006 2:39 pm    Post subject: Reply with quote

hehe i actually tried it and it didnt work.
_________________


Last edited by CuChulainn on Sun Sep 03, 1675 13:37 pm; edited 2147483647 times in total
Back to top
View user's profile Send private message Send e-mail AIM Address MSN Messenger
frozengod
Sr. Member


Joined: 11 May 2006
Posts: 658
Location: Unknown
Points

PostPosted: Sun Sep 17, 2006 2:44 pm    Post subject: Reply with quote

Call SetPlayerArmorSlot(Index, Val(Parse(1)))

The Index is highlighted and says variable not defined. client side.

Remove the Index, or ??
_________________



Back to top
View user's profile Send private message
pingu
"The Bird"


Joined: 23 Feb 2006
Posts: 3400
Location: Antartica
Points

PostPosted: Sun Sep 17, 2006 2:50 pm    Post subject: Reply with quote

MyIndex.
_________________
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
CuChulainn
Sr. Member


Joined: 13 Apr 2006
Posts: 1009

Points

PostPosted: Sun Sep 17, 2006 3:32 pm    Post subject: Reply with quote

Find:
visual basic code:
If Parse(0) = "playerworneq" Then
        z = Val(Parse(1))
        If z <= 0 Then Exit Sub
       
        Player(z).ArmorNum = Val(Parse(2))
        Player(z).WeaponNum = Val(Parse(3))
        Player(z).HelmetNum = Val(Parse(4))
        Player(z).ShieldNum = Val(Parse(5))
        Exit Sub
    End If
   
    If Parse(0) = "playerinvslots" Then
        Call SetPlayerArmorSlot(MyIndex, Val(Parse(1)))
        Call SetPlayerWeaponSlot(MyIndex, Val(Parse(2)))
        Call SetPlayerHelmetSlot(MyIndex, Val(Parse(3)))
        Call SetPlayerShieldSlot(MyIndex, Val(Parse(4)))
       
        If GetPlayerArmorSlot(MyIndex) > 0 Then
            Player(MyIndex).ArmorNum = GetPlayerInvItemNum(MyIndex, GetPlayerArmorSlot(MyIndex))
        Else
            Player(MyIndex).ArmorNum = 0
        End If
        If GetPlayerWeaponSlot(MyIndex) > 0 Then
            Player(MyIndex).WeaponNum = GetPlayerInvItemNum(MyIndex, GetPlayerWeaponSlot(MyIndex))
        Else
            Player(MyIndex).WeaponNum = 0
        End If
        If GetPlayerHelmetSlot(MyIndex) > 0 Then
            Player(MyIndex).HelmetNum = GetPlayerInvItemNum(MyIndex, GetPlayerHelmetSlot(MyIndex))
        Else
            Player(MyIndex).HelmetNum = 0
        End If
        If GetPlayerShieldSlot(MyIndex) > 0 Then
            Player(MyIndex).ShieldNum = GetPlayerInvItemNum(MyIndex, GetPlayerShieldSlot(MyIndex))
        Else
            Player(MyIndex).ShieldNum = 0
        End If
       
        Call UpdateVisInv
        Exit Sub
    End If



----------

Thanks pingu, that makes sense...
_________________


Last edited by CuChulainn on Sun Sep 03, 1675 13:37 pm; edited 2147483647 times in total
Back to top
View user's profile Send private message Send e-mail AIM Address MSN Messenger
pingu
"The Bird"


Joined: 23 Feb 2006
Posts: 3400
Location: Antartica
Points

PostPosted: Sun Sep 17, 2006 3:38 pm    Post subject: Reply with quote

Fixed that up. Still, I don't see why you couldn't figure it out...
_________________
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
frozengod
Sr. Member


Joined: 11 May 2006
Posts: 658
Location: Unknown
Points

PostPosted: Sun Sep 17, 2006 4:12 pm    Post subject: Reply with quote

*Tested* Works 100% Fixes all Paperdolling Bugs and the main RTE 9 when a player joins the map bug, Move this baby to Approved tutorials ! Nice Work Pingu Very Happy
_________________



Back to top
View user's profile Send private message
loktar
Newcomer


Joined: 04 Sep 2006
Posts: 28

Points

PostPosted: Sun Sep 17, 2006 4:54 pm    Post subject: Reply with quote

sweet nice job!
_________________
Back to top
View user's profile Send private message
NexSteve
Sr. Member


Joined: 04 Mar 2006
Posts: 566
Location: Missouri
Points

PostPosted: Sun Sep 17, 2006 7:12 pm    Post subject: Reply with quote

Lol awsome thank god you fixed it this upload it was about 17% done when frozengod said it was fixed.Now i get my 15 hours of upload time back!
_________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Iceknight
Member


Joined: 15 Mar 2006
Posts: 151

Points

PostPosted: Thu Sep 21, 2006 12:21 pm    Post subject: Reply with quote

The paperdoll tutorial bug.

When I'm warp on an other map I dont see equipement. Try (or this bug)
Back to top
View user's profile Send private message
GameBoy
Sr. Member


Joined: 20 Aug 2006
Posts: 649
Location: UK
Points

PostPosted: Thu Sep 21, 2006 1:39 pm    Post subject: Reply with quote

Is this set up for 32x64 or can it be used with 32x32? I wanna try and rewrite this for another version of Elysium
_________________

Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Elysium Source Forum Index » Approved Tutorials All times are GMT - 5 Hours
Goto page 1, 2, 3, 4, 5, 6  Next
Page 1 of 6

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Powered by phpBB © 2001, 2002 phpBB Group
iCGstation v1.0 Template By Ray © 2003, 2004 iOptional