Szerző Téma: Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]  (Megtekintve 1698 alkalommal)

Nem elérhető whadez

  • 719
  • DEFEATER
    • Profil megtekintése
Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]
« Dátum: 2016. május 15. - 18:01:05 »
+8 Show voters

/*
A scriptet készítette: Pelle \'whadez\' Richard.
www.facebook.com/whadezye
g_SQL = SQL Handle ID
- Az az ID ami alapján rácsatlakozik az adatbázisra a mysql.
         Példa: (OnGameModeInit alatt) g_SQL = mysql_connect(\"IP\", \"Felhasználó\",\"Adatbázis\", \"Felhasználó jelszó\");
*/

 
Képek:
[hs width=420 height=200]http://kepfeltoltes.hu/160515/sa-mp-081_www.kepfeltoltes.hu_.png[/hs][hs width=420 height=200]http://kepfeltoltes.hu/160515/sa-mp-082_www.kepfeltoltes.hu_.png[/hs]
Az első rendszer ami közzéteszek a nyilvánosság felé. A rendszer pár hónapja készült el, a fegyvert dobhatjuk el a földre, és vehetjük fel a földről.
Az include működéséhez szükséges: sscanf, mysql, streamer.
A rendszer tesztelt, működik, akinek hibája van vele, az vessen magára, mert ő rontott el valamit.
Azért mert a rendszer közzé lett téve, nem nyújtok hozzá ingyenes supportot.
A script felhasználásakor kérlek ne töröld ki a készítőt (az én nevemet), nem zavar az ott senkit sem.
Megértéseteket köszönöm.
Használat:
 

/* A mysql, sscanf, streamer után. */
#include <dropped_weapons>
 
/* Parancshasználat */
#if defined WDROP_BETOLTVE
CMD:felveszfegyver(p) {
if(IsPlayerInRangeOfDroppedWeapon(p) == -1) return SendClientMessage(p, -1, \"Nincs fegyver a közeledben!\");
return true;
}
CMD:eldobfegyver(p) {
if(!GetPlayerWeapon(p)) return SendClientMessage(p, -1, \"A kezedben nincs fegyver, amit el tudnál dobni!\");
createDroppedWeapon(p, GetPlayerWeapon(p), GetPlayerAmmo(p));
return true;
}
#endif

 
A fegyverek betöltése szerver indításkor:
 

public OnGameModeInit() {
        #if defined WDROP_BETOLTVE
mysql_tquery(g_SQL, \"SELECT * FROM `eldobott_fegyverek`\", \"LoadDroppedWeapons\", \"\");
#endif
        return 1;
}

 
MYSQL Adatbázis:
 

CREATE TABLE IF NOT EXISTS `eldobott_fegyverek` (
  `ID` int(11) NOT NULL,
  `droppedWeapon` int(11) NOT NULL DEFAULT \'0\',
  `droppedAmmo` int(11) NOT NULL DEFAULT \'0\',
  `dVW` int(11) NOT NULL DEFAULT \'0\',
  `dInt` int(11) NOT NULL DEFAULT \'0\',
  `dPos` varchar(32) NOT NULL DEFAULT \'0.000,0.000,0.000\'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `eldobott_fegyverek`
  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;

 
Az include maga:
 

/*
A scriptet készítette: Pelle \'whadez\' Richard.
www.facebook.com/whadezye
Fejlesztéseket vállalok, valós, kézben fogható pénzért.
-- SAMPFÓRUM --
 
g_SQL = SQL Handle ID
- Az az ID ami alapján rácsatlakozik az adatbázisra a mysql.
*/
#define WDROP_BETOLTVE
#if !defined FegyverObjectek
new FegyverObjectek[47] =
{
   1575,  331, 333, 334, 335, 336, 337, 338, 339, 341, 321, 322, 323, 324, 325, 326, 342, 343, 344, -1,  -1 , -1 ,
   346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
   368, 369, 1575
};
#endif
#if !defined szoveg
new szoveg[128];
#endif
#if !defined MAX_DROPPED_WEAPONS
#define MAX_DROPPED_WEAPONS 5000
#endif
#if !defined Pos
new Float:Pos[3];
#endif
#if !defined uzenet
new uzenet[1024];
#endif
#if !defined g_SQL
new g_SQL = -1;
#endif
new DropWeaponObject[MAX_DROPPED_WEAPONS] = {INVALID_OBJECT_ID, ...};
stock getFreeDroppedWeaponId() {
new i = 0;
for(;++i < MAX_DROPPED_WEAPONS;) {
if(DropWeaponObject == INVALID_OBJECT_ID)
return i;
}
return -1;
}
forward createDroppedWeapon(p, weaponid, ammo);
public createDroppedWeapon(p, weaponid, ammo)
{
new droppedId = getFreeDroppedWeaponId();
if(droppedId == -1) return printf(\"A \'MAX_DROPPED_WEAPONS\' érték a végéhez ért!\");
GetPlayerPos(p, Pos[0], Pos[1], Pos[2]);
Pos[2] -= 1.02;
DropWeaponObject[droppedId] = CreateDynamicObject(FegyverObjectek[weaponid], Pos[0], Pos[1], Pos[2], 90.0, 0.0,0.0,
GetPlayerVirtualWorld(p), GetPlayerInterior(p));
format(szoveg,sizeof(szoveg),\"%f,%f,%f\", Pos[0], Pos[1], Pos[2]);
mysql_format(g_SQL, uzenet, sizeof(uzenet),\"INSERT INTO `eldobott_fegyverek` (ID,droppedWeapon,droppedAmmo,dVW,dInt,dPos) VALUES(\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%s\')\",droppedId, weaponid, ammo, GetPlayerVirtualWorld(p), GetPlayerInterior(p), szoveg);
mysql_tquery(g_SQL, uzenet);
return true;
}
forward LoadDroppedWeapons();
public LoadDroppedWeapons()
{
new nums,fields;
cache_get_data(nums, fields);
if(nums)
{
new i = -1, getWeaponPos[32];
for(;++i < nums;) {
   cache_get_field_content(i, \"dPos\", getWeaponPos, g_SQL, 32);
   sscanf(getWeaponPos, \"p<,>a<f>[3]\",Pos);
   DropWeaponObject[cache_get_field_content_int(i, \"ID\")] = CreateDynamicObject(FegyverObjectek[ cache_get_field_content_int(i, \"droppedWeapon\") ], Pos[0], Pos[1], Pos[2], 90.0, 0.0,0.0,
   cache_get_field_content_int(i, \"dVW\"), cache_get_field_content_int(i, \"dInt\"));
}
}
if(nums) printf(\"%d darab eldobott fegyver betöltve.\",nums);
else printf(\"Nem lett betöltve eldobott fegyver.\");
return true;
}
stock IsPlayerInRangeOfDroppedWeapon(p) {
GetPlayerPos(p, Pos[0], Pos[1], Pos[2]);
mysql_query(g_SQL, \"SELECT dPos,ID FROM `eldobott_fegyverek`\");
if(cache_num_rows())
{
new i = -1, tempStr[32];
for(;++i < cache_num_rows();)
{
   cache_get_field_content(i, \"dPos\", tempStr, g_SQL, 32);
   sscanf(tempStr, \"p<,>a<f>[3]\", Pos);
   if(IsPlayerInRangeOfPoint(p, 2.0, Pos[0], Pos[1], Pos[2])) {
      pickupWeaponFromFloor(p, cache_get_field_content_int(i, \"ID\"));
      return i;
   }
}
}
return -1;
}
stock pickupWeaponFromFloor(p, sqlid) {
format(szoveg,sizeof(szoveg),\"SELECT * FROM `eldobott_fegyverek` WHERE `ID` = \'%i\'\", sqlid);
mysql_query(g_SQL, szoveg);
GivePlayerWeapon(p, cache_get_field_content_int(0, \"droppedWeapon\"), cache_get_field_content_int(0, \"droppedAmmo\"));
if(IsValidDynamicObject(DropWeaponObject[cache_get_field_content_int(0, \"ID\")]))
DestroyDynamicObject(DropWeaponObject[cache_get_field_content_int(0, \"ID\")]);
format(szoveg,sizeof(szoveg),\"DELETE FROM `eldobott_fegyverek` WHERE `ID` = \'%i\'\", sqlid);
mysql_query(g_SQL, szoveg);
return true;
}
« Utoljára szerkesztve: 2016. május 15. - 18:42:24 írta whadez »

Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]
« Válasz #1 Dátum: 2016. május 15. - 18:39:19 »
0 Show voters
Szép munka!
www.twitch.tv/almightymartin

Az év STAFF tagja - 2015
Az év RP szervere - 2015 - [rc-rp.hu]

Red County Role Play [rc-rp.hu] - Tulajdonos
Project San Andreas [psa.hu] - Főadminisztrátor
See MTA LV [see-game.com] - Admin 4

Nem elérhető whadez

  • 719
  • DEFEATER
    • Profil megtekintése
Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]
« Válasz #2 Dátum: 2016. május 15. - 19:06:47 »
+1 Show voters
Idézetet írta: almightymartin date=1463330359\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60417\" data-ipsquote-contentclass=\"forums_Topic
Szép munka!
 
Köszönöm szépen.

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]
« Válasz #3 Dátum: 2016. május 15. - 20:24:33 »
0 Show voters
ügyes vagy, igényes munka. :)

Nem elérhető anGeL

  • Adminisztrátor
  • 2158
    • Profil megtekintése
Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]
« Válasz #4 Dátum: 2016. május 16. - 00:35:06 »
0 Show voters
Még sem lett volna olyan rossz az az LSRP, bár én nem látok bele. Szép munka whadez!  :)

Nem elérhető whadez

  • 719
  • DEFEATER
    • Profil megtekintése
Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]
« Válasz #5 Dátum: 2016. május 16. - 00:46:16 »
+1 Show voters
Köszönöm szépen srácok.  :thumbsup:

Fegyver [Eldobás / Felvétel] [MYSQL R39, SSCANF, STREAMER]
« Válasz #6 Dátum: 2016. május 29. - 17:44:13 »
0 Show voters
Utólag nézem elégé tetszetős!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal