Szerző Téma: pName - Extra gyors játékos név lekérése.  (Megtekintve 1527 alkalommal)

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
pName - Extra gyors játékos név lekérése.
« Dátum: 2011. augusztus 27. - 21:36:41 »
0 Show voters
Látom, hogy rengeteg ember használja ezt a pName funkciót, amivel mindig lekéri a nevét a játékosnak.
Csak itt az a probléma, hogy a GetPlayerName mindig lefut. Ezért megalkottam ezt a kódot, amiben csak EGYSZER fut le ez a függvény, és nempedig minden név lekérésénél.
[pawn]
new
    PlayerNames[sZERVER_SLOTOK_SZAMA_IRD_AT][MAX_PLAYER_NAME + 1]; // Minden játékoshoz tartozó cella, aminek a hossza 25 karakter
#define pName(%1) \\
    PlayerNames[%1]
stock __pName__SetPlayerName(playerid, _name[])
{
new
   retVal = SetPlayerName(playerid, _name);
if(retVal > 0)
{
   format(PlayerNames[playerid], MAX_PLAYER_NAME + 1, _name);
}
return retVal;
}
#if defined _ALS_SetPlayerName
#undef SetPlayerName
#else
#define _ALS_SetPlayerName
#endif
#define SetPlayerName __pName__SetPlayerName
// Használat: printf(\"ID 0 neve: %s\", pName(0));
public OnPlayerConnect(playerid)
{
// Ez a kód mindig lefelül szerepeljen!
GetPlayerName(playerid, PlayerNames[playerid], MAX_PLAYER_NAME); // Belekérjük a játékos nevét a PlayerNames-nél a játékoshoz tartozó cellába.
}
public OnPlayerDisconnect(playerid, reason)
{
// Ez a kód itt mindig legalul szerepeljen!
PlayerNames[playerid][0] = EOS; // EOS = End Of String, azaz nullázzuk
}
[/pawn]
« Utoljára szerkesztve: 2011. november 14. - 22:38:00 írta Zsolesszka »

pName - Extra gyors játékos név lekérése.
« Válasz #1 Dátum: 2011. augusztus 27. - 22:32:33 »
0 Show voters
Praktikus régóta így használom csak azt nem értem minek a 25-ös méret a samp cliens 3-20 karakternyi névvel enged csatlakozni így a 24 is több mint amennyi kellene.
Próbálj csak felcsatlakozni egy szerverre 20 karakternél hosszabb névvel.

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
pName - Extra gyors játékos név lekérése.
« Válasz #2 Dátum: 2011. augusztus 27. - 22:34:03 »
0 Show voters
Ezt ismerem, de valahol azt hallottam, hogy pl a \'@\' három karaktert lefoglal. ( LoL )
De majd tesztelni fogom kevesebbel is.

Koncz_Norbert

  • Vendég
pName - Extra gyors játékos név lekérése.
« Válasz #3 Dátum: 2011. augusztus 27. - 22:49:21 »
0 Show voters
Durva. 1 és fél napot azzal szenvedtem a szoftverfejlesztõ forrással, hogy ne kelljen változót + len-t használni.
[pawn]
global::OnPlayerConnect( playerid, playername )
{
       char *gBuffer[ MAX_CRSH ];
       CrashDetect( __gBuffer, \"crash.log\" ) return -1;
       SendChatToPlayer( playerid, 0xFFF, \"-> %s csatlakozott.\", playername );
       return AMX_ERR_NONE;
}
[/pawn]

Kovacs_Bela

  • Vendég
pName - Extra gyors játékos név lekérése.
« Válasz #4 Dátum: 2011. augusztus 28. - 16:27:40 »
0 Show voters

GroX

  • Vendég
pName - Extra gyors játékos név lekérése.
« Válasz #5 Dátum: 2011. augusztus 28. - 16:58:38 »
0 Show voters
És ha valamelyik istenverte, gonosz admin át állítja a nevét az emberkénknek? ^-^

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
pName - Extra gyors játékos név lekérése.
« Válasz #6 Dátum: 2011. augusztus 28. - 18:44:23 »
0 Show voters
Idézetet írta: Fade シ date=1314543518\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10906\" data-ipsquote-contentclass=\"forums_Topic
És ha valamelyik istenverte, gonosz admin át állítja a nevét az emberkénknek? ^-^
 
Köszi, hogy szóltál.
Ezt estére javítom, még szerencse, hogy nem raktam fel a hostos szerverre :D

Koncz_Norbert

  • Vendég
pName - Extra gyors játékos név lekérése.
« Válasz #7 Dátum: 2011. augusztus 28. - 19:15:26 »
0 Show voters
Idézetet írta: kurta999 date=1314477243\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10906\" data-ipsquote-contentclass=\"forums_Topic
Ezt ismerem, de valahol azt hallottam, hogy pl a \'@\' három karaktert lefoglal. ( LoL )
De majd tesztelni fogom kevesebbel is.
 
Rubbish.
Minden szó / szám ASCII értéke mindig 1 bytes méretû. Ha ékezetes karakterek is vannak akkor már 4-8 bytes is lehet az ASCII értéke. Nem beszélve arról a Decimális értékekrõl.

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
pName - Extra gyors játékos név lekérése.
« Válasz #8 Dátum: 2011. augusztus 28. - 23:31:46 »
0 Show voters
Na ezt javítottam.
De akkor elég a 20 + 1 is ?
Mert a névben lehet még: \'[\' \']\', \'$\', \'_\', \'@\', \'.\'

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal