Topo do GM:
pawn Code:
#include <a_samp>
#include <DOF2>
#include <ZCMD>
#include <sscanf2>
#define MAX_SKIN 5
new Skin[ MAX_SKIN ][ MAX_PLAYERS ];
Funзхes para salvar e carregar as skins, coloque o conteudo delas onde vocк carrega e salva as contas:
pawn Code:
stock CarregarSkin(p){
new file[45],n[25],arq[10];
GetPlayerName(p,n,sizeof n);
format(file,sizeof file,"Acc/%s.ini",n);
for(new _x = 0; _x < MAX_SKIN; _x ++){
format(arq,sizeof arq,"Skin%d",_x);
Skin[ _x ][ p ] = DOF2_GetInt(file,arq);
}
}
stock SalvarSkin(p){
new file[45],n[25],arq[10];
GetPlayerName(p,n,sizeof n);
format(file,sizeof file,"Acc/%s.ini",n);
for(new _x = 0; _x < MAX_SKIN; _x ++){
format(arq,sizeof arq,"Skin%d",_x);
DOF2_SetInt(file,arq,Skin[ _x ][ p ]);
}
DOF2_SaveFile();
}
Coloque isto onde hб a criaзгo da conta:
pawn Code:
new file[56],n[25],arq[20];
GetPlayerName(playerid,n,sizeof n);
format(file,sizeof file,"Acc/%s.ini",n);
if(!DOF2_FileExists(file)){
DOF2_CreateFile(file);
for(new _x = 0; _x < MAX_SKIN; _x ++){
format(arq,sizeof arq,"Skin%d",_x);
DOF2_SetInt(file,arq,-1);
}
DOF2_SaveFile();
}
pawn Code:
public OnPlayerConnect(playerid)
{
CarregarSkin(playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarSkin(playerid);
return 1;
}
Comandos:
pawn Code:
CMD:comprarskin(p,params[]){
new skin,slot;
if(sscanf(params,"dd",slot,skin)) return SendClientMessage(p,-1,"[ERRO] Use: /comprarskin <slot(0 а 4)> <Nє da skin (0 а 298)>");
else if(skin < 0 || skin > 298) return SendClientMessage(p,-1,"[ERRO] Skin invбlida");
Skin[ slot ][ p ] = skin;
SetPlayerSkin(p,skin);
SendClientMessage(p,-1,"Vocк comprou uma roupa.");
return true;
}
CMD:mudarskin(p,params[]){
new slot;
if(sscanf(params,"d",slot)) return SendClientMessage(p,-1,"[ERRO] USe: /mudarskin <slot(0 а 4)>");
if(Skin[ slot ][ p ] < 0 || Skin[ slot ][ p ] > 298) return SendClientMessage(p,-1,"[ERRO] Skin invбlida");
SetPlayerSkin(p,Skin[ slot ][ p ]);
SendClientMessage(p,-1,"Vocк mudou de roupa.");
return true;
}
CMD:verskins(p){
new str[ MAX_SKIN ][ 60 ],string[300];
for(new _x = 0; _x < MAX_SKIN; _x ++){
format(str [ _x ],60,"{FFFFFF}- Slot {FFFF00}[%d]{FFFFFF}: Skin Nє {FFFF00}%d\n",_x,Skin[ _x ][ p ]);
strcat(string,str[ _x ]);
}
ShowPlayerDialog(p,999,0,"Suas Roupas",string,"Confirma","");
return true;
}
Tem que melhorar a relaзгo das skin invбlidas, nгo testei os cуdigos mas creio que funcione, sу tem que saber adequar a seu gamemode