Legutóbbi hozzászólások

Oldalak: 1 [2] 3 4 5
11
Leírások / md5Hash leírás
« Utolsó üzenet: írta Azzeroth Dátum január 22, 2014, 01:21:33 pm »
Üdv. fórumozók az md5hash kódolásról készítettem egy kis leírást.

Hogy az md5 mire is jó?
Karakter láncokat tudunk vele kódolni.

És hogy ez miért is jó nekünk?
Feltételezzük, hogy vannak személyek akik hozzáférésük van ok-okozat miatt az adatbázisunkhoz, vagy ahol tároljuk mondjuk a jelszavakat.
Mi nem szeretnénk, hogy ő akár csak véletlenül is be tudjon lépni nem saját fiókjaiba.

A szokásosnál most másképp:
Szokásosan a regisztrációnál az jelszót simán tároljuk, de most kódoltan fogjuk.
Nem tudom ki mennyire ismeri a Windows rendszereket.
A Windows sem simán tárolja adatainkat, hanem kódolja.
Mikor te megadod jelszónak, hogy 12345 ő azt nem így fogja eltárolni, kódolja és utána tárolja, mivel a visszafejthetőségre nagyon kicsi az esély,
vagy esetleg egy program ami az összes kódolt jelszót tartalmazza összehasonlítással igen, de ebbe most ne menjünk bele...  :o

Mentésnél, ha parancsból kérjük ki nem azt fogjuk most megadni, hogy:
Pawno Code: [Kijelölés]
jelszóMentés(cmd[1]);hanem
Pawno Code: [Kijelölés]
jelszóMentés(md5(cmd[1]));
Ezáltal kódoltan mentjük a jelszavakat.

Példa egy képpel:

A képen láthatjuk, a string szó után az eredeti általunk megadott szót, majdpedig az md5hash által ugyan ez csak kódoltan.

Bejelentkezésnél például, mi lekérdezzük a tárolt jelszót ami a felhasználóhoz tartozik és nem visszafejteni akarjuk, hanem összehasonlítani az ő által beírt jelszót md5hash-re fordítva.

Példa:
Idézet
string jelszo = beolvasValahonnan(Azzeroth jelszavát); //ő most befogja olvasni az én jelszavamat kódoltan.

if(md5(beírtJelszó(playerid)) == jelszo)
{
//a jelszó egyezik!
}

Remélem érhető volt a leírás és tudtam segíteni!
(Ha mégsem, vagy elakadsz nyugodtan írj hozzászólást.)
12
Pluginok, Programok és Kiegészítők / Dialog rendszer
« Utolsó üzenet: írta Azzeroth Dátum január 22, 2014, 12:47:33 pm »
Üdv. fórumozók megosztanám veletek Roox dialógus rendszerét!

3 stílust találunk meg ebben:
  • LISTA
  • ÜZENETDOBOZ
  • BEMENET

A lista azaz a DIALOG_STYLE_LIST stílusú dialógus menete egyszer. Vagy dupla kattintással vagy egy kattintás plusz OK gombbal választhatsz.Visszatérő értékek: Melyik gombot nyomtál, és ha IGEN hanyadikat választottad.
Az üzenetdoboz azaz a DIALOG_STYLE_MSGBOX stílusú dialógus még egyszerűbb. Használhatod információ közlése, kérdezése, választási lehetőségek: IGEN vagy NEM gomb.Visszatérési értékek: Melyik gombot választottad.
A bemeneti ablak azaz a DIALOG_STYLE_INPUT stílusú dialógus lehetővé teszi az adatok bekérését.Visszatérési értékek: Melyik gombra nyomtál ill. a beírt karakterlánc tartalma.

Telepítése:
A "Dialogs.nut" fájlt helyezd el a Clientscripts könyvtárba, a settings.xml fájlba írd bele:
Idézet
<clientscript>Dialogs.nut</clientscript>
Ezután a te szkriptedbe helyezd el ezeket a tetejére:
Idézet
const DIALOG_STYLE_MSGBOX = 0;
const DIALOG_STYLE_INPUT = 1;
const DIALOG_STYLE_LIST = 2;

