Primero, creamos la variable de moneda, yo voy a hacer un nuevo enum, pero vos podrнas ponerlo en el enum que uses de informaciуn de personaje;
pawn Код:
enum mInfo
{
Moneda
};
new MonedaInfo[MAX_PLAYERS][mInfo];
Creamos el new del textdraw;
pawn Код:
new Text:MonedaTextDraw[MAX_PLAYERS];
En OnPlayerDisconnect, hacemos que al desconectarse, se esconde el textdraw;
pawn Код:
TextDrawHideForPlayer(playerid, MonedaTextDraw[playerid]);
En OnPlayerSpawn, hacemos que se vea el textdraw;
pawn Код:
TextDrawShowForPlayer(playerid, MonedaTextDraw[playerid]);
En OnGameModeInit, creamos el textdraw;
pawn Код:
MonedaTextDraw[playerid] = TextDrawCreate(498.500000,100.000000,"$00000000");
TextDrawLetterSize(MonedaTextDraw[playerid], 0.55, 2.2);
TextDrawFont(MonedaTextDraw[playerid], 3);
TextDrawSetOutline(MonedaTextDraw[playerid], 2);
TextDrawSetProportional(MonedaTextDraw[playerid], 3);
Creamos el public de la moneda;
pawn Код:
public Moneda()
{
for(new i; i < MAX_PLAYERS; i++)
{
new string[64]; format(string, sizeof(string), "~g~$~w~%d", MonedaInfo[i][Moneda] );
TextDrawSetString(MonedaTextDraw[i], string );
}
}
Ahora, un comando para poder dar las monedas (necesitas estar logueado con la rcon, lo podrнas modificar para que lo haga un administador);
pawn Код:
if(strcmp(cmd, "/darmonedas", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerAdmin(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, GRIS, "Uso: /darmonedas [ID/Nombre] [Cantidad]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
MonedaInfo[para1][Moneda] = monedas;
format(string, sizeof(string), "El administrador %s te ha dado %d monedas. ЎDisfrъtalas!", sendername, monedas);
SendClientMessage(para1, 0xFFFFFFAA, string);
format(string, sizeof(string), "Le diste a %s una cantidad de %d monedas.", giveplayer,level);
SendClientMessage(playerid, 0xFFFFFFAA, string);
printf("Administrador %s le diу a %s una cantidad de %d monedas.", sendername, giveplayer, monedas);
}
}
}
else
{
SendClientMessage(playerid, 0xE60000FF, " No estбs autorizado para usar este comando!!");
}
}
return 1;
}
Йse comando que hice no setea las monedas, sуlo las da, ni tampoco las resta, es para que te guнes.
Y te faltarнa hacer el guardado de datos de la misma, de MySQL no sй, si querйs te puedo hacer el guardado por algъn sistema de guardado de datos en archivos .ini