Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - Dfoglalo

Oldalak: 1 ... 16 17 [18] 19 20 ... 261
256
SA-MP: Szerverfejlesztés / Szerver monitorozó - "dOnitor"
« Dátum: 2014. november 20. - 23:24:31 »
Ez az egyik legegyszerűbb megoldás. Nem fogom átírni máshogy (már ha egyáltalán át lehet - nem hiszem, mert freaddel lehet beolvasni, meg kell adni a megnyitott socketet és a biteket és pont) csak azért, mert más már megoldotta esetleg így. Bár lehetne például így is:
 
echo \'<tr><td>\' . fread($socket, $strlen) .\'</td><td>\' . ord(fread($socket, 4)) . \'</td></tr>\';

 
Csak kommentezni szerettem volna.

257
Archívum / [HUN]Dark Life RPG
« Dátum: 2014. november 20. - 23:14:32 »
[gmod]A leírás elfogadása előtt tilos hozzászólni a témához. Ezen hozzászólás eltávolítva és az illető szankcionálva.[/gmod]

258
Segítségkérés / BlockIpAddress hiba
« Dátum: 2014. november 20. - 23:12:56 »
Idézetet írta: blackdog476 date=1416517857\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51434\" data-ipsquote-contentclass=\"forums_Topic
Szerintem frissítened kéne a szervercsomagod / pawnod.
 
Vagyis frissítened kéne az alap függvénykönyvtárakat és a szerverrel kapcsolatos alkalmazásfájlokat. Tehát mindent. :D De a lényeg, hogy mindez azért van, mert ez egy nagyon új feature (legalábbis ilyen \"sebes\" SAMP frissítési tempóban az), csak a 0.3z R2-2 verziótól elérhető.
Lásd: http://wiki.sa-mp.com/wiki/BlockIpAddress - A zöld dobozkában.

259
SA-MP: Szerverfejlesztés / Szerver monitorozó - "dOnitor"
« Dátum: 2014. november 20. - 23:09:24 »

Szerver monitorozó

\"dOnitor\" by Dfoglalo
 

Kedves Fórumozók,
Nem sok munkát publikálok, mert nem is nagyon szoktam publikálásra szánt anyagokat írni: Ez alkalommal kedvet kaptam ahhoz, hogy írjak egy kis alap, példa kódot egy igen hasznos dologgal kapcsolatban: ez pedig a SAMP szever monitorozása. Ennek alapjául a SAMP Wiki egy oldala szolgált, amelynek tartalma a gyakorlatlan szemnek elsőre egy bonyolult dolognak tűnhet, pedig valójában roppant egyszerű. Éppen ezért is írtam meg ezt a kis 100 soros kódot; hogy aki ki szeretné ezt a lehetőséget használni, de nem nagyon sikerül megérteni, az talán egy példán és némi magyarázaton keresztül megérti majd. Ezeken kívül természetesen található a neten rengeteg forráskód még ezzel kapcsolatban, amelyek sokszor komoly rendszerek, amely biztosítanak függvényeket a lekérdezések és műveletek egyszerű elvégzéséhez. Illetve találni kész, nagy terjedelmű, dizájnolt kódokat is. Azonban úgy gondolom, hogy hasznosabb az, ha az ember érti is a forráskódot és nem csak letölt egyet, illetve ha teljesen sajátot ír, a saját kódolási szokásaival, a saját szándékának megfelelően. Ez a példa pedig talán remek alapjául szolgálhat a dolog megértésének és egy egyedi kódba kezdésnek.
De talán szokásomhoz híven kicsit sokat szövegeltem, így ideje egy képen bemutatni az eredményt:
 

[hs width=222]
http://kephost.com/images/2014/11/20/example.png[/hs]
1. ábra - A képen egy, a SAMP kliens szerverlistázójából véletlenszerűn kiválasztott szerver adatai láthatók
 

Semmi túlzott dizájn, csak egy kevéske HTML az olvashatóság értekében. Ti majd magatoknak a saját kódotokat úgy dizájnoljátok, ahogyan csak akarjátok. De most jön a lényeg, a kód:
 
<?php
/*
Készítette: Dfoglalo
Felhasználási feltételek: ne állítsa be úgy a kódot, mintha önmaga készítette volna.
Kelt: 2014.11.20.
*/
$ip = \"127.0.0.1\"; // A szerver IP címe
$port = \"7777\"; // A szerver portja
$socket = fsockopen(\'udp://\'. $ip, $port, $errorn, $errori); // Socket készítése
if($socket) // Ha a megnyitás sikeres
{
$packet = \'SAMP\'; // A SAMP packet kiválasztása
// Az IP címet és a portot hozzáadogatjuk a változóhoz
$packet .= chr($ip[0]);
$packet .= chr($ip[1]);
$packet .= chr($ip[2]);
$packet .= chr($ip[3]);
$packet .= chr($port & 0xFF);
$packet .= chr($port >> 8 & 0xFF);
fwrite($socket, $packet.\'i\'); // Elküldjük a packetet, benne a SAMP azonosítóval, az IP-vel és a porttal, valamint az i opcodeddal
fread($socket, 11); // A 11. bájttól kezdjük a beolvasást, mert ott találjuk az első kiírandó adatot
/* A 11. bittől kezdve kérdezhetjük le, hogy jelszóval van e védve a szerver.
Ennek a hossza 1 bit, tehát ekkora a hosszan is kérjük le az adatokat.
A visszakapott értéket ellenőrizzük és ha igaz, a szerver jelszóval van védve.
Ellenkező esetben természetesen a szerver nincs jelszóval védve. */
$password = ord(fread($socket, 1));
if($password) echo \'<b>A szerver <font color=\"red\">jelszóval van védve.</font></b><br>\';
else echo \'<b>A szerver <font color=\"green\">nincs jelszóval védve.</font></b><br><br>\';
/* A követkőzkben kiírjuk, hogy a szerveren hány játékos tartózkodik jelenleg hány slotból.
Mivel előtte lekérdeztünk egy bitet, így automatikusan továbbléptünk a következőhöz.
Ezáltal le tudjuk kérdezni akár a következő 2 bitet is, amely a játékosok számát adja vissza.
Ha ezzel is készen vagyunk, lekérdezhetjük a következő kettőt, amely a szerver slotok számát adja vissza. */
echo \'<b>Játékosok száma:</b> \' . ord(fread($socket, 2)) . \'/\' . ord(fread($socket, 2)) . \'<br>\';
/* A következő 4 biten lekérdezhetjük, hogy milyen hosszú a hostname.
Ezen lekérdezést eredményét deklaráljuk egy $strlen nevű változóba.
Utána jön maga a hostname. Hogy ezt le tudjuk kérdezni, meg kell tudnunk, hogy hány
bitnyi adatok kell most lekérdeznünk. Ezt mi már megtudtuk az előző lépés segítségével.
Így tehát egy kézzel beírt szám helyett a deklarált $strlen változót adjuk meg. */
$strlen = ord(fread($socket, 4));
echo \'<b>Hostname:</b> \' . fread($socket, $strlen) . \'<br>\';
/* Ugyanezen módszerrel lekérdezhetjük a gamemode nevét és a
mapnamet is, ugyanis ők következnek a sorban, a visszakapott bitek sorában. */
$strlen = ord(fread($socket, 4));
echo \'<b>Gamemode:</b> \' . fread($socket, $strlen) . \'<br>\';
$strlen = ord(fread($socket, 4));
echo \'<b>Mapname:</b> \' . fread($socket, $strlen) . \'<br><br>\';
/* Idáig tartottak az alap adatok, amelyeket az ember általában ki szokott íratni.
Azonban felhozok még 1-2 példát, ha nem porlbéma. Például azt, hogy hogyan kell
lekérdezi az egyes játékosok elérhető adatait. Íme.*/
fwrite($socket, $packet.\'c\'); // Már az c opcodeddal küldjük el a packetet
fread($socket, 11); // Szintén a 11. bájttól kezdjük a beolvasást
$players = ord(fread($socket, 2)); // Deklaráljuk a players változót, amely értéke egyenlő lesz az online játékosok számával
/* 0 játékos esetén ez a rész nem fog lefutni. Ha csak a ciklus létezne, nem
lenne rá feltétlenül szükség, mert a ciklusmag egyszer sem futna le, 0 játékos
esetén sem. Bár a ciklus megpróbálna lefutni, feleslegesen, amelyet jobb megakadályozni.
De jelen esetben főleg azért van rá szükség, hogy ne hozzunk létre feleslegesen egy
táblázatot, ha 0 játékos tartózkodik fent a kiválasztott szerveren. */
if($players > 0)
{
/* Táblázat megkezdése 5 pixeles margóval, a játékos lista megformázása érdekében */
echo \'<table celspacing=\"5\">
   <tr>
      <td><b>Név</b></td>
      <td><b>Pont</b></td>
   </tr>\';
for($i = 0; $i < $players; ++$i)
{
   /* A kényelmesebb kommentezés érdekében deklaráltam néhány plusz helyi
   változót, például a $score változóra nincs jelenleg szükség, ugyanis
   kiírhattam volna rögtön a képernyőre az fread függvény által visszaadott adatokat. */
   $strlen = ord(fread($socket, 1)); // Lekérdezzük a soron következő játékos nevének a hosszát
   $player = fread($socket, $strlen); // Lekérdezzük a soron következő játékos nevét annak előzőleg lekérdezett hossza alapján
   $score = ord(fread($socket, 4)); // Lekérdezzük a soron következő játékos pontjainak számát, a következő 4 bitről
   /* Kiíratjuk a játékos nevét és a pontját. */
   echo \'<tr><td>\' . $player .\'</td><td>\' . $score .\'</td></tr>\';
   /* Ha még van(nak) hátra játékos(ok), akkor a ciklis nem kép ki és a ciklusmag újra lefut.
   Azonban ekkor már túlléptünk néhány bitet, nevezetesen a soron következett játékos
   nevének a hosszát, a nevét és a pontját tartalmazó biteket. Így legközelebb már az ezen
   bitok után következő bitek fognak következni, amely már egy új játékos adati lesznek. */
}
echo \'</table>\'; // A táblázat lezárása
}
}
else echo \"A szerver nem elérhető.\";
fclose($socket); // Lezárjuk a kapcsolatot
?>

 
Nem a legprofibb kód, de megteszi. Egyébként egyedül azért nevezem ezt egy PHP szkriptnek, nem pedig egy tutorialnak, mert a szkript önmagában is felhasználható - és így is szeretném kiadni, mint felhasználható szkript, ha már megírtam - például arra, hogy valaki a szervere weboldalán kilistázza az éppen online játékosokat. Na meg a tutorial kicsit máshogy is nézne ki; alapból a fórum témában írnám meg, nem pedig kommentezve a kódban.
 

Letöltés - Pastebin
 
 
Remélem, hogy azért valakinek majd a hasznára válik.
Utóirat: lehet, hogy ezt a dOnitor megnevezést nem kéne erőltetnem, de már mindegy. :D
 

Üdvözlettel,

Dfoglalo

260
Kérdések, Segítség / Játékos monitor
« Dátum: 2014. november 20. - 20:29:21 »
Idézetet írta: Koncz_Norbert date=1416511589\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51432\" data-ipsquote-contentclass=\"forums_Topic
Also, itt egy MySQL-es monitor. http://forum.sa-mp.com/showthread.php?t=301435
 
Ez egyszerű MySQL lekérdezés és PHP képszerkesztés. Ezzel csak a játékos adatait tudja lekérni, melyeket tárol a szerver adatbázisában. A szerver információit már nem (pl. online játékosok száma, a szerver megy e egyáltalán, mi például a mód neve, vagy hasonlók). Igaz, a példában ilyenek nem szerepelnek, csak egyszerű játékos adatok, amelyek egyszerű MySQL lekérdezéssel megtudhatóak.

261
Kérdések, Segítség / Játékos monitor
« Dátum: 2014. november 20. - 20:16:04 »
http://wiki.sa-mp.com/wiki/Query_Mechanism + PHP és egy kis Photoshop
Annak idején egyszer csináltam ilyet, szóval csak nem mondok rosszat :D

262
Archívum / [HUN]Dark Life RPG
« Dátum: 2014. november 20. - 18:26:02 »
Dehogy elég. Múltkor 1 sorból állt a téma, most retinaégető vörös 20-ból. Haladás. Sőt, az általad használt mód editjéhez a legnehezebb leírást készíteni, ott van a legmagasabb elvárás.  Bár gondolom semmi egyediség nincs benne, csak letöltötted. A téma alapján nem is vagy tisztában az RPG-vel. Sőt, még a GF-el sem. Apropó, lecseréltem a prefixet RPG-ről GF-re, mert ez annak mondható legfeljebb.

263
SA-MP: Szerverfejlesztés / Biztonságos EDSMS rendszer
« Dátum: 2014. november 20. - 18:19:57 »
[gmod]24 órád van a szabályzatnak megfelelően, reklámozás nélkül megírnod a témát.[/gmod]

264
Segítségkérés / MySQL probléma Linux-on
« Dátum: 2014. november 20. - 13:49:50 »
Yep, az sem mindegy.

265
Segítségkérés / MySQL probléma Linux-on
« Dátum: 2014. november 20. - 00:29:06 »
Idézetet írta: ZyZu. date=1416434051\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51421\" data-ipsquote-contentclass=\"forums_Topic
Hibás, Failed (libmysqlclient_r.so.16: wrong ELF class: ELFCLASS64) van benne, próbáld kicserélni.
 
Nope. Nem tudja kicserélni. A hoszting egy arra jogosult dolgozójának kell vele foglalkoznia, valamit feltelepítenie az OS-re ami MySQL-al kapcsolatos. Nem tudom pontosan, hogy hogyan megy ez. Azt viszont tudom, hogy ha \"statikus\" plugint használ, nem jön elő ez a probléma. BlueG plugin? Ha igen, a-mellé azt hiszem jár \"statikus\" verziós is.

266
Szkript kérések / campos mentés
« Dátum: 2014. november 19. - 20:01:55 »
Pawn* A Pawno egy program. Régen szerintem még én is kevertem. :D Semmi probléma, azért van ez a fórumrész. Viszont amit bemásoltam, az azt a txt-t használja, mint a törölt tartalmú téma volt kódja + a feltöltés is abba az időszakba esik. Ráadásul csak egy parancs, ahogyan kérted.

267
Archívum / Everyday RP/GF ~ The New Adventure
« Dátum: 2014. november 19. - 18:37:43 »
Ez hamarosan nyíló szerver témája, nincs mit elfogadni. Bár tény, megjegyezhető, hogy ez még hamarosan nyílónak is kicsit kevés. Viszont ha áthelyezéskor nem lesz ennél jóval tartalmasabb, jóval nagyobb terjedelmű a téma, akkor nem fogjuk tudni majd áthelyezni és elfogadni. Illetve neked különösen nehéz dolgod van, mivel a - sajnos - legelterjedtebb GF módból szeretnél egy szervert készíteni, majd arról egy leírást, amelyben le kell írnod a szerver egyediségeit. Az pedig nagyon nehéz egy edit módnál.


Szerk.: a GF-ből RP-s írásokat levettem (nem vettem észre, hogy ez GF lesz, elnézést).

268
Szkript kérések / campos mentés
« Dátum: 2014. november 19. - 18:25:54 »
Úgy imádom ezt :D Az írásos kommunikációban nem lehet tökéletes kifejezni az érzelmeket, így ha valaki helyesen, megfogalmazottan és komolyan ír, esetleg hangulatjelek nélkül, akkor az máris haragos, szomorú, dühös, vagy felkapta a vizet. Nem, én nem kaptam fel a vizet, elvégre nincs min. Csupán leírtam néhány állítást, kijelentést és megpróbáltam neked segíteni. Úgy pedig sosem fogsz megtanulni normális szkriptelni/programozni, ha mindig csak egy-egy adott, más által írt kódra támaszkodsz. Tessék saját forráskódokat írni és tanulni vele.


Egyébként így egyszerű volt megtalálni:
http://pastebin.com/6ASTyEHY
És ezek szerint nem ZCMD-s.

269
Segítségkérés / Hibás parancs kiírása
« Dátum: 2014. november 19. - 17:25:02 »
Az egy dolog, hogy \"tökéletesen\" működik, de feleslegesen foglal le memóriát. A tökéletest pedig azért tettem idézőjelbe, mert a forráskód nem az elképzelhető leghatékonyabb formában lett megírva, így az nem tökéletes.

270
Segítségkérés / Hibás parancs kiírása
« Dátum: 2014. november 19. - 17:19:40 »
Idézetet írta: GUN date=1416413486\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51417\" data-ipsquote-contentclass=\"forums_Topic
Azért írtam oda, mert feltételeztem, hogy a témanyitó kezdő.
 
Valószínűleg az. De ha az is, valószínűleg a név lekérdezést és a változó deklarálást azért csak ismeri... Ha pedig nem, rákeres és azonnal megtalálja. De mindegy is, mert végül csak leírtam én is a név lekérdezését :D



 
new string[1280];

 

[/quote]
Nem lesz ez egy kicsit sok? :D

Oldalak: 1 ... 16 17 [18] 19 20 ... 261
SimplePortal 2.3.7 © 2008-2025, SimplePortal