Üdv!
Mivel páran azt kértétek ebben a témában:
http://sampforum.hu/index.php?topic=44380.0 hogy csináljam meg úgy hogy /setrank (id) (rang) és a neve elé tegye ki ezért gyorsan össze dobtam nektek.
A kód összesen 73 sor.
Parancsok:
/setrank (Játékos név/id) (Rang)
/norank (Játékos név/id)
Csak rcon tudja használni ezt a két parancsot
// ====[iNCLUDE]====
#include
#include
#include
#include
CMD:setrank(playerid,params[]) {
new id, string[128], rk[128];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x00fffbAA, \"[Hiba]Nem vagy RCON\");
if(sscanf(params, \"us[128]\", id, rk)) return SendClientMessage(playerid, 0x00fffbAA, \"[Használat]/setrank \");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0x00fffbAA, \"[Hiba]Rossz azonosító.\");
SetPVarString(id,\"Rank\",rk);
format(string, sizeof(string),\"[RCON]%s(%d)-nak/nek beállítottad a rangját erre: [%s]\", pName(id), id, rk);
SendClientMessage(playerid,0x00fffbAA,string);
format(string, sizeof(string),\"[RCON]%s(%d) beállította a rangod erre: [%s]\", pName(playerid), playerid, rk);
SendClientMessage(id,0x00fffbAA,string);
SetPVarInt(id, \"Rank2\", 1);
return 1;
}
CMD:norank(playerid,params[]) {
new id, string[128];
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x00fffbAA, \"[Hiba]Nem vagy RCON\");
if(sscanf(params, \"u\", id)) return SendClientMessage(playerid, 0x00fffbAA, \"[Használat]/norank \");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0x00fffbAA, \"[Hiba]Rossz azonosító.\");
SetPVarInt(id, \"Rank2\", 0);
format(string, sizeof(string),\"[RCON]%s(%d)-nak/nek levetted a rangját\", pName(id), id);
SendClientMessage(playerid,0x00fffbAA,string);
format(string, sizeof(string),\"[RCON]%s(%d) levette a rangod\", pName(playerid), playerid);
SendClientMessage(id,0x00fffbAA,string);
return 1;
}
public OnPlayerText(playerid,text[]) {
new szChat[144], rank1[128];
GetPVarString(playerid,\"Rank\",rank1,128);
if(GetPVarInt(playerid, \"Rank2\") == 1) {
format(szChat,sizeof (szChat),\"[%s]{%06x}%s{007f9c}(%d): {ffffff}%s\", rank1, GetPlayerColor(playerid) >>> 8, pName(playerid), playerid, text);
} else {
format(szChat,sizeof (szChat),\"{%06x}%s{007f9c}(%d): {ffffff}%s\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid, text);
}SendClientMessageToAll(-1, szChat);
return 0;
}
public OnPlayerConnect(playerid) {
SetPVarInt(playerid, \"Rank2\", dini_Int(File(playerid),\"Toggle\"));
SetPVarString(playerid,\"Rank\",dini_Get(File(playerid),\"Rank\"));
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
if(!dini_Exists(File(playerid))) dini_Create(File(playerid));
new rank[128];
GetPVarString(playerid,\"Rank\",rank,128);
dini_IntSet(File(playerid),\"Toggle\",GetPVarInt(playerid,\"Rank2\"));
dini_Set(File(playerid),\"Rank\",rank);
return 1;
}
stock pName(playerid) { new name[24]; GetPlayerName(playerid,name,24); return name; }
stock File(playerid) { new f[156]; format(f,sizeof(f),\"%s.ini\",pName(playerid)); return f; }
Tesztelve, mûködik.
Kép a tesztrõl:
http://kepfeltoltes.hu/140103/1259272377sa-mp-002_www.kepfeltoltes.hu_.pngTesztelni segített: Bendi.
A rangokat elmenti a scriptfiles-be a játékos nevére.
Ennyi lenne az egész

Remélem valaki hasznát veszi.
Pedro változata:
#define FILTERSCRIPT
#include
#include
#include
#include
public OnFilterScriptInit() {
if(dini_Exists(\"Ranks.txt\")) dini_Create(\"Ranks.txt\");
return 1;
}
public OnPlayerConnect(playerid) {
if(!dini_Isset(\"Ranks.txt\", pName(playerid))) dini_Set(\"Ranks.txt\", pName(playerid), \"N/A\");
SetPVarString(playerid, \"rank\", dini_Get(\"Ranks.txt\", pName(playerid)));
return 1;
}
public OnPlayerDisconnect(playerid, reason) {
if(dini_Isset(\"Ranks.txt\", pName(playerid))) {
new rank[32];
GetPVarString(playerid, \"rank\", rank, sizeof(rank));
dini_Set(\"Ranks.txt\", pName(playerid), rank);
}else dini_Set(\"Ranks.txt\", pName(playerid), \"N/A\");
return 1;
}
public OnPlayerText(playerid, text[]) {
new string[144], rank[32];
GetPVarString(playerid, \"rank\", rank, sizeof(rank));
if(!strcmp(rank, \"N/A\")) {
format(string, sizeof(string), \"{%06x}%s(%i){FFFFFF}: %s\", GetPlayerColor(playerid) >>> 8, pName(playerid), playerid, text);
}else{
format(string, sizeof(string), \"{80FF80}[%s] {%06x}%s(%i){FFFFFF}: %s\", rank, GetPlayerColor(playerid) >>> 8, pName(playerid), playerid, text);
}
SendClientMessageToAll(-1, string);
return 0;
}
CMD:setrank(playerid, params[]) {
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, \"Hiba, csak RCON adminok használhatáj ezt a parancsot!\");
new id, rank[32], string[144];
if(sscanf(params, \"us[32]\", id, rank)) return SendClientMessage(playerid, 0xFF0000FF, \"Használat: /setrank [playerid/név] [rank (off=kikapcsolás)]\");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, \"Hibás játékos azonosítót adtál meg!\");
if(!strcmp(rank, \"off\")) {
format(rank, 32, \"N/A\");
format(string, sizeof(string), \"Egy adminisztrátor eltávolította a rankodat!\");
}else{
format(string, sizeof(string), \"Egy adminisztrátor módosította a rankodat! (%s)\", rank);
}
SendClientMessage(id, -1, string);
format(string, sizeof(string), \"Sikeresen módosítottad %s rankját!\", pName(id));
SendClientMessage(playerid, -1, string);
SetPVarString(id, \"rank\", rank);
return 1;
}
stock pName(playerid) {
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
return playername;
}