[Pedido] Sistema de 5 Skins para cada player
#5

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
Reply


Messages In This Thread
Sistema de 5 Skins para cada player - by ChapterFour - 17.02.2013, 19:48
Re: Sistema de 5 Skins para cada player - by Yaakin - 17.02.2013, 19:56
Re: Sistema de 5 Skins para cada player - by ChapterFour - 17.02.2013, 21:57
Re: Sistema de 5 Skins para cada player - by HumildadeAgain - 17.02.2013, 22:26
Re: Sistema de 5 Skins para cada player - by Yaakin - 18.02.2013, 13:05
Re: Sistema de 5 Skins para cada player - by ChapterFour - 18.02.2013, 19:51

Forum Jump:


Users browsing this thread: 3 Guest(s)