Majd pedig lejjebb/végére vagy ahova szeretnéd:
function onDialogResponse(playerid, dialogid, response, listitem, inputtext) //Amikor választott a dialógusban
{
    togglePlayerControls(playerid, true);
    return true;
}
addEvent("dialogResponse", onDialogResponse);

Idézet
playerid: játékos id-je
dialogid: a dialógus id-je
response: IGEN vagy NEM gombra nyomott
listitem: a DIALOG_STYLE_LIST dialóguson belül hanyadik elemet választotta
inputtext: a DIALOG_STYLE_INPUT dialógusnál visszatér a megadott karakterlánccal

Ezután helyezzük el ezt ismét bárhova:
Ez határozza meg, hogyan és mi történjen a dialógus megjelenítésekor:

function showPlayerDialog(playerid, dialogid, type, windowtext, maintext, firstbuttontext, secondbuttontext = "")
{
    triggerClientEvent(playerid, "GUIDialog", dialogid, type, windowtext, maintext, firstbuttontext, secondbuttontext);
    togglePlayerControls(playerid, false);
    return true;
}

Példák:
showPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "Window text", "Hello world", "OK", "Cancel");
showPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Window text", "Instert text:", "OK", "Cancel");
showPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Window text", "First button\nSecond button\nThirt button", "OK", "Cancel");

Letöltés:DialogSystem v2.0
Forrás:IVMP hivatalos fórum
13
Szkriptek / Object Editor v2.0
« Utolsó üzenet: írta Azzeroth Dátum január 22, 2014, 12:15:30 pm »
Üdv. fórumozók a minap találtam egy objekt szerkesztőt.

