Csatlakozási és távozási üzenet EloszóÜdv, most megmutatom hogy-hogy csinálhatunk üzenetet,
amikor valaki csatlakozik a szerverre vagy éppen,
távozik a szerverrol. 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.Elsonek 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
GetPlayerNamefü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
-a
string az eltárolt üzenet.
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, -idotullé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 pName[MAX_PLAYER_NAME];
new string[256];
3. Megint lekérdezzük a játékos nevét
GetPlayerName -val:
GetPlayerName(playerid, pName, sizeof(pName));
3. Most kell egy
switch függvény hogy a szöveg megfelelo legyen:
switch(reason)
4. Most létre kell hozni különféle
pontokat ahol a játékost bannolták, kilépett vagy idotúllépés volt nála.
case parancsal fogjuk végre hajtani.
Most elsonek ban/kick-es üzenetet foglyuk megcsinálni:
case 0: // switch-el definiált függvény
{
GetPlayerName(playerid, pName, sizeof(pName)); //megtudjuk a játékosnak a nevét, és el is tárolja
format(string,sizeof(string),\"%s -t kírúgták. (KICK/BAN)\",pName); // string tárolja az üzenetet
SendClientMessageToAll(0xAA3333AA,string); // elküldi az üzenetet mindenkinek
}
Most ugyanúgy megcsináljuk az idotúllépéses üzenettel, és a kilépéses üzenettel is!
case 1: // switch-el definiált függvény
{
GetPlayerName(playerid, pName, sizeof(pName)); //megtudjuk a játékosnak a nevét, és el is tárolja
format(string,sizeof(string),\"%s -t kilépett (Idotúllépés)\",pName); // string tárolja az üzenetet
SendClientMessageToAll(0xAA3333AA,string); // elküldi az üzenetet mindenkinek
}
case 2: // switch-el definiált függvény
{
GetPlayerName(playerid, pName, sizeof(pName)); //megtudjuk a játékosnak a nevét, és el is tárolja
format(string,sizeof(string),\"%s -t kilépett. (Kilépés)\",pName); // string tárolja az üzenetet
SendClientMessageToAll(0xAA3333AA,string); // elküldi az üzenetet mindenkinek
}
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 pName[MAX_PLAYER_NAME];
new string[64];
GetPlayerName(playerid, pName, sizeof(pName));
switch(reason) //ellenorzi hogy helyes szöveget küld-e
{
case 0:
GetPlayerName(playerid, pName, sizeof(pName));
format(string,sizeof(string),\"%s -t kírúgták. (KICK/BAN)\",pName);
case 1:
GetPlayerName(playerid, pName, sizeof(pName));
format(string,sizeof(string),\"%s -t kilépett (Idotúllépés)\",pName);
case 2:
GetPlayerName(playerid, pName, sizeof(pName));
format(string,sizeof(string),\"%s -t kilépett. (Kilépés)\",pName);
}
SendClientMessageToAll(0xAA3333AA,string);
return 1;
}
UtószóRemélem sokat segítettem ezzel a bemutatóval. Most már jöhetnek a kritikák.