Szerző Téma: [TuT] Fel/le csatlakozási üzenet  (Megtekintve 3102 alkalommal)

Nem elérhető ALIEN

  • 1163
    • Profil megtekintése
[TuT] Fel/le csatlakozási üzenet
« Dátum: 2010. Április 05. - 23:57:52 »
0
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 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

 
-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.
« Utoljára szerkesztve: 2010. Április 06. - 09:29:08 írta ALIEN »

[TuT] Fel/le csatlakozási üzenet
« Válasz #1 Dátum: 2010. Április 06. - 08:41:10 »
0
JÓ lett de COLOR_RED-t lecserélhetnéd a kódjára(0xAA3333AA) mert ha nem definiált akkor cseszheti :)

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
[TuT] Fel/le csatlakozási üzenet
« Válasz #2 Dátum: 2010. Április 06. - 09:18:33 »
0
csúnyán van megírva, bocs, ez nem leszólás, csak egy \"tájékoztatás\"  :D

56-os karakterláncot nem hozunk létre. általában 64, 128 -at használunk.


Légyszíves még írd oda (kezdoknek) hogy mi az az ún. switch. (én tudom, de jó lenne kezdoknek szerintem)

 
public OnPlayerDisconnect(playerid, reason)
{
    new
        string[64],
        name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    switch(reason)
    {
        case 0: format(string,sizeof string,\"%s left the server. (Timed out)\",name);
        case 1: format(string,sizeof string,\"%s left the server. (Leaving)\",name);
        case 2: format(string,sizeof string,\"%s left the server. (Kicked/Banned)\",name);
    }
    SendClientMessageToAll(0xFFFFFFAA,string);
    return 1;
}

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[TuT] Fel/le csatlakozási üzenet
« Válasz #3 Dátum: 2010. Április 06. - 12:17:21 »
0
Szép kis tut, hasznos azoknak akik most tanulják a mesterséget :D

[TuT] Fel/le csatlakozási üzenet
« Válasz #4 Dátum: 2010. Április 06. - 12:20:18 »
0
1 kérdés :D a Crash az meik case?:D

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[TuT] Fel/le csatlakozási üzenet
« Válasz #5 Dátum: 2010. Április 06. - 12:21:05 »
0
Nemtom kitol kérdezed, de az elso

[TuT] Fel/le csatlakozási üzenet
« Válasz #6 Dátum: 2010. Április 06. - 12:26:52 »
0
Idézetet írta: Zharko date=1270549265\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1258\" data-ipsquote-contentclass=\"forums_Topic
Nemtom kitol kérdezed, de az elso
 
Köszi azaz magyarul 0 :D

[TuT] Fel/le csatlakozási üzenet
« Válasz #7 Dátum: 2012. Szeptember 09. - 15:06:17 »
0
Idézetet írta: ScreaM date=1270538313\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1258\" data-ipsquote-contentclass=\"forums_Topic
csúnyán van megírva, bocs, ez nem leszólás, csak egy \"tájékoztatás\"  :D

56-os karakterláncot nem hozunk létre. általában 64, 128 -at használunk.


Légyszíves még írd oda (kezdoknek) hogy mi az az ún. switch. (én tudom, de jó lenne kezdoknek szerintem)

 
public OnPlayerDisconnect(playerid, reason)
{
    new
        string[64],
        name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    switch(reason)
    {
        case 0: format(string,sizeof string,\"%s left the server. (Timed out)\",name);
        case 1: format(string,sizeof string,\"%s left the server. (Leaving)\",name);
        case 2: format(string,sizeof string,\"%s left the server. (Kicked/Banned)\",name);
    }
    SendClientMessageToAll(0xFFFFFFAA,string);
    return 1;
}

 

Nekem a reason-ra ezt adja.:
 
error 017: undefined symbol \"reason\"[/quote]
ezt miért? oO

Nem elérhető JackBronson

  • 1499
  • ??
    • Profil megtekintése
[TuT] Fel/le csatlakozási üzenet
« Válasz #8 Dátum: 2012. Szeptember 10. - 12:56:40 »
0
Nincs definalva a reason fuggveny gondolom en

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal