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

ALERT!! noob question


Sablefalcon
 Share

Recommended Posts

OK thanks to a couple of guys answering questions, and a good deal of research on my part, I have my first script up and running.  My daughters asked for hair dyes, so it works now.  Each color is a Case, and the whole thing is scripted Items…buy a bottle of dye, doubleclick, and your hair color changes.  Anyway.....It took 8 Cases to do the script, and each case is 75 lines, it's a fairly long script.  It will grow extremely long when I add 4 more hair styles in all 8 available colors, this is only 1 hairstyle male and 1 for female.  I'll post it here for reference, but my question is, can a variable take the place of a bunch of lines in a case like this?

> Case 0
>
>                         If GetPlayerSprite(Index) = 0 Then
>                         Call SetPlayerSprite(Index, 30)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>                        
>                         ElseIf GetPlayerSprite(Index) = 31 Then
>                         Call SetPlayerSprite(Index, 30)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 32 Then
>                         Call SetPlayerSprite(Index, 30)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 33 Then
>                         Call SetPlayerSprite(Index, 30)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 30)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 30)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 36 Then
>                         Call SetPlayerSprite(Index, 30)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 15 Then
>                         Call SetPlayerSprite(Index, 37)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 38 Then
>                         Call SetPlayerSprite(Index, 37)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 39 Then
>                         Call SetPlayerSprite(Index, 37)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 40 Then
>                         Call SetPlayerSprite(Index, 37)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 41 Then
>                         Call SetPlayerSprite(Index, 37)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 42 Then
>                         Call SetPlayerSprite(Index, 37)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 43 Then
>                         Call SetPlayerSprite(Index, 37)
>                         Call TakeItem(Index, 96)
>                         SendPlayerData(Index)
>
>                         End if
>  
> Exit Sub
>
> Case 1
>
>                       If GetPlayerSprite(Index) = 0 Then
>                         Call SetPlayerSprite(Index, 31)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)                     
>
>                         ElseIf GetPlayerSprite(Index) = 30 Then
>                         Call SetPlayerSprite(Index, 31)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 32 Then
>                         Call SetPlayerSprite(Index, 31)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 33 Then
>                         Call SetPlayerSprite(Index, 31)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 31)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 35 Then
>                         Call SetPlayerSprite(Index, 31)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 36 Then
>                         Call SetPlayerSprite(Index, 31)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>                        
>
>                         ElseIf GetPlayerSprite(Index) = 15 Then
>                         Call SetPlayerSprite(Index, 40)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 38 Then
>                         Call SetPlayerSprite(Index, 40)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 39 Then
>                         Call SetPlayerSprite(Index, 40)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 37 Then
>                         Call SetPlayerSprite(Index, 40)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 41 Then
>                         Call SetPlayerSprite(Index, 40)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 42 Then
>                         Call SetPlayerSprite(Index, 40)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 43 Then
>                         Call SetPlayerSprite(Index, 40)
>                         Call TakeItem(Index, 97)
>                         SendPlayerData(Index)
>
>                         End If
>
> Exit Sub
>
> Case 2
>
>                       If GetPlayerSprite(Index) = 0 Then
>                         Call SetPlayerSprite(Index, 33)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)                     
>
>                         ElseIf GetPlayerSprite(Index) = 30 Then
>                         Call SetPlayerSprite(Index, 33)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 32 Then
>                         Call SetPlayerSprite(Index, 33)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 31 Then
>                         Call SetPlayerSprite(Index, 33)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 33)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 35 Then
>                         Call SetPlayerSprite(Index, 33)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 36 Then
>                         Call SetPlayerSprite(Index, 33)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>                        
>
>                         ElseIf GetPlayerSprite(Index) = 15 Then
>                         Call SetPlayerSprite(Index, 43)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 38 Then
>                         Call SetPlayerSprite(Index, 43)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 39 Then
>                         Call SetPlayerSprite(Index, 43)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 37 Then
>                         Call SetPlayerSprite(Index, 43)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 41 Then
>                         Call SetPlayerSprite(Index, 43)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 42 Then
>                         Call SetPlayerSprite(Index, 43)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 40 Then
>                         Call SetPlayerSprite(Index, 43)
>                         Call TakeItem(Index, 98)
>                         SendPlayerData(Index)
>
>                         End If
>
> Exit Sub
>
> Case 3
>
>                       If GetPlayerSprite(Index) = 0 Then
>                         Call SetPlayerSprite(Index, 32)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)                     
>
>                         ElseIf GetPlayerSprite(Index) = 30 Then
>                         Call SetPlayerSprite(Index, 32)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 33 Then
>                         Call SetPlayerSprite(Index, 32)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 31 Then
>                         Call SetPlayerSprite(Index, 32)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 32)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 35 Then
>                         Call SetPlayerSprite(Index, 32)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 36 Then
>                         Call SetPlayerSprite(Index, 32)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>                        
>
>                         ElseIf GetPlayerSprite(Index) = 43 Then
>                         Call SetPlayerSprite(Index, 15)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 38 Then
>                         Call SetPlayerSprite(Index, 15)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 39 Then
>                         Call SetPlayerSprite(Index, 15)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 37 Then
>                         Call SetPlayerSprite(Index, 15)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 41 Then
>                         Call SetPlayerSprite(Index, 15)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 42 Then
>                         Call SetPlayerSprite(Index, 15)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 40 Then
>                         Call SetPlayerSprite(Index, 15)
>                         Call TakeItem(Index, 99)
>                         SendPlayerData(Index)
>
>                         End If
>
> Exit Sub
>
>  
> Case 4
>
>                       If GetPlayerSprite(Index) = 0 Then
>                         Call SetPlayerSprite(Index, 34)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)                     
>
>                         ElseIf GetPlayerSprite(Index) = 30 Then
>                         Call SetPlayerSprite(Index, 34)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 32 Then
>                         Call SetPlayerSprite(Index, 34)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 31 Then
>                         Call SetPlayerSprite(Index, 34)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 33 Then
>                         Call SetPlayerSprite(Index, 34)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 35 Then
>                         Call SetPlayerSprite(Index, 34)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 36 Then
>                         Call SetPlayerSprite(Index, 34)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>                        
>
>                         ElseIf GetPlayerSprite(Index) = 15 Then
>                         Call SetPlayerSprite(Index, 39)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 38 Then
>                         Call SetPlayerSprite(Index, 39)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 43 Then
>                         Call SetPlayerSprite(Index, 39)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 37 Then
>                         Call SetPlayerSprite(Index, 39)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 41 Then
>                         Call SetPlayerSprite(Index, 39)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 42 Then
>                         Call SetPlayerSprite(Index, 39)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 40 Then
>                         Call SetPlayerSprite(Index, 39)
>                         Call TakeItem(Index, 100)
>                         SendPlayerData(Index)
>
>                         End If
>
> Exit Sub
>
> Case 5
>
>                       If GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 0)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)                     
>
>                         ElseIf GetPlayerSprite(Index) = 30 Then
>                         Call SetPlayerSprite(Index, 0)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 32 Then
>                         Call SetPlayerSprite(Index, 0)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 31 Then
>                         Call SetPlayerSprite(Index, 0)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 33 Then
>                         Call SetPlayerSprite(Index, 0)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 35 Then
>                         Call SetPlayerSprite(Index, 0)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 36 Then
>                         Call SetPlayerSprite(Index, 0)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>                        
>
>                         ElseIf GetPlayerSprite(Index) = 15 Then
>                         Call SetPlayerSprite(Index, 41)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 38 Then
>                         Call SetPlayerSprite(Index, 41)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 43 Then
>                         Call SetPlayerSprite(Index, 41)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 37 Then
>                         Call SetPlayerSprite(Index, 41)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 39 Then
>                         Call SetPlayerSprite(Index, 41)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 42 Then
>                         Call SetPlayerSprite(Index, 41)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 40 Then
>                         Call SetPlayerSprite(Index, 41)
>                         Call TakeItem(Index, 101)
>                         SendPlayerData(Index)
>
>                         End If
>
> Exit Sub
>
> Case 6
>
>                       If GetPlayerSprite(Index) = 0 Then
>                         Call SetPlayerSprite(Index, 35)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)                     
>
>                         ElseIf GetPlayerSprite(Index) = 30 Then
>                         Call SetPlayerSprite(Index, 35)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 32 Then
>                         Call SetPlayerSprite(Index, 35)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 31 Then
>                         Call SetPlayerSprite(Index, 35)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 33 Then
>                         Call SetPlayerSprite(Index, 35)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 35)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 36 Then
>                         Call SetPlayerSprite(Index, 35)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>                        
>
>                         ElseIf GetPlayerSprite(Index) = 15 Then
>                         Call SetPlayerSprite(Index, 42)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 38 Then
>                         Call SetPlayerSprite(Index, 42)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 43 Then
>                         Call SetPlayerSprite(Index, 42)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 37 Then
>                         Call SetPlayerSprite(Index, 42)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 41 Then
>                         Call SetPlayerSprite(Index, 42)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 39 Then
>                         Call SetPlayerSprite(Index, 42)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 40 Then
>                         Call SetPlayerSprite(Index, 42)
>                         Call TakeItem(Index, 102)
>                         SendPlayerData(Index)
>
>                         End If
>
> Exit Sub
>
> Case 7
>
>                       If GetPlayerSprite(Index) = 0 Then
>                         Call SetPlayerSprite(Index, 36)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)                     
>
>                         ElseIf GetPlayerSprite(Index) = 30 Then
>                         Call SetPlayerSprite(Index, 36)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 32 Then
>                         Call SetPlayerSprite(Index, 36)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 31 Then
>                         Call SetPlayerSprite(Index, 36)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 33 Then
>                         Call SetPlayerSprite(Index, 36)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 35 Then
>                         Call SetPlayerSprite(Index, 36)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 34 Then
>                         Call SetPlayerSprite(Index, 36)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>                        
>
>                         ElseIf GetPlayerSprite(Index) = 15 Then
>                         Call SetPlayerSprite(Index, 38)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 39 Then
>                         Call SetPlayerSprite(Index, 38)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 43 Then
>                         Call SetPlayerSprite(Index, 38)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 37 Then
>                         Call SetPlayerSprite(Index, 38)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 41 Then
>                         Call SetPlayerSprite(Index, 38)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 42 Then
>                         Call SetPlayerSprite(Index, 38)
>                         Call TakeItem(Index, 103)
>                         SendPlayerData(Index)
>
>                         ElseIf GetPlayerSprite(Index) = 40 Then
>                         Call SetPlayerSprite(Index, 38)
>                         Call TakeItem(Index, 103)
>                         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
Link to comment
Share on other sites

if you are willing to adust your spritesheet a little, there is no need for case.
just to give you the general idea

```
Call SetPlayerSprite(Index, GetPlayerSprite(Index) + 30 + dye)
Call TakeItem(Index, 96 + dye)
SendPlayerData(Index)

```
assuming your original sprite is 0 and the dye script = 0 then the new sprite will be 0+30+0= 30 and will take item 96 + 0

now your next dye is 1 then the new sprite is 31 and will take item 97

this way if you add more dye items or sprites you don't need to change the code, just organize your spritesheet . :)
Link to comment
Share on other sites

Riney, that won't work because half way through the case the sprite changes.  the first 7 entries are for the male sprite, the second 7 are for female.

Oldspice, I could do that, but to be honest, I am trying to learn scripting, so I was looking for a scripting solution to say:

If GetPlayerSprite(Index) = 0, 31, 32, 33, 34, 35, 36 Then
Call SetPlayerSprite(Index, 30)

ElseIf GetPlayerSprite(Index) = 15, 38, 39, 40, 41, 42, 43 Then
Call SetPlayerSprite(Index, 37)

KNow what I mean?

But thanks for posting guys, I do apreciate the guidance.  Oh, and Oldspice, you just taught me something and I am already thinking of ways to use it.
Link to comment
Share on other sites

