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

Sprite change help please


Sablefalcon
 Share

Recommended Posts

OK I give.

This works:

Sub ScriptedItem(Index, Script)
Select Case Script
Case 0

                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

Exit Sub
This doesn't:

Sub ScriptedItem(Index, Script)
Select Case Script
Case 0
                        Call GetPlayerSprite(Index)
                        If GetPlayerSprite(Index) = 0 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

Exit Sub

Why?
Link to comment
Share on other sites

Hi, im new but i know answer why :).
Look **if** your **index=0** then your sprite will be nr 30\. If not, nothink happend. I think you will try so:

Sub ScriptedItem(Index, Script)
   Select Case Script
      Case 0
                        Call GetPlayerSprite(Index)
                        If GetPlayerSprite(Index) = 0 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)
      else
                       Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)
    Exit Sub

Im not sure, but will be work now?.
Link to comment
Share on other sites

You forgot an end if. And you don't have to do a call for the player sprite first unless you put it in a variable.

Try this
```
Sub ScriptedItem(Index, Script)
Select Case Script
Case 0
                        If GetPlayerSprite(Index) = 0 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)
                        [b]End if[/b]

Exit Sub
```
Link to comment
Share on other sites

That Worked.  Thanks, and now because of your help, my daughters can change hair styles and hair color…..oh the joys of fatherhood. :)

just to be sure:

the continuation of this will be:

Sub ScriptedItem(Index, Script)
Select Case Script
Case 0
                        If GetPlayerSprite(Index) = 0 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

                        Else If GetPlayerSprite(Index) = # Then
                        Call SetPlayerSprite(Index, #)
                        SendPlayerData(Index)

                        Else If GetPlayerSprite(Index) = # Then
                        Call SetPlayerSprite(Index, #)
                        SendPlayerData(Index)

                        End if

Exit Sub

Correct?
Link to comment
Share on other sites

OK Case 0 worked fine, until I added Case 1, which was a different item, now neither works.

Select Case Script
Case 0

                      If GetPlayerSprite(Index) = 30 Then
                        Call SetPlayerSprite(Index, 0)
                        SendPlayerData(Index)                     

                        ElseIf GetPlayerSprite(Index) = 31 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 32 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 33 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 34 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 34 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 36 Then
                        Call SetPlayerSprite(Index, 30)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 15 Then
                        Call SetPlayerSprite(Index, 37)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 38 Then
                        Call SetPlayerSprite(Index, 37)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 39 Then
                        Call SetPlayerSprite(Index, 37)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 40 Then
                        Call SetPlayerSprite(Index, 37)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 41 Then
                        Call SetPlayerSprite(Index, 37)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 42 Then
                        Call SetPlayerSprite(Index, 37)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 43 Then
                        Call SetPlayerSprite(Index, 37)
                        SendPlayerData(Index)

                        End If
                        Exit Sub

Case Else
Call PlayerMsg(Index, "No item script found. Please contact an admin to solve this problem.", WHITE)
Exit Sub

Case 1

                      If GetPlayerSprite(Index) = 0 Then
                        Call SetPlayerSprite(Index, 31)
                        SendPlayerData(Index)                     

                        ElseIf GetPlayerSprite(Index) = 30 Then
                        Call SetPlayerSprite(Index, 31)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 32 Then
                        Call SetPlayerSprite(Index, 31)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 33 Then
                        Call SetPlayerSprite(Index, 31)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 34 Then
                        Call SetPlayerSprite(Index, 31)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 34 Then
                        Call SetPlayerSprite(Index, 31)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 36 Then
                        Call SetPlayerSprite(Index, 31)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 15 Then
                        Call SetPlayerSprite(Index, 40)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 38 Then
                        Call SetPlayerSprite(Index, 40)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 39 Then
                        Call SetPlayerSprite(Index, 40)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 37 Then
                        Call SetPlayerSprite(Index, 40)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 41 Then
                        Call SetPlayerSprite(Index, 40)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 42 Then
                        Call SetPlayerSprite(Index, 40)
                        SendPlayerData(Index)

                        ElseIf GetPlayerSprite(Index) = 43 Then
                        Call SetPlayerSprite(Index, 40)
                        SendPlayerData(Index)

                        End If

Exit Sub

Case Else
Call PlayerMsg(Index, "No item script found. Please contact an admin to solve this problem.", WHITE)
Exit Sub

End Select
End Sub

I hate to keep bugging you guys, I'm just learning scripting, and missing something here.
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...