Funkciók:
  • Objektumok listázása
  • Objektum létrehozása
  • Létrehozott objektum duplázása
  • Létrehozott objektum duplázása játékossal szemben
  • Objtektum mentés/betöltés/törlése/szerkesztés
  • Objektum(ok) kiválasztása
  • Objektum mozgatása xyz koordinátákon
  • Objektum mozgatása a rotációs xyz koordinátákon
  • Objektum keresése a listából
  • Jelszó szerkesztése
  • Felhasználó hozzáadása/törlése
  • Varázs szőnyeg beállításai? (Csak Faggiónél On foot módban

Billentyű parancsok:

  • Általános billentyű parancsok:

    • (W) : X+
    • (S) : X-
    • (D) : Y+
    • (A) : Y-
    • (ARROW_UP) : Z+
    • (ARROW_DOWN) : Z-
    • (CTRL + W/S/A/D/UP/DOWN) : Gyorsabb mozgás
    • (R) : toggle rotáció
    • (CTRL + X) : Ablak bezárás
    • (CTRL + Z) : Visszavonás
    • (ENTER) : Kiválasztás/keresésh/generálás/beállítás

    Objektlistában a billentyű parancsok:
    • (ARROW_UP) : előző tárgy
    • (ARROW_DOWN) : Következő tárgy
    • (ARROW_LEFT) : Előző oldal
    • (ARROW_RIGHT) : Következő oldal
    • (CTRL + ARROW_LEFT) : Első oldal
    • (CTRL + ARROW_RIGHT) : Utolsó oldal
    • (CTRL + C) : Kategóriák megjelenítése
    • (CTRL + S) : Keresés


Prancsok:
  • /oh - Parancs list
  • /oc (ID) - Objektum létrehozása
  • /ocp - Objekt duplázása
  • /ocpp - -||- játékossal szemben
  • /od - Objektum törlése
  • /osave (name) - Objektum mentése
  • /oload (name) - Objektum betöltése
  • /oclear - Összes objektum törlése
  • /os (objID) - Objektum kiválasztása
  • /ox (amount), /oz (amount), /oy (amount) - Objektum mozgatása
  • /orx (amount), /ory (amount), /orz (amount) - Objektum rotálása
  • /ot - Billentyűparancsok engedélyezés/tiltása
  • /ota (amount) - Bill.parancs távolság
  • /ocm (objID1) (objID2) (amount) - create multiple objects
  • /oloop - toggle loop generator
  • /osel - toggle obiect list
  • /osearch (name) - Objektum keresése
  • /oedit - Objektum szerkesztése
  • /opassword (password) - Jelszó szerkesztése
  • /oadduser (playerid) - Felhasználó hozzáadás
  • /oremoveuser (playerid) - Felhasználó törlés
  • /omc - toggle varázs szőnyeg ( Csak Faggióval lábon)


Az objekt szerkesztő használatához kell az EasyINI is!

Letöltés: oEditor v2.0
Készítő: Fafu
Forrás: IV-Multiplayer Hivatalos fórum

Video #1:
http://www.youtube.com/watch?v=zVzUOTZfhAo
Video #2:
http://www.youtube.com/watch?v=KGm6fuyTvLc
Video #3:
http://www.youtube.com/watch?v=ACGe1hkZd_c

14
Általános hírek / Sablon:Regisztrációs hiba
« Utolsó üzenet: írta Azzeroth Dátum január 18, 2014, 05:19:18 pm »
Üdv. fórumozók!

Jelenleg rákényszerültünk az alapértelmezett téma használatára, mivel a dsv4-es témánkban nem működik az ellenőrző kód.
Ha már regisztrálva vagy, akkor bátran változtatsz magadnak témát a Profil -> Profil módosítás -> Kinézet és elrendezés menüpont alatt!
Remélem minél hamarabb meg tudjuk oldani a problémát.

Kellemes fórumozást!
15
Leírások / Objektek listája
« Utolsó üzenet: írta Azzeroth Dátum január 05, 2014, 06:10:54 pm »
Üdv. fórumozók!

Az objektumokról annyit, hogy nagy részük sajnos szellem objektum, át lehet rajtuk sétálni :(

Objektumokat ezen az oldalon kereshettek.

Objektum létrehozása:

Pawno Code: [Kijelölés]
createObject(int modelod, float x, floa y, float z, float rx, float ry, float rz);
modelid-nek teljesen mindegy hogy a decimális vagy hexadecimális értéket használjátok.

Sok sikert!
16
Külföldi szerverek / IVMP DeathMatch (RUS/ENG) 0.1 T3
« Utolsó üzenet: írta Azzeroth Dátum január 05, 2014, 03:04:07 pm »
Üdv fórumozók!

Megosztanám veletek a kedvenc DM szerveremet :)

A szerver 0.1 T3 klienssel üzemel!

Parancsok:
/v <ID> - Jármű lehívása
/register /login - regisztráció és bejelentkezés
/weapon <ID> - Fegyver vásárlása(csak a kijelölt CP-okban!)
/weaponlist - Fegyverlista árakkal

Más szinte nincs is, én ennyi paranccsal órákon át el tudok játszani 10-15 játékossal :)

Sok sikert és jó játékot!
17
Általános hírek / IVMP 0.1 T3
« Utolsó üzenet: írta Azzeroth Dátum január 05, 2014, 02:58:16 pm »
Üdv. fórumozók!

Vissza gondolva arra, hogy személy szerint mennyire elkeserített engem, hogy leállították az IV-MP
fejlesztését.
Végül kiadtak egy hivatalos 0.1 T3 verziót.
Nem is érdekelt annyira addig, amíg le nem töltöttem, és rá nem nyomtam a "Server Browser" gombra.

Meglepődtem, hogy nem kapom a szokásos hiba üzenetet, hogy "Invalid master list" vagy valami hasonló..
És csak néztem, hogy 6 online szerver 1 teli (32 játékos) pár üres és 10-15-ös létszámú szerverek :o

Szerintem érdemes felnézni szerverekre, ha módunkban áll.

Sok sikert, kellemes játékot kívánok mindenkinek. :)
18
Pluginok, Programok és Kiegészítők / mabako - MySQL R1
« Utolsó üzenet: írta Azzeroth Dátum december 27, 2013, 01:49:48 pm »
Üdv. fórumozók!

Elég sok munkával, de megszereztem nektek mabako MySQL plugin-ját.
Üzeneteket írtam neki és másoknak is, hogy nincs e meg valakinek?
Körbekérdeztem fórumokat is, de sajnos nem kaptam választ, fájlt.!

