Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Paper Doll
#1
how do u install paper dolls? and how can i choose the sprite to be the paper doll?
Reply
#2
Step one:

Pirate yerself a copy of VB6.


Step two:

download a lot of shit from pscode.com

Step three:

download mirage source

Step four: learn how to program.

Step five: Give up and get someone to compile a copy of elysium diamond for you.
Reply
#3
lol xD
Reply
#4
I made the paperdoll... It's 100% working Smile Enjoy!
~ Client Side ~
Find:

Sub BltPlayer(ByVal Index As Long)


Replace It All With:

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

' Only used if ever want to switch to blt rather then bltfast
With rec_pos
.top = GetPlayerY(Index) * PIC_Y + Player(Index).YOffset
.Bottom = .top + PIC_Y
.Left = GetPlayerX(Index) * PIC_X + Player(Index).XOffset
.Right = .Left + PIC_X
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 + 500 > GetTickCount Then
Anim = 2
End If
End If

' Check to see if we want to stop making him attack
If Player(Index).AttackTimer + 1000 < GetTickCount Then
Player(Index).Attacking = 0
Player(Index).AttackTimer = 0
End If

rec.Left = (GetPlayerDir(Index) * 3 + Anim) * PIC_X
rec.Right = rec.Left + PIC_X

x = GetPlayerX(Index) * PIC_X + Player(Index).XOffset
y = GetPlayerY(Index) * PIC_Y + Player(Index).YOffset - 4

' Check if its out of bounds because of the offset
If y < 0 Then
y = 0
rec.top = rec.top + (y * -1)
End If

