Csatlakozsi s tvozsi zenet
by ALIEN
Elszdv, most megmutatom hogy-hogy csinlhatunk zenetet,
amikor valaki csatlakozik a szerverre vagy ppen,
tvozik a szerverrl. Na lssuk is.
------------------------------------Csatlakozs:----------------------------------
Itt egy zenetet fogunk csinlni a tbbi
playernek hogy tudjk hogy te csatlakoztl a szerverre.
Itt egy plda: ALIEN csatlakozott a szerverre.
public OnPlayerConnect(playerid) -nl fogunk dolgozni,
gy hogy keressk is meg, vagy ha nincs akkor rjunk egyet.
1.Elsnek is hozzunk ltre 2 trolt.
Az egyik, a jtkos nevt fogja trolni, a msik a szveget fogja trolni.
Kd:
new pName[MAX_PLAYER_NAME];// a jtkos nevt trolja new string[256];// a szveget trolja
2.Most meg kell tudnunk a jtkos nevt, erre a GetPlayerName
fggvnyt fogjuk hasznlni:
Kd:
GetPlayerName(playerid, pName, sizeof(pName)); // ezzel a parancsal tudjuk meg a jtkos nevt
3.Most az eltrolt nevet az zenetbe be kell valahogy helyezni.
Ehhez hvjuk, segtsgl a format -ot:
Kd:
format(string, sizeof(string), "%s csatlakozott a szerverre.", pName);// %s = jtkos neve s zenete
4. s mr csak el kell kldeni az zenetet mindenkinek.
Ehhez a SendClientMessageToAll fggvnyt fogjuk hasznlni:
Kd:
SendClientMessageToAll(0x00FF28FF, string); elkldi mindenkinek az zenetet
Itt egy minta:
Kd:
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; }
---------------------------------------------Tvozs:--------------------------------
Itt az zenetet arra az esetre fogjuk megcsinlni ha a jtkos tvozik.
PL. -ban/kick, -idtullps, -vagy csak smn kilpett a jtkos.
Itt egy plda: ALIEN elhagyta a szervert.
Most a public OnPlayerDisconnect(playerid, reason)-nl fogunk dolgozni.
Keressk meg, vagy ha nincs akkor csinljunk egyet.
1.Megint kellenek a new-ek, a lecsatlakoz player
nevnek trolshoz s a szveg trolshoz:
Kd:
new name[MAX_PLAYER_NAME]; new str[128];
2. Megint lekrdezzk a jtkos nevt GetPlayerName -val:
Kd:
GetPlayerName(playerid, name, sizeof(name));
3. Most kell egy switch fggvny hogy a szveg megfelel legyen:
Kd:
switch(reason)
4. Most ltre kell hozni klnfle
pontokat ahol a jtkost bannoltk, kilpett vagy idtllps volt nla.
case parancsal fogjuk vgre hajtani.
Most elsnek ban/kick-es zenetet foglyuk megcsinlni:
Kd:
case 0: format(str, sizeof(str), "*** %s (%d) Kilpett a szerverrl (Idtullps)", name, playerid);
Kd:
case 1: format(str, sizeof(str), "*** %s (%d) Kilpett a szerverrl (Kilps)", name, playerid);
Kd:
case 2: format(str, sizeof(str), "*** %s (%d) Kilpett a szerverrl (Kirgva/Bannolva)", name, playerid);
Mintlthatttok csak a sorszmot s a szveget kellet megvltoztatni.
s mr ksz is, itt egy plda:
-
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) Kilpett a szerverrl (Idtullps)", name, playerid);
-
case 1: format(str, sizeof(str), "*** %s (%d) Kilpett a szerverrl (Kilps)", name, playerid);
-
case 2: format(str, sizeof(str), "*** %s (%d) Kilpett a szerverrl (Kirgva/Bannolva)", name, playerid);
-
}
-
SendClientMessageToAll(0xC0C0C0AA, str);
-
return 1;
-
}
Utsz
Remlem sokat segtettem ezzel a bemutatval. Most mr jhetnek a kritikk.
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] Kilpett A Szerverrl. (Idtullps)", name, playerid);
case 1: format(str, sizeof(str), "*** %s [ID:%d] Kilpett A Szerverrl. (Kilpet)", name, playerid);
case 2: format(str, sizeof(str), "*** %s [ID:%d] Kilpett A Szerverrl. (Kirgva/Bannolva)", name, playerid);
}
SendClientMessageToAll(0x0dff00AA, str);
return 1;
}
Tess itt egy teljes minta csak msold be s vltoztasd meg a szint ha meg akarod