Jump to content
  • 0

pomoc Prefix s pouzitim poze s rconem


Zahis

Dotaz

Zdravim , našel jsem si tu někdě jak udělat prefix .. ale vubec nevim jak to udělat pouze na rcon (že ja budu admin a nějakýmu hraci dam ten prefix) .. že bych třeba napsal /preop (idhrace) a zustalo by mu to i po odpojení ... :)

 

new name[24];
GetPlayerName(playerid,name,24);
format(name,24,"[OP]%s",name);
SetPlayerName(playerid,name);

a nebo

kdybych to měl takhle

 

#include 

public OnPlayerSpawn(playerid)
{
if(strcmp(nam(playerid),"gymi",true) == 0)
{
new name[24];
GetPlayerName(playerid,name,24);
format(name,24,"[OP]%s",name);
SetPlayerName(playerid,name);
}
return 1;
}

tohle mi píše že error 017: undefined symbol "nam"

 

takže jak to mam napsat nahoru :) #defined a ? :)

 

 

Moc díky za odpověd :)

Link to comment
Share on other sites

14 odpovědí na tuto otázku

Recommended Posts

  • 0

Máš tam vytvorenú premennú new name[24]; no ty máš v publicu chybu v slove "nam" pri dosadení premennej do funkcie musíš byť presný! Teda rozlišovať malé, veľké písmená, medzery atď. Oprav "nam" na "name". Veľa zdaru

Link to comment
Share on other sites

  • 0
  • Administrátor
public OnPlayerSpawn(playerid)
{
new nam[21];
GetPlayerName(playerid,nam,21);
if(strcmp(nam,"gymi",true) == 0)
{
new name[24];
GetPlayerName(playerid,name,24);
format(name,24,"[OP]%s",name);
SetPlayerName(playerid,name);
}
return 1;
}

Link to comment
Share on other sites

  • 0

A jo sorry, nevšimol som si } :)

 

No na príkaz to musíš celé prerobiť.

Zhruba takto:

Hore do módu:

stock Meno(playerid)
{
 	new j[64];
GetPlayerName(playerid,j,64);
return j;
}

new menoprehraca[MAX_PLAYERS];

Do OnPlayerCommandText

if(strcmp(cmd, "/preop", true) == 0)
{
  if(!IsPlayerConnected(playerid))
 {
  SendClientMessage(playerid, FARBA,"Tento hrac nieje na servery");
}
  else if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,FARBA,"Niesi admin, príkaz nemozes pouzit");
}
else if(menoprehraca[playerid] == 1)
{
SendClientMessage(playerid,FARBA,"Tento hráč uz ma titul pred menom");
}
else
{
new name[24];
new string[256];
format(string, sizeof(string), "Admin %s nastavil hracovi %s pred meno titul",Meno(playerid),name);
SendClientMessageToAll(farba,string);
GetPlayerName(playerid,name,24);
format(name,24,"[OP]%s",name);
SetPlayerName(playerid,name);
menoprehraca[playerid] = 1;
}
return 1;
}

 

Písal som to rýchlo, určite sa nájde nejaká chyba.

Link to comment
Share on other sites

  • 0

Jo tak tohle jsem nějakej pochopil ale když chci dva tituly ... ale chcito potom spawnu .. tedy public OnPlayerSpawn(playerid)

 

public OnPlayerSpawn(playerid)
{
new nam[21];
GetPlayerName(playerid,nam,21);
if(strcmp(nam,"gymi",true) == 0)
{
new name[24];
GetPlayerName(playerid,name,24);
format(name,24,"{FF0000}[HlavniAdministrator]%s",name);
SetPlayerName(playerid,name);
}
return 1;

 

ale budu chtít jeste přidat hráče jmenem pepa ... :)

 

public OnPlayerSpawn(playerid)
{
new nam[21];
GetPlayerName(playerid,nam,21);
if(strcmp(nam,"gymi",true) == 0)
{
new name[24];
GetPlayerName(playerid,name,24);
format(name,24,"{FF0000}[HlavniAdministrator]%s",name);
SetPlayerName(playerid,name);
}
new nam[21];
GetPlayerName(playerid,nam,21);
if(strcmp(nam,"pepa",true) == 0)
{
new name[24];
GetPlayerName(playerid,name,24);
format(name,24,"{FF0000}[Majitel]%s",name);
SetPlayerName(playerid,name);
}
return 1;

 

ted my to napise ze nam a name je jiz definovano a ja nevim co všechno přepsat :)

Link to comment
Share on other sites

  • 0
  • Administrátor

[HlavniAdministrator] tohle ti jako prefix neprojde

Maximální délka jména je 21 s použitím set player name 24 .Tento prefix má délu 22 znaků pro nick ti zbydou dva znaky.

Link to comment
Share on other sites

  • 0
  • Administrátor

ano new strng[128];

strng je proměná pro textový řetězec která uchová maximálně 127 + null .

Ale jako máš serverm definovaný max počet hráčů tak je definovaný maximální délka stringu pro jméno a to je 24 ale klient ti nedovolí delší jméno jak 21 znaků takže pokud funkci SetPlayerName která ti dovolí využít 24 znaků nepoužíváš je lepší na jméno používat 21 ve tvém případě si musíš spočítat délku prefixu a délku jména toho komu prefix hodláš nastavit můžu ti na to doporučit svojí aplikaci která ti v tom dost ulehčí práci a celkově optimalizaci textu.

 

[attachment=0]StringCounter.rar[/attachment]

 

Nemusíš se bát viry ani žádne škodlivé kód v tom nejsou ale je k tomu nutný mít Framework 4

Link to comment
Share on other sites

  • 0

Jo ještě můžů dotaz když tam před ten prefix napíšu barvu v HEXU tak mi to celý ale jak mile to smažu tak to jde čim to bude ? :) skoušel jsem to různě ale nejdete to

Link to comment
Share on other sites

  • 0

okej .. nevadi :) a snad posledni vec :)

 

 

#include 

public OnPlayerSpawn(playerid)
{
new nam[21];
GetPlayerName(playerid,nam,21);
if(strcmp(nam,"gymi",true) == 0)
{
new name[24];
GetPlayerName(playerid,name,24);
format(name,24,"[Hl.Admin] %s",name);
SetPlayerName(playerid,name);
}
return 1;
}

 

Jak přidám hráče pepan s prefixem [Majitel] , když ho tam pak dám to zas nejde ... :) když přepíšu to nam tak musim všude potom to nam taky přepsat ? nevím co pak v tom všechno změnit :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...