Üdv, most megmutatom hogy-hogy csinálhatunk üzenetet,
amikor valaki csatlakozik a szerverre vagy éppen,
távozik a szerverről. Na lássuk is.
------------------------------------Csatlakozás:----------------------------------
Itt egy üzenetet fogunk csinálni a többi
playernek hogy tudják hogy te csatlakoztál a szerverre.
Itt egy példa: ALIEN csatlakozott a szerverre.
public OnPlayerConnect(playerid) -nél fogunk dolgozni,
úgy hogy keressük is meg, vagy ha nincs akkor írjunk egyet.
1.Elsőnek is hozzunk létre 2 tárolót.
Az egyik, a játékos nevét fogja tárolni, a másik a szöveget fogja tárolni.
new pName[MAX_PLAYER_NAME];// a játékos nevét tárolja new string[256];// a szöveget tárolja
2.Most meg kell tudnunk a játékos nevét, erre a GetPlayerName
függvényt fogjuk használni:
GetPlayerName(playerid, pName, sizeof(pName)); // ezzel a parancsal tudjuk meg a játékos nevét
3.Most az eltárolt nevet az üzenetbe be kell valahogy helyezni.
Ehhez hívjuk, segítségül a format -ot:
format(string, sizeof(string), "%s csatlakozott a szerverre.", pName);// %s = játékos neve és üzenete
4. És már csak el kell küldeni az üzenetet mindenkinek.
Ehhez a SendClientMessageToAll függvényt fogjuk használni:
SendClientMessageToAll(0x00FF28FF, string); elküldi mindenkinek az üzenetet
Itt egy minta:
public OnPlayerConnect(playerid) { new pName[MAX_PLAYER_NAME]; new string[46]; GetPlayerName(playerid, pName, sizeof(pName)); format(string, sizeof(string), "%s csatlakozott a szerverre.", pName); SendClientMessageToAll(0x00FF28FF, string); return 1; }
---------------------------------------------Távozás:--------------------------------
Itt az üzenetet arra az esetre fogjuk megcsinálni ha a játékos távozik.
PL. -ban/kick, -időtullépés, -vagy csak símán kilépett a játékos.
Itt egy példa: ALIEN elhagyta a szervert.
Most a public OnPlayerDisconnect(playerid, reason)-nál fogunk dolgozni.
Keressük meg, vagy ha nincs akkor csináljunk egyet.
1.Megint kellenek a new-ek, a lecsatlakozó player
nevének tárolásához és a szöveg tárolásához:
new name[MAX_PLAYER_NAME]; new str[128];
2. Megint lekérdezzük a játékos nevét GetPlayerName -val:
GetPlayerName(playerid, name, sizeof(name));
3. Most kell egy switch függvény hogy a szöveg megfelelő legyen:
switch(reason)
4. Most létre kell hozni különféle
pontokat ahol a játékost bannolták, kilépett vagy időtúllépés volt nála.
case parancsal fogjuk végre hajtani.
Most elsőnek ban/kick-es üzenetet foglyuk megcsinálni:
case 0: format(str, sizeof(str), "*** %s (%d) Kilépett a szerverről (Időtullépés)", name, playerid);
case 1: format(str, sizeof(str), "*** %s (%d) Kilépett a szerverről (Kilépés)", name, playerid);
case 2: format(str, sizeof(str), "*** %s (%d) Kilépett a szerverről (Kirúgva/Bannolva)", name, playerid);
Mintláthattátok csak a sorszámot és a szöveget kellet megváltoztatni.
És már kész is, itt egy példa:
-
public OnPlayerDisconnect(playerid, reason)
-
{
-
new name[MAX_PLAYER_NAME], str[128];
-
GetPlayerName(playerid, name, sizeof(name));
-
switch (reason) {
-
case 0: format(str, sizeof(str), "*** %s (%d) Kilépett a szerverről (Időtullépés)", name, playerid);
-
case 1: format(str, sizeof(str), "*** %s (%d) Kilépett a szerverről (Kilépés)", name, playerid);
-
case 2: format(str, sizeof(str), "*** %s (%d) Kilépett a szerverről (Kirúgva/Bannolva)", name, playerid);
-
}
-
SendClientMessageToAll(0xC0C0C0AA, str);
-
return 1;
-
}
Utószó
Remélem sokat segítettem ezzel a bemutatóval. Most már jöhetnek a kritikák.
public OnPlayerConnect(playerid)
{
new pName[MAX_PLAYER_NAME];
new string[46];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s [ID:%d] Csatlakozott A Szerverre.", pName, playerid);
SendClientMessageToAll(0x0dff00AA, string);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new name[MAX_PLAYER_NAME], str[128];
GetPlayerName(playerid, name, sizeof(name));
switch (reason) {
case 0: format(str, sizeof(str), "*** %s [ID:%d] Kilépett A Szerverről. (Időtullépés)", name, playerid);
case 1: format(str, sizeof(str), "*** %s [ID:%d] Kilépett A Szerverről. (Kilépet)", name, playerid);
case 2: format(str, sizeof(str), "*** %s [ID:%d] Kilépett A Szerverről. (Kirúgva/Bannolva)", name, playerid);
}
SendClientMessageToAll(0x0dff00AA, str);
return 1;
}
Tess itt egy teljes minta csak másold be és változtasd meg a szint ha meg akarod