SA-MP Forums Archive
Random player skins - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Random player skins (/showthread.php?tid=404534)



Random player skins - martin149 - 03.01.2013

In my server everybody uses the same skin, simply because it is the first one. Now i want to put them in a random order when they choose one on startup. How do i get them in random order?

my array:
pawn Код:
new PlayerSkins[35] = {
27,45,54,56,63,64,70,75,77,82,83,84,87,89,92,130,138,139,140,144,145,152,167,178,198,205,237,239,264,257,244,245,246,249,256
};



Re : Random player skins - [HRD]Mar1 - 03.01.2013

https://sampwiki.blast.hk/wiki/AddPlayerClass


Re: Random player skins - martin149 - 03.01.2013

Yes i know, but that's not random


Re : Re: Random player skins - [HRD]Mar1 - 03.01.2013

Quote:
Originally Posted by martin149
Посмотреть сообщение
Yes i know, but that's not random
You mean that when they are playing skins will change time to time ?


Re: Random player skins - aslan890 - 03.01.2013

Check here if it help: https://sampforum.blast.hk/showthread.php?tid=139456


Re: Random player skins - dr.lozer - 03.01.2013

pawn Код:
new PlayerSkins[35] = {
27,45,54,56,63,64,70,75,77,82,83,84,87,89,92,130,138,139,140,144,145,152,167,178,198,205,237,239,264,257,244,245,246,249,256
};

public OnPlayerSpawn(playerid)
{
   new r = random(sizeof(PlayerSkins));
   SetPlayerSkin(playerid, PlayerSkins[r]);
   return 1;
}



Re: Random player skins - martin149 - 03.01.2013

Im sorry, but that's not what i am looking for... I want to give people a choice. So i want to add the classes in a random order. That way, everybody will see another skin when they start, but still have the opportunity to choose one.


Re: Random player skins - martin149 - 05.01.2013

Bump


Re: Random player skins - Affan - 05.01.2013

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(setskin,7,cmdtext);
return 0;
}
pawn Код:
dcmd_setskin(playerid, params[])
{
    if(!CmdLevelCheck(playerid,"setskin")) return CmdLevelError(playerid,"setskin");
    new id,skinid,string[128];
    if(sscanf(params, "ud", id, skinid)) return SendClientMessage(playerid, RED, "USAGE: /SETSKIN [ID / NICK] [SKINID]");
    if(!IsPlayerConnected(id)) return SendClientMessage(playerid, RED, "This player is offline");
    if(IsSkinWrong(skinid)) return SendClientMessage(playerid,RED,"Error: enter a valid skin-ID");
    SendCommandMsg(playerid,"setskin");
    if(playerid != id) format(string,sizeof(string),"Administrator: %s have set your skin to %d",AdminName(playerid),skinid);
    else format(string,sizeof(string),"You have set your own skin to %d",skinid);
    SendClientMessage(id,YELLOW,string);
    format(string,sizeof(string),"You have set %s his skin to %d",Name(id),skinid);
    SendClientMessage(playerid,YELLOW,string);
    return SetPlayerSkin(id,skinid);
}
Try this.


Re: Random player skins - martin149 - 05.01.2013

I am now trying to implement the Fisher-Yates Shuffle algorithm... You will hear from thos soon...

I all is very nice but let me explain again...

Whar i want is when somebody connects, they get the default class-selection options, but instead of showing them in a fixed order to erveryone, i want to show them in random order.

So if my classes are 1,2 and 3 for example, everybody will use 1 in the default selection. What i want is making the options random, so everybody will be different but will still have a choice.

So what a basically need is a method to shuffle an array, just like the php shuffle function.