If GetPlayerDir(Index) = DIR_UP Then
If Player(Index).Shield > 0 Then
rec.top = Item(Player(Index).Shield).Pic * PIC_Y
rec.Bottom = rec.top + PIC_Y
Call DD_BackBuffer.BltFast(x, y, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End If
If Player(Index).Weapon > 0 Then
rec.top = Item(Player(Index).Weapon).Pic * PIC_Y
rec.Bottom = rec.top + PIC_Y
Call DD_BackBuffer.BltFast(x, y, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End If
End If

rec.top = GetPlayerSprite(Index) * PIC_Y
rec.Bottom = rec.top + PIC_Y

'Call DD_BackBuffer.Blt(rec_pos, DD_SpriteSurf, rec, DDBLT_WAIT Or DDBLT_KEYSRC)
Call DD_BackBuffer.BltFast(x, y, DD_SpriteSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)

If Player(Index).Armor > 0 Then
rec.top = Item(Player(Index).Armor).Pic * PIC_Y
rec.Bottom = rec.top + PIC_Y
Call DD_BackBuffer.BltFast(x, y, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End If
If Player(Index).Helmet > 0 Then
rec.top = Item(Player(Index).Helmet).Pic * PIC_Y
rec.Bottom = rec.top + PIC_Y
Call DD_BackBuffer.BltFast(x, y, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End If
If GetPlayerDir(Index) DIR_UP Then
If Player(Index).Shield > 0 Then
rec.top = Item(Player(Index).Shield).Pic * PIC_Y
rec.Bottom = rec.top + PIC_Y
Call DD_BackBuffer.BltFast(x, y, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End If
If Player(Index).Weapon > 0 Then
rec.top = Item(Player(Index).Weapon).Pic * PIC_Y
rec.Bottom = rec.top + PIC_Y
Call DD_BackBuffer.BltFast(x, y, DD_ItemSurf, rec, DDBLTFAST_WAIT Or DDBLTFAST_SRCCOLORKEY)
End If
End If
End Sub


Find:

Type PlayerRec


And Add:

Armor As Long
Helmet As Long
Shield As Long
Weapon As Long


Somewhere in HandleData add:

' ::::::::::::::::::::::::::::::::::::::::
' :: Index player worn equipment packet ::
' ::::::::::::::::::::::::::::::::::::::::
If LCase(Parse(0)) = "itemworn" Then
Player(Val(Parse(1))).Armor = Val(Parse(2))
Player(Val(Parse(1))).Weapon = Val(Parse(3))
Player(Val(Parse(1))).Helmet = Val(Parse(4))
Player(Val(Parse(1))).Shield = Val(Parse(5))
Exit Sub
End If



~ Server Side ~
Add These In Any Module:

Sub SendIndexWornEquipment(ByVal Index As Long)
Dim Packet As String
Dim Armor As Long
Dim Helmet As Long
Dim Shield As Long
Dim Weapon As Long

Armor = 0
Helmet = 0
Shield = 0
Weapon = 0

If GetPlayerArmorSlot(Index) > 0 Then Armor = GetPlayerInvItemNum(Index, GetPlayerArmorSlot(Index))
If GetPlayerHelmetSlot(Index) > 0 Then Helmet = GetPlayerInvItemNum(Index, GetPlayerHelmetSlot(Index))
If GetPlayerShieldSlot(Index) > 0 Then Shield = GetPlayerInvItemNum(Index, GetPlayerShieldSlot(Index))
If GetPlayerWeaponSlot(Index) > 0 Then Weapon = GetPlayerInvItemNum(Index, GetPlayerWeaponSlot(Index))

Packet = "itemworn" & SEP_CHAR & Index & SEP_CHAR & Armor & SEP_CHAR & Weapon & SEP_CHAR & Helmet & SEP_CHAR & Shield & SEP_CHAR & END_CHAR
Call SendDataToMap(GetPlayerMap(Index), Packet)
End Sub

Sub SendIndexWornEquipmentFromMap(ByVal Index As Long)
Dim Packet As String
Dim i As Long
Dim Armor As Long
Dim Helmet As Long
Dim Shield As Long
Dim Weapon As Long

For i = 1 To MAX_PLAYERS
If IsPlaying(i) = True Then
If GetPlayerMap(Index) = GetPlayerMap(i) Then
Armor = 0
Helmet = 0
Shield = 0
Weapon = 0

If GetPlayerArmorSlot(i) > 0 Then Armor = GetPlayerInvItemNum(i, GetPlayerArmorSlot(i))
If GetPlayerHelmetSlot(i) > 0 Then Helmet = GetPlayerInvItemNum(i, GetPlayerHelmetSlot(i))
If GetPlayerShieldSlot(i) > 0 Then Shield = GetPlayerInvItemNum(i, GetPlayerShieldSlot(i))
If GetPlayerWeaponSlot(i) > 0 Then Weapon = GetPlayerInvItemNum(i, GetPlayerWeaponSlot(i))

Packet = "itemworn" & SEP_CHAR & i & SEP_CHAR & Armor & SEP_CHAR & Weapon & SEP_CHAR & Helmet & SEP_CHAR & Shield & SEP_CHAR & END_CHAR
Call SendDataTo(Index, Packet)
End If
End If
Next i
End Sub


Find:

"useitem"


Near The Bottom Of The Packet But Before Exit Sub Add:

' Send everyone player's equipment
Call SendIndexWornEquipment(Index)


Now Find:

"needmap"


Right Before Exit Sub Add:

' Send everyone player's equipment
Call SendIndexWornEquipment(Index)
Call SendIndexWornEquipmentFromMap(Index)
Reply
#5
GSD released a copy of this already. Though it's not like it's all that hard to do in the first place. :roll:
Reply
#6
does thsi paperdoll work 100%.

I now he says it does i just need some confirmation on that befor i go ahead and add it in my source?
Reply
#7
Fabzy Wrote:does thsi paperdoll work 100%.

I now he says it does i just need some confirmation on that befor i go ahead and add it in my source?
It works 100%, you just need to figure out how it works, since most of the paperdoll systems works a little different. It has been added 100times by different users.
Reply
#8
It works 100% but you won't be able to make it look good until you learn to program and can then program for each individual item how it should appear, so they don't overlap and the such.

Hint:

Flatten the costume on a different layer before making it appear on the backbuffer Wink
Quote:Robin:
Why aren't maps and shit loaded up in a dynamic array?
Jacob:
the 4 people that know how are lazy
Robin:
Who are those 4 people?
Jacob:
um
you, me, and 2 others?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)