Ok then my method would still work, but it would take a little more code ^_^ (Ie the GetPlayerGender command, 0 is male 1 is female)

```
Case 0

If GetPlayerGender(Index) = 0 Then
    Call SetPlayerSprite(Index, 30)
    Call TakeItem(Index, 96)
    Send PlayerData
Else
    Call SetPlayerSprite(Index, 37)
    Call TakeItem(Index, 96)
    Send PlayerData
End If

```
Link to comment
Share on other sites

That works well for haircoloring, in fact I changed the script I had over to it so the kids could use that function.  I've been working on the sprites for hair styles though, and each style comes in all those colors.

It all has to interchange.  ie The player has style 1 brown hair….if they change color, it remains style 1, if they change style, it remains brown.  GetPLayerGender won't work when I add that.

But I already have uses for what you've taught me.

Thanks
Link to comment
Share on other sites

I know that I am  sort of reviving a dead thread.  The reason I haven't posted lately is that I've been working on the sprites for this to use.  The sprites are done, and at this point I think that I can clarify things.  Overly simplified, but you get the gist:

Default Male = 0
Default Female = 15

Case 0  (white hair dye)
      Male Style 1
        If Get = 0, 31, 32, 33, 34, 35, 36
            Set to 31

      Female Style 1
        If Get = 15, 38, 39, 40, 41, 42, 43
            Set to 37

      Male Style 2
        If Get = 45, 46, 47, 48, 49, 50, 51
            Set to 44

      Female Style 2
        If Get = 52, 53, 54, 55, 56, 57, 58
            Set to 59

      Male Style 3
        If Get = 60, 61, 62, 63, 64, 65, 66
            Set to 67

      Female Style 3
        If Get = 68, 69, 70, 71, 72, 73, 74
            Set to 75

      Male Style 4
        If Get = 76, 77, 78, 79, 80, 81, 83
            Set to 82

      Female Style 4
        If Get = 84, 85, 86, 87, 88, 89, 90
            Set to 91

      Male Style 5
        If Get = 92, 93, 94, 95, 96, 97, 99
            Set to 98

      Female Style 5
        If Get = 100, 101, 102, 103, 104, 105, 106
            Set to 107

That is all of Case 0, which simply changes hair color to white, in 5 male hair styles and 5 female hair styles.

The entry to change each "Get" to its proper "Set" looks like this:

                        ElseIf GetPlayerSprite(Index) = # Then
                        Call SetPlayerSprite(Index, #)
                        Call TakeItem(Index, #)
                        SendPlayerData(Index)

Cases 1-7 do the exact same thing but change to different colors.  Yellow, Brown, Blue, Black, Red, Pink and Green.  NOTE:  These change hair color but not hair style.

Cases 8-17 change hair style but not color. 

The script as it stands is 5 times the size it was in my original post, and this will double when i script Cases 8-17.

I hope this is more clear than my original post.  Is there a shorter way?

Gender won't work because each item has 5 different outcomes per gender.  If needs be I can post the script for you to look at, I just figured that the paraphrased version would suffice.

So, Is there a shorter way?

Thanks.
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...