Szerző Téma: metál detector  (Megtekintve 2639 alkalommal)

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
metál detector
« Dátum: 2016. Május 17. - 00:30:19 »
+6 Show voters
Hali, ma amikor haza jöttem letöltöttem a South Central Roleplay játékmódot. Sokan mondták nem valami híres mód de szerintem egészen jó és játszható mód tele apró hibákkal ami javítható. Megtetszett pár dolog és mondom kiveszem belőle mivel tervezek én is több dolgokat megírni a következő projektebe így nem akarom azért is az időmet veszíteni ha már megírták, inkább kiveszem. Azért publikálom, hogy ha másnak is kellene akkor ne kínlódjon keresgélni, ha már én megtettem helyette. A lényeg ebben a szkriptben, hogy ha átmész egy detectoron akkor lekérdezi, hogy van nálad fegyver vagy nincs, így blokkol / tilt a rendszer téged bemenni abba az épületbe vagy boltba. A szkript MySQL r39 -el lett írva, eredeti készítő gondolom iConvict, én csak kivettem és egybe írtam. :)
Ha van a játékosnál fegyver akkor ezzel kérheted le: IsPlayerArmed(playerid)
Összesen 171 sorból áll, de ezt lehet rövidíteni.
 
// @ sampfórum.hu
#include a_samp
#include a_mysql
#include sscanf2
#include streamer
#include zcmd
#define SQL_HOST            \"\"
#define SQL_USER             \"\"
#define SQL_PASS             \"\"
#define SQL_DB                 \"\"
#define MAX_METAL_DETECTORS (20)
enum detectorData {
detectorID,
detectorExists,
Float:detectorPos[4],
detectorInterior,
detectorWorld,
detectorObject[2]
};
new g_iHandle;
new MetalDetectors[MAX_METAL_DETECTORS][detectorData];
public OnGameModeInit() {
    g_iHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
if (mysql_errno(g_iHandle) != 0) {
    printf(\"[sql] Connection to \\\"%s\\\" failed! Please check the connection settings...\\a\", SQL_HOST);
}
else {
printf(\"[sql] Connection to \\\"%s\\\" passed!\", SQL_HOST);
}
mysql_tquery(g_iHandle, \"SELECT * FROM `detectors`\", \"Detector_Load\", \"\");
return 1;
}
CMD:createdetector(playerid, params[])
{
static
    query[255];
for (new i = 0; i < MAX_METAL_DETECTORS; i ++) if (!MetalDetectors[detectorExists])
{
    MetalDetectors[detectorExists] = 1;
    MetalDetectors[detectorInterior] = GetPlayerInterior(playerid);
    MetalDetectors[detectorWorld] = GetPlayerVirtualWorld(playerid);
    GetPlayerPos(playerid, MetalDetectors[detectorPos][0], MetalDetectors[detectorPos][1], MetalDetectors[detectorPos][2]);
    GetPlayerFacingAngle(playerid, MetalDetectors[detectorPos][3]);
format(query, sizeof(query), \"INSERT INTO `detectors` (`detectorX`, `detectorY`, `detectorZ`, `detectorAngle`, `detectorInterior`, `detectorWorld`) VALUES(\'%.4f\', \'%.4f\', \'%.4f\', \'%.4f\', \'%d\', \'%d\')\", MetalDetectors[detectorPos][0], MetalDetectors[detectorPos][1], MetalDetectors[detectorPos][2], MetalDetectors[detectorPos][3], MetalDetectors[detectorInterior], MetalDetectors[detectorWorld]);
mysql_tquery(g_iHandle, query, \"OnDetectorCreated\", \"d\", i);
    Detector_Refresh(i);
    SendClientMessage(playerid, -1, \"You have created metal detector.\");
    return 1;
}
SendClientMessage(playerid, -1, \"The server has reached a limit for metal detectors.\");
return 1;
}
CMD:destroydetector(playerid, params[])
{
static
    id = 0;
if (sscanf(params, \"d\", id))
    return SendClientMessage(playerid, -1, \"/destroydetector [detector id]\");
if ((id < 0 || id >= MAX_METAL_DETECTORS) || !MetalDetectors[id][detectorExists])
    return SendClientMessage(playerid, -1, \"You have specified an invalid detector ID.\");
Detector_Delete(id);
SendClientMessage(playerid, -1, \"You have successfully destroyed detector.\");
return 1;
}
forward OnDetectorCreated(id);
public OnDetectorCreated(id)
{
MetalDetectors[id][detectorID] = cache_insert_id(g_iHandle);
return 1;
}
forward Detector_Load();
public Detector_Load()
{
static
    rows,
    fields;
cache_get_data(rows, fields, g_iHandle);
for (new i = 0; i < rows; i ++) if (i < MAX_METAL_DETECTORS)
{
       MetalDetectors[detectorExists] = 1;
    MetalDetectors[detectorID] = cache_get_field_content_int(i, \"detectorID\", g_iHandle);
    MetalDetectors[detectorPos][0] = cache_get_field_content_float(i, \"detectorX\", g_iHandle);
    MetalDetectors[detectorPos][1] = cache_get_field_content_float(i, \"detectorY\", g_iHandle);
    MetalDetectors[detectorPos][2] = cache_get_field_content_float(i, \"detectorZ\", g_iHandle);
    MetalDetectors[detectorPos][3] = cache_get_field_content_float(i, \"detectorAngle\", g_iHandle);
    MetalDetectors[detectorInterior] = cache_get_field_content_int(i, \"detectorInterior\", g_iHandle);
    MetalDetectors[detectorWorld] = cache_get_field_content_int(i, \"detectorWorld\", g_iHandle);
Detector_Refresh(i);
}
return 1;
}
stock Detector_Delete(id)
{
    if (id != -1 && MetalDetectors[id][detectorExists])
{
    new
        query[64];
    DestroyDynamicObject(MetalDetectors[id][detectorObject][0]);
    DestroyDynamicObject(MetalDetectors[id][detectorObject][1]);
format(query, sizeof(query), \"DELETE FROM `detectors` WHERE `detectorID` = \'%d\'\", MetalDetectors[id][detectorID]);
mysql_tquery(g_iHandle, query);
MetalDetectors[id][detectorID] = 0;
MetalDetectors[id][detectorExists] = 0;
}
return 1;
}
stock Detector_Refresh(id)
{
if (id != -1 && MetalDetectors[id][detectorExists])
{
    MetalDetectors[id][detectorObject][0] = CreateDynamicObject(2412, MetalDetectors[id][detectorPos][0], MetalDetectors[id][detectorPos][1], MetalDetectors[id][detectorPos][2] - 0.9, 0.0, 0.0, MetalDetectors[id][detectorPos][3], MetalDetectors[id][detectorWorld], MetalDetectors[id][detectorInterior]);
MetalDetectors[id][detectorObject][1] = CreateDynamicObject(2412, MetalDetectors[id][detectorPos][0] + (1.0 * floatsin(-(MetalDetectors[id][detectorPos][3] - 90), degrees)), MetalDetectors[id][detectorPos][1] + (1.0 * floatcos(-(MetalDetectors[id][detectorPos][3] - 90), degrees)), MetalDetectors[id][detectorPos][2] - 0.9, 0.0, 0.0, MetalDetectors[id][detectorPos][3], MetalDetectors[id][detectorWorld], MetalDetectors[id][detectorInterior]);
}
return 1;
}
stock Detector_Nearest(playerid)
{
    for (new i = 0; i < MAX_METAL_DETECTORS; i ++) if (MetalDetectors[detectorExists])
{
    if (IsPlayerInRangeOfPoint(playerid, 1.0, MetalDetectors[detectorPos][0], MetalDetectors[detectorPos][1], MetalDetectors[detectorPos][2]) && GetPlayerInterior(playerid) == MetalDetectors[detectorInterior] && GetPlayerVirtualWorld(playerid) == MetalDetectors[detectorWorld])
        return i;
}
return -1;
}
stock IsPlayerArmed(playerid)
{
new
    weapon,
    ammo;
for (new i = 0; i < 13; i ++) {
    GetPlayerWeaponData(playerid, i, weapon, ammo);
if (ammo > 0) {
   switch (weapon) {
       case 1, 2, 4, 6, 8, 9, 15, 22..38: return 1;
   }
}
}
return 0;
}

 
 
CREATE TABLE IF NOT EXISTS `detectors` (
  `detectorID` int(12) NOT NULL AUTO_INCREMENT,
  `detectorX` float DEFAULT \'0\',
  `detectorY` float DEFAULT \'0\',
  `detectorZ` float DEFAULT \'0\',
  `detectorAngle` float DEFAULT \'0\',
  `detectorInterior` int(12) DEFAULT \'0\',
  `detectorWorld` int(12) DEFAULT \'0\',
  PRIMARY KEY (`detectorID`)
  ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

metál detector
« Válasz #1 Dátum: 2016. Május 17. - 13:25:20 »
+1 Show voters
fém

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
metál detector
« Válasz #2 Dátum: 2016. Május 17. - 13:27:43 »
+1 Show voters
Idézetet írta: blackdog476 date=1463484320\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60444\" data-ipsquote-contentclass=\"forums_Topic
fém
 
Ő legalább még megnevezésnek is egyedit talál ki. Nem lett rossz!

Nem elérhető EnterR

  • Globális moderátor
  • 4223
  • dawg
    • Profil megtekintése
metál detector
« Válasz #3 Dátum: 2016. Május 17. - 14:05:50 »
+1 Show voters
plasztik

metál detector
« Válasz #4 Dátum: 2016. Május 17. - 14:10:39 »
+2 Show voters
Ja nekem is tetszik
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ő Ben

  • 1754
  • Ben apó
    • Profil megtekintése
metál detector
« Válasz #5 Dátum: 2016. Május 17. - 14:13:01 »
+6 Show voters
a death metált is megtalálja?

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
metál detector
« Válasz #6 Dátum: 2016. Május 17. - 17:54:55 »
0 Show voters
Idézetet írta: blackdog476 date=1463484320\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60444\" data-ipsquote-contentclass=\"forums_Topic
fém
 
direkt írtam úgy :D

ᗩωєѕσмє

  • Vendég
metál detector
« Válasz #7 Dátum: 2016. Május 17. - 18:01:37 »
+2 Show voters
na ezt lepróbálom
\"eYRux2X.jpg\"
K. Fasza amúgy :D
« Utoljára szerkesztve: 2016. Május 17. - 18:17:24 írta zιтяσиє »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
metál detector
« Válasz #8 Dátum: 2016. Május 17. - 18:21:23 »
+1 Show voters
Véletlen nem SeeMTA-tól jött az ötlet?

ᗩωєѕσмє

  • Vendég
metál detector
« Válasz #9 Dátum: 2016. Május 17. - 18:27:11 »
+6 Show voters
Idézetet írta: Flαsн date=1463502083\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60444\" data-ipsquote-contentclass=\"forums_Topic
Véletlen nem SeeMTA-tól jött az ötlet?
 
\"wbQUFxD.png\"
írj neki te is, hátha válaszol
nagyon nem akar nekem választ adni..
\"t82R6AL.png\"
« Utoljára szerkesztve: 2016. Május 17. - 18:48:14 írta zιтяσиє »

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
metál detector
« Válasz #10 Dátum: 2016. Május 17. - 19:21:48 »
0 Show voters
SeeMTA -n van hasonló ötlet, ezért szedtem ki a módjából mert SA-MP -n még nem láttam hasonlót, megtetszett nekem is ez a cuccos. :D

metál detector
« Válasz #11 Dátum: 2016. Május 23. - 18:22:56 »
0 Show voters
Hmm..  :o Lefordíthatnád de amugy ment a +!

metál detector
« Válasz #12 Dátum: 2016. Május 23. - 18:27:04 »
0 Show voters
joez

metál detector
« Válasz #13 Dátum: 2016. Május 28. - 19:29:57 »
0 Show voters
Szép!!

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
metál detector
« Válasz #14 Dátum: 2016. Május 28. - 23:25:25 »
+1 Show voters
Idézetet írta: blint34 date=1464020576\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"60444\" data-ipsquote-contentclass=\"forums_Topic
Hmm..  :o Lefordíthatnád de amugy ment a +!
 
Három sor van benne ami angol, ezt szerintem mindenki megtudja már csinálni, és nem írok magyar szkripteket már egyáltalán, szerveremet is angolul írom. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal