Szerző Téma: Setrank (Rang neved elõtt chaten by KaRi.)  (Megtekintve 4636 alkalommal)

Setrank (Rang neved elõtt chaten by KaRi.)
« Dátum: 2014. január 03. - 13:32:42 »
+11 Show voters
Ü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_.png
Tesztelni 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;
}
« Utoljára szerkesztve: 2014. január 03. - 14:14:09 írta _KaRi_ »

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #1 Dátum: 2014. január 03. - 13:44:32 »
0 Show voters
Elég lenne ha a rank alapjáraton N/A lenne, és nem kellene Toggle változó stb stb.. Ha a rank N/A lenne, ki lenne kapcsolva, és kész.
Mellesleg felesleges a dini! :)
Apropó:
 
        new id, string[128], rk[128];
   if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x00fffbAA, \"[Hiba]Nem vagy RCON\");

 
Itt minek hozod létre elõsször a változót, és miért utána nézed meg, hogy rcon-e?
Ha nem rcon, akkor tulajdonképpen feleslegesen hoztad létre a 3 változót. :/
Érdekesség..
Érdekes módon OnPlayerDisconnect alatt le tudod ellenõriztetni, hogy létezik a játékos fájlja..
 
if(!dini_Exists(File(playerid))) dini_Create(File(playerid));

 
Viszont OnPlayerConnect alatt nem.. Nem tudom mennyire érdemes olyan adatot kiolvasni, amely nem létezik!

Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #2 Dátum: 2014. január 03. - 13:45:44 »
0 Show voters

Elég lenne ha a rank alapjáraton N/A lenne, és nem kellene Toggle változó stb stb.. Ha a rank N/A lenne, ki lenne kapcsolva, és kész.
Mellesleg felesleges a dini! :)
Apropó:
 
        new id, string[128], rk[128];
   if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x00fffbAA, \"[Hiba]Nem vagy RCON\");

 
Itt minek hozod létre elõsször a változót, és miért utána nézed meg, hogy rcon-e?
Ha nem rcon, akkor tulajdonképpen feleslegesen hoztad létre a 3 változót. :/
Érdekesség..
Érdekes módon OnPlayerDisconnect alatt le tudod ellenõriztetni, hogy létezik a játékos fájlja..
 
if(!dini_Exists(File(playerid))) dini_Create(File(playerid));

 
Viszont OnPlayerConnect alatt nem.. Nem tudom mennyire érdemes olyan adatot kiolvasni, amely nem létezik!
 
[/quote]
Köszönöm a tanácsaidat majd ezek szerint javítgatom :)

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #3 Dátum: 2014. január 03. - 13:46:01 »
+1 Show voters

Elég lenne ha a rank alapjáraton N/A lenne, és nem kellene Toggle változó stb stb.. Ha a rank N/A lenne, ki lenne kapcsolva, és kész.
Mellesleg felesleges a dini! :)
Apropó:
 
        new id, string[128], rk[128];
   if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x00fffbAA, \"[Hiba]Nem vagy RCON\");

 
Itt minek hozod létre elõsször a változót, és miért utána nézed meg, hogy rcon-e?
Ha nem rcon, akkor tulajdonképpen feleslegesen hoztad létre a 3 változót. :/
Érdekesség..
Érdekes módon OnPlayerDisconnect alatt le tudod ellenõriztetni, hogy létezik a játékos fájlja..
 
if(!dini_Exists(File(playerid))) dini_Create(File(playerid));

 
Viszont OnPlayerConnect alatt nem.. Nem tudom mennyire érdemes olyan adatot kiolvasni, amely nem létezik!
 
[/quote]
Relax. Szép lett, gratulálok ;)

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #4 Dátum: 2014. január 03. - 14:02:05 »
+2 Show voters
Írtam én is egy Dini-s változatot!
 
#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;
}

 
Ha gondolod nézd át, hátha hasznodra válik!
Lényegében csak egy Ranks.txt fájlt használ.
Tartalma így nézhet ki:
 
Pedro.=TestRang
KaRi.=OWNER
Bendi.=colorfull

 
;)

Nem elérhető KR3W

  • 395
  • #weekendcup - irc.
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #5 Dátum: 2014. január 03. - 15:00:28 »
0 Show voters
Szép munka! +

Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #6 Dátum: 2014. január 03. - 16:04:22 »
0 Show voters
Kösz :)

Nem elérhető Cappsy

  • Adminisztrátor
  • 2754
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #7 Dátum: 2014. január 10. - 21:49:36 »
0 Show voters
[mod]Maradjunk a témánál.....[/mod]
« Utoljára szerkesztve: 2014. január 10. - 23:14:31 írta cappsy »

Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #8 Dátum: 2014. február 28. - 16:21:02 »
0 Show voters
Õ nekem egy bajom van, az, hogy írok chatbe pl:
 KLaypex (5): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
és amit írok, azt nem töri le a nevem alá így:
 KLaypex (5): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Erre nem lenne valami megoldás?  :(

Nem elérhető [sdc]skyline

  • 1333
  • ςκyΙιηε
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #9 Dátum: 2014. február 28. - 22:30:27 »
0 Show voters
Idézetet írta: KLaypex date=1393600862\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"45630\" data-ipsquote-contentclass=\"forums_Topic
Õ nekem egy bajom van, az, hogy írok chatbe pl:
 KLaypex (5): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
és amit írok, azt nem töri le a nevem alá így:
 KLaypex (5): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Erre nem lenne valami megoldás?  :(
 
Régebben én is próbálkoztam azzal, hogy egy adott karakter után törje a sort.. De nem sikerült, vagy lehet csak én voltam a béna.

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #10 Dátum: 2014. február 28. - 22:53:14 »
+1 Show voters
Idézetet írta: Sky date=1393623027\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"45630\" data-ipsquote-contentclass=\"forums_Topic


Õ nekem egy bajom van, az, hogy írok chatbe pl:
 KLaypex (5): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
és amit írok, azt nem töri le a nevem alá így:
 KLaypex (5): aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Erre nem lenne valami megoldás?  :(
 
Régebben én is próbálkoztam azzal, hogy egy adott karakter után törje a sort.. De nem sikerült, vagy lehet csak én voltam a béna.
 
[/quote]
Ez majd segít nektek: http://sampforum.hu/index.php?topic=30867  ;)

Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #11 Dátum: 2014. február 28. - 22:55:30 »
0 Show voters
Szép munka, ment a \"+\"!

Nem elérhető RDash

Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #12 Dátum: 2014. március 02. - 10:19:53 »
0 Show voters
Jó lett de könnyebben is meg lehet oldani ahogy már a többiek is írták. U.I.:Grat  :thumbsup:

Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #13 Dátum: 2014. március 03. - 06:51:58 »
0 Show voters
Köszi majd máskor figyelek erre h egyszerûbben legyen megirva :)

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Setrank (Rang neved elõtt chaten by KaRi.)
« Válasz #14 Dátum: 2014. június 18. - 16:06:43 »
+1 Show voters
[gmod]tyûha. OFF-telep megtisztítva.[/gmod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal