hlmod.hu
https://hlmod.hu/

003 - Metamod:Client -> Connect parancs letiltása!
https://hlmod.hu/viewtopic.php?f=111&t=29975
Oldal: 1 / 1

Szerző:  kiki [ 2019.08.03. 12:46 ]
Hozzászólás témája:  003 - Metamod:Client -> Connect parancs letiltása!

Metamod:Client

Connect parancs letiltása:

Sziasztok! Ebben a tutorialban megmutatom hogy lehet letiltani a szerverekre való csatlakozást, illetve inkább azt hogy hogy lehet beállítani hogy milyen szerverre engedjen fel a kliensel. Többek között ez azért jó megoldás, mert ha csinálsz egy klienst, amiben lesznek extrák ..stb, hogy csak a te szervereden tudjanak játszani a kliensel!

A 001es tutorial plugint veszem alapul, az adott sorokat ahoz viszonyítva mutatom, hogy hova kell bele írni a példa pluginba!

A Meta_Api.cpp fájlt megnyitjuk magunk elé első lépésként! És valahol az includek alatt létre hozzuk a következő sort:

  1. int ClientCmd(const char *cmd);


Megkeressük az Initialize függvényt, és a ClientCmds szövegkiiírás alatt elhelyezzük ezt a sort:
pEnginefuncs->pfnClientCmd = &ClientCmd;

Valahogy így kell kinéznie:

  1. gEngfuncs.pfnClientCmd("echo \"www.hlmod.hu - Kliens elindult!\"");
  2.     pEnginefuncs->pfnClientCmd = &ClientCmd;
  3.     RETURN_META_VALUE(MRES_IGNORED, 0);


majd valahol a kódban, mondjuk az initalize alatt létre hozzuk a definált függvényt, ami így néz ki:

  1. int ClientCmd(const char *cmd)
  2. {
  3.      //Ha a beírt parancs tartalmazza a connect szót, és a beállított ip címet, akkor lefuttatja a konzolba beírt parancsot! Megjegyzem hogy mikor menüből csatlakozol, az is csak egy konzol parancsot teljesít, szóval ott is működni fog! Az példa ip cím helyére, kell a te szerverednek az ip címe, akár mennyi ip cím hozzá adható a megfelelő módon!
  4.      if( strstr( cmd, "connect" ) && strstr( cmd, "91.82.220.218:27998" ) )
  5.      {
  6.          return gEngfuncs.pfnClientCmd(cmd);
  7.      }
  8.      //Itt pedig az else részben tiltódik minden más connectes parancs tiltása. Kivéve a disconnect, mert kilépni már kilehessen a szerverről!
  9.      else if(strstr( cmd, "connect" ) && !strstr( cmd, "dis" ))
  10.      {
  11.         gEngfuncs.pfnClientCmd("echo \"Sajnalom, csak a hlmod.hu szervereire mehetsz fel a kliensel\"");
  12.         //MRES_SUPERCEDE mint mindenhol máshol ,itt is a teljes tiltást jelenti, így a beírt parancs nem fog lefutni, itt megállítja a függvényt!
  13.         RETURN_META_VALUE(MRES_SUPERCEDE, 4);
  14.      }
  15.     //Ha a fent található elágazásokba nem tér be az adott parancs futtatássakkor, akkor lefuttatja a beírt parancsot, tehát mindent amit beírsz a konzolba, az működni fog, mert azt az értéket adja vissza, szóval ez a return minden képpen kell bele!
  16.     return gEngfuncs.pfnClientCmd(cmd);
  17. }


Végeredmény:
► Spoiler mutatása

Szerző:  *tOrNaDo [ 2019.08.04. 09:07 ]
Hozzászólás témája:  Re: 003 - Metamod:Client -> Connect parancs letiltása!

Szép munka, csak így tovább! :ugeek:

kiki írta:
Metamod:Client

Connect parancs letiltása:

Sziasztok! Ebben a tutorialban megmutatom hogy lehet letiltani a szerverekre való csatlakozást, illetve inkább azt hogy hogy lehet beállítani hogy milyen szerverre engedjen fel a kliensel. Többek között ez azért jó megoldás, mert ha csinálsz egy klienst, amiben lesznek extrák ..stb, hogy csak a te szervereden tudjanak játszani a kliensel!

A 001es tutorial plugint veszem alapul, az adott sorokat ahoz viszonyítva mutatom, hogy hova kell bele írni a példa pluginba!

A Meta_Api.cpp fájlt megnyitjuk magunk elé első lépésként! És valahol az includek alatt létre hozzuk a következő sort:

  1. int ClientCmd(const char *cmd);


Megkeressük az Initialize függvényt, és a ClientCmds szövegkiiírás alatt elhelyezzük ezt a sort:
pEnginefuncs->pfnClientCmd = &ClientCmd;

Valahogy így kell kinéznie:

  1. gEngfuncs.pfnClientCmd("echo \"www.hlmod.hu - Kliens elindult!\"");
  2.     pEnginefuncs->pfnClientCmd = &ClientCmd;
  3.     RETURN_META_VALUE(MRES_IGNORED, 0);


majd valahol a kódban, mondjuk az initalize alatt létre hozzuk a definált függvényt, ami így néz ki:

  1. int ClientCmd(const char *cmd)
  2. {
  3.      //Ha a beírt parancs tartalmazza a connect szót, és a beállított ip címet, akkor lefuttatja a konzolba beírt parancsot! Megjegyzem hogy mikor menüből csatlakozol, az is csak egy konzol parancsot teljesít, szóval ott is működni fog! Az példa ip cím helyére, kell a te szerverednek az ip címe, akár mennyi ip cím hozzá adható a megfelelő módon!
  4.      if( strstr( cmd, "connect" ) && strstr( cmd, "91.82.220.218:27998" ) )
  5.      {
  6.          return gEngfuncs.pfnClientCmd(cmd);
  7.      }
  8.      //Itt pedig az else részben tiltódik minden más connectes parancs tiltása. Kivéve a disconnect, mert kilépni már kilehessen a szerverről!
  9.      else if(strstr( cmd, "connect" ) && !strstr( cmd, "dis" ))
  10.      {
  11.         gEngfuncs.pfnClientCmd("echo \"Sajnalom, csak a hlmod.hu szervereire mehetsz fel a kliensel\"");
  12.         //MRES_SUPERCEDE mint mindenhol máshol ,itt is a teljes tiltást jelenti, így a beírt parancs nem fog lefutni, itt megállítja a függvényt!
  13.         RETURN_META_VALUE(MRES_SUPERCEDE, 4);
  14.      }
  15.     //Ha a fent található elágazásokba nem tér be az adott parancs futtatássakkor, akkor lefuttatja a beírt parancsot, tehát mindent amit beírsz a konzolba, az működni fog, mert azt az értéket adja vissza, szóval ez a return minden képpen kell bele!
  16.     return gEngfuncs.pfnClientCmd(cmd);
  17. }


Végeredmény:
► Spoiler mutatása

Oldal: 1 / 1 Minden időpont UTC+01:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/