mabako-nak írtam is üzenetet, hogy kaphatnék e linket a MySQL plugin-hoz? Mivel
nem találom sehol sem.

erre ő ezt válaszolta:



Idézet
"No.

IVMP DEAD"

De nem adtam fel, hátha megtalálom és sikerrel is jártam :)

Most pedig egy kis ízelítő a plugin, azaz modulunkból.


Amiket tudomásommal tartalmaz:

Pawno Code: [Kijelölés]
mysql_connect(HOST, USER, PASSWORD, DATABASE); //Pl.: mysql_connect("localhost", "root", "1234", "ivmp");
mysql_query(HANDLER, query); //Ezzel query-t futtatunk le
mysql_fetch_assoc(result); //ezzel tárolhatunk
mysql_close( ); //gondolom egyértelmű, zárhatjuk a kapcsolatot,adatbázist
mysql_free_result(result); //találatok ürítése

És akkor már írtam nektek egy példát is:

Pawno Code: [Kijelölés]
local handler;
function onScriptInit( )
{
    handler = mysql_connect("127.0.0.1", "root", "1234", "ivmp"); //csatlakozunk az adatbázishoz.

return 1;
}
addEvent("scriptInit", onScriptInit);

function onScriptExit( )
{
mysql_close( );  //lecsatlakozunk az adatbázisról, zárjuk a kapcsolatot

return 1;
}
addEvent("scriptExit", onScriptExit);

function onPlayerConnect(playerid)
{
local result = mysql_query(handler, "SELECT * FROM users WHERE user='Azzeroth'");   //egy query-t futtatunk le, miszerint:
if(result)  //ha van találat                                                    //Válassza ki azt a sort, az users táblából
{                                                                                   //ahol az user meg egyezik az Azzeroth karakterlánccal
    //van találat, azaz létezik ilyen sor
    local row = mysql_fetch_assoc(result);  //a row-ban fogjuk tárolni a sor értékeit
    //nem kell tagolnunk, helyette:
    sendPlayerMessage(playerid, row["user"] + ", a te pénzed: " + row["money"] + ", X:" + row["x"] + ", Y:" + row["y"] + ", Z:" + row["z"], 0xFFFFFFFF);
    //a row[""] -on belül a két aposztrof közi a mysql-ben lévő táblán belüli oszlop nevét adjuk meg
}
else
{
    //nincs találat, azaz nem létezik ilyen sor
    //regisztrációnál példéul itt íratjuk ki, hogy:
                        //Nem vagy regisztrálva regisztrációhoz írd be a... stb stb, a találatnál(egyel feljebb) pedig, hogy jelentkezz be...
}
return 1;
}
addEvent("playerConnect", onPlayerConnect);

function onPlayerDisconnect(playerid, reason)
{
mysql_query(handler, "UPDATE users SET money=" + getPlayerMoney(playerid) + ", skin=" + getPlayerModel(playerid) + ""); //sor(ok) frissítése
mysql_query(handler, "INSERT INTO users (user, money, skin) VALUE(" + getPlayerName(playerid) + ", " + getPlayerMoney(playerid) + ", " + getPlayerModel(playerid) + ")");
        //Ezzel új sort illesztünk be az user oszlopba:'Karakter neve', money oszlopva: 'pénze', skin oszlopba:'modelid', ha a skin után írod, hogy pl: x,y,z
        //és a VALUE-be beleírod, hogy: pos[0], pos[1], pos[2] (miután lekérted a koordinátákat persze), akkor az x,y,z oszlopba is beírja ezeket
        //itt a beszúrás nem az első sortól halad sorjában, hanem amelyikeknek a nevét megadtad, szóval ha most az első sor az id(INTEGER) és számlálón van, akkor
        //abba nem fogja beleírni, hogy pl: 'Azzeroth', hanem az szépen számlálja magát és az user táblában lesz az Azzeroth szó.
return 1;
}
addEvent("playerDisconnect", onPlayerDisconnect);

remélem tudtam segíteni, ha elakadtál, nem értesz valami bátran írj hozzászólást!

jajj jajj jajj :o

Közben kaptam még egy leírást eDz0r-tól:

Pawno Code: [Kijelölés]
const MYSQL_HOSTNAME = "127.0.0.1";
const MYSQL_USERNAME = "root";
const MYSQL_PASSWORD = "";
const MYSQL_DATABASE = "ivmp";

local mysqlConnection = mysql(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_DATABASE);

function onScriptInit( )
{
mysqlConnection.query("CREATE TABLE IF NOT EXISTS accounts (id INT NOT NULL AUTO_INCREMENT, name CHAR(24), password CHAR(128), money INT, skin SMALLINT, adminlevel SMALLINT, viplevel SMALLINT, kills SMALLINT, deaths SMALLINT, PRIMARY KEY(id))");
}
addEvent("scriptInit", onScriptInit);

function isPlayerRegistered(playerid)
{
local playerName = getPlayerName(playerid);
local result = mysqlConnection.query_assoc_single("SELECT * FROM `accounts` WHERE name =  '" + playerName + "'");

if(result)
{
return true;
}
else
{
return false;
}
return null;
}

function savePlayerData(playerid)
{
local playerName = getPlayerName(playerid);

if(isPlayerLogged[playerid] == true)
{
mysqlConnection.query("UPDATE `accounts` SET `money` = '" + getPlayerMoney(playerid) + "', `skin` = '" + getPlayerModel(playerid) + "', `adminlevel` = '" + pAdminLevel[playerid] + "', `viplevel` = '" + pVIPLevel[playerid] + "', `kills` = '" + pKills[playerid] + "', `deaths` = '" + pDeaths[playerid] + "' WHERE name = '" + playerName + "'");
return 1;
}
else
{
return 0;
}
}

function loadPlayerData(playerid)
{
local playerName = getPlayerName(playerid);
local result = mysqlConnection.query_assoc_single("SELECT * FROM `accounts` WHERE name = '" + playerName + "'");

if(isPlayerRegistered(playerid))
{
setPlayerMoney(playerid, result.money);
setPlayerModel(playerid, result.skin);
pAdminLevel[playerid] = result.adminlevel;
pKills[playerid] = result.kills;
pDeaths[playerid] = result.deaths;
return 1;
}
else
{
return 0;
}
}

Forrás: mabako

Letöltés: IVMP MySQL plugin
Letöltés: msvcp110.dll
Letöltés: libmysql.dll ha esetleg valakinek kellene :D

Verzió: R1
A telepítésről pedig annyit, hogy:

A MySQL plugint a "modules" mappába helyezd el, a másik kettőt pedig az IVMP-Szerver gyökér könyvtárába(Ahol megtalálható például a setting.xml fájl).
19
Általános hírek / Szomorú hír
« Utolsó üzenet: írta Azzeroth Dátum november 02, 2013, 12:57:47 pm »
Üdv. fórumozók!

Fájó szívvel írom le, de a GTA IV:Multiplayer fejlesztését leállították.  :'(
20
Beszélgetés / IV Patch 1.0.7.0
« Utolsó üzenet: írta Azzeroth Dátum szeptember 14, 2013, 11:18:23 pm »
Üdv. IV:MP fórumozók

Az IV:MP kliens 1.0.7.0-s patch-el GTA IV-vel indul.

A link torrent link.
Patch letöltéséhez kattints ide

Letöltés után a mappában két telepítő fájlt találsz.



UpdateTitle.exe alkalmazással megkezdhető a frissítés telepítése.
Miután a telepítő elvégezte a dolgát a crack fájlt másold be a GTA IV főkönyvtárába (GYK: ahol a LaunchGTAIV.exe található).
Ezután már játszhatsz is, ha az xlive.dll-t nem találja akkor klikk ide.

Ha elakadtál írj bátran hozzászólást!
Oldalak: 1 [2] 3 4 5

GTA, including images, characters and logos are intellectual property from Rockstar Games. Rockstar Games is a registered trademarks of Take-Two Interactive Software, Inc.