Szerző Téma: Rupert\'s entrance system (bejárat rendszer)  (Megtekintve 3095 alkalommal)

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Dátum: 2012. December 15. - 01:22:05 »
+14 Show voters

Rupert\'s entrance system (bejárat rendszer)
v1.0
 

Be szeretném mutatni másik rendszerem, a \"Rupert\'s entrance system\"-et. A lényege, hogy adminként ti raktok le különbözõ bejáratokat interiorokhoz. Ilyen pl. a pizzéria, vagy a fegyverbolt.
Szükséges függvénykönyvtárak a futtatáshoz:
 

  • a_samp


  • dini


  • dutils


  • sscanf2


  • zcmd


Szükséges plugin: sscanf
Szükséges mappa a \"scriptfiles\" mappán belül: \'Entrances\'
A parancsok:
 

  • /makent - Létrehoz egy entrance-t. Két paraméter KELL: [iD] és [stílus]. Az ID nagyon fontos! Nézd meg az \'Entrances\" mappában, hogy létezik-e az ID, avagy sem. Több féle stílus van. Mindegyiknek más az interiorja. Megtekintésükhöz: /style.


  • /entorol - A közeledben lévõ bejáratot törli.


 
Maximum 500 bejárat lehet, de ezt át lehet állítani a scripten belül.
Letöltés:http://www.solidfiles.com/d/ae18c7b0e7/
Képek:
\"width=500http://kepfeltoltes.hu/121215/306945414sa-mp-012_www.kepfeltoltes.hu_.png[/img]
\"width=500http://kepfeltoltes.hu/121215/1049382140sa-mp-013_www.kepfeltoltes.hu_.png[/img]
\"width=500http://kepfeltoltes.hu/121215/949802152sa-mp-014_www.kepfeltoltes.hu_.png[/img]
Kód:
 

/*
               KÉSZÍTETTE RUPERT! KÉRLEK, NE TÖRÖLD KI A NEVEMET MEGEMLÍTÕ ÜZENETET!
*/
#include <a_samp>
#include <dini>
#include <dutils>
#include <dudb>
#include <sscanf2>
#include <zcmd>
// SZÍNEK
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xff0000AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_GRREN 0x00ff2bAA
#define COLOR_LORANGE 0xebbf3bAA
#define SCM SendClientMessage
#define pressed(%0)\\
        (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define MAX_ENTRANCES 500
#pragma unused ret_memcpy
// ENTRANCE ENUM
enum Entrance
{
    ID,
style,
Float:X,
Float:Y,
Float:Z,
Float:kX,
Float:kY,
Float:kZ,
interior
}
new Text3D:entext[MAX_ENTRANCES];
new Text3D:entext2[MAX_ENTRANCES];
new stri[256];
new eInfo[MAX_ENTRANCES][Entrance];
new entek;
new entben[MAX_PLAYERS];
new mentben[MAX_PLAYERS];
new Float:kx[MAX_PLAYERS];
new Float:ky[MAX_PLAYERS];
new Float:kz[MAX_PLAYERS];
CMD:styles(playerid, params[])
{
SCM(playerid, COLOR_GREY, \"1 - bolt\");
SCM(playerid, COLOR_GREY, \"2 - kocsma\");
SCM(playerid, COLOR_GREY, \"3 - fegyóbolt\");
SCM(playerid, COLOR_GREY, \"4 - edzõterem\");
SCM(playerid, COLOR_GREY, \"5 - rendõrség\");
SCM(playerid, COLOR_GREY, \"6 - kórház\");
SCM(playerid, COLOR_GREY, \"7. benzinkút\");
SCM(playerid, COLOR_GREY, \"8.- gyorskajálda\");
SCM(playerid, COLOR_GREY, \"9. - bank\");
SCM(playerid, COLOR_GREY, \"10. szervíz telep\");
SCM(playerid, COLOR_GREY, \"11 - mûszaki bolt\");
SCM(playerid, COLOR_GREY, \"12 - ruhabolt\");
return 1;
}
CMD:entorol(playerid, params[])
{
new hazacska;
hazacska = MelyikEntrance(playerid);
if(!IsPlayerAdmin(playerid)) return SCM(playerid, COLOR_RED, \"Nem vagy admin.\");
if(hazacska == -1) return SCM(playerid, COLOR_GREY, \"Nincs entrance a közelben.\");
RemoveEntrance(hazacska);
SCM(playerid, COLOR_WHITE, \"Entrance törölve.\");
return 1;
}
CMD:makent(playerid, params[])
{
new Float:px, Float:py, Float:pz, ar, id;
GetPlayerPos(playerid, px, py, pz);
if(!IsPlayerAdmin(playerid)) return SCM(playerid, COLOR_RED, \"Nem vagy admin!\");
if(sscanf(params, \"dd\", id, ar)) return SCM(playerid, COLOR_GREY, \"Használat: /makent [iD!!!] [style] <- /styles\");
CreateEntrance(id, px, py, pz, ar);
SCM(playerid, COLOR_WHITE, \"Entrance létrehozva.\");
return 1;
}
CMD:bemegye(playerid, params[])
{
    new hazacska = MelyikEntrance(playerid);
    if(hazacska)
    {
   SetPlayerInterior(playerid, eInfo[hazacska][interior]);
   SetPlayerPos(playerid, eInfo[hazacska][kX], eInfo[hazacska][kY], eInfo[hazacska][kZ]);
   SetPlayerVirtualWorld(playerid, eInfo[hazacska][iD]);
   entben[playerid] = 1;
   kx[playerid] = eInfo[hazacska][X];
   ky[playerid] = eInfo[hazacska][Y];
   kz[playerid] = eInfo[hazacska][Z];
   mentben[playerid] = eInfo[hazacska][iD];
}
return 1;
}
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Rupert\'s entrance system loaded.\");
print(\"--------------------------------------\\n\");
    entek = 0;
    LoadEntrances();
DisableInteriorEnterExits();
printf(\"Összes entrance: %d!\", entek);
print(\"---------------------------------------------------\");
print(\"---------------------------------------------------\");
return 1;
}
public OnFilterScriptExit()
{
entek = 0;
SaveEntrances();
return 1;
}
public OnPlayerConnect(playerid)
{
entben[playerid] = 0;
mentben[playerid] = 0;
kx[playerid] = 0;
ky[playerid] = 0;
kz[playerid] = 0;
SCM(playerid, COLOR_GRREN, \"A szerveren megtalálható a Rupert által készített entrance rendszer!\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
entben[playerid] = 0;
mentben[playerid] = 0;
kx[playerid] = 0;
ky[playerid] = 0;
kz[playerid] = 0;
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(pressed(KEY_SECONDARY_ATTACK) && entben[playerid] == 1)
{
    if(IsPlayerInRangeOfPoint(playerid, 3.0, eInfo[mentben[playerid]][kX], eInfo[mentben[playerid]][kY], eInfo[mentben[playerid]][kZ]))
    {
   SetPlayerPos(playerid, kx[playerid], ky[playerid], kz[playerid]);
   SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
   entben[playerid] = 0;
}
}
new entecske = MelyikEntrance(playerid);
if(pressed(KEY_SECONDARY_ATTACK) && entecske)
{
    cmd_bemegye(playerid, \"\");
}
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
stock CreateEntrance(id, Float:x, Float:y, Float:z, stylee)
{
    new eFile[128];
format(eFile, 128, \"/Entrances/%d.ini\", id);
if(dini_Exists(eFile)) return printf(\"%d ID ház létezik!!\", id);
dini_Create(eFile);
dini_FloatSet(eFile, \"X\", x);
dini_FloatSet(eFile, \"Y\", y);
dini_FloatSet(eFile, \"Z\", z);
dini_IntSet(eFile, \"Style\", stylee);
eInfo[id][iD] = id;
eInfo[id][X] = dini_Float(eFile, \"X\");
eInfo[id][Y] = dini_Float(eFile, \"Y\");
eInfo[id][Z] = dini_Float(eFile, \"Z\");
eInfo[id][style] = dini_Int(eFile, \"Style\");
if(stylee == 1)
{
    eInfo[id][kX] = -25.884498;
    eInfo[id][kY] = -185.868988;
    eInfo[id][kZ] = 1003.546875;
    eInfo[id][interior] = 17;
       format(stri, 256, \"Üzlet\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 2)
{
    eInfo[id][kX] = 501.980987;
    eInfo[id][kY] = -70.052810;
    eInfo[id][kZ] = 998.757812;
    eInfo[id][interior] = 11;
       format(stri, 256, \"Bár\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 3)
{
    eInfo[id][kX] = 296.919982;
    eInfo[id][kY] = -108.071998;
    eInfo[id][kZ] = 1001.515625;
    eInfo[id][interior] = 6;
       format(stri, 256, \"Fegyverüzlet\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 4)
{
    eInfo[id][kX] = 772.111999;
    eInfo[id][kY] = -3.898649;
    eInfo[id][kZ] = 1000.728820;
    eInfo[id][interior] = 5;
       format(stri, 256, \"Edzõterem\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 5)
{
        eInfo[id][kX] = 246.783996;
    eInfo[id][kY] = 63.900199;
    eInfo[id][kZ] = 1003.640625;
    eInfo[id][interior] = 6;
       format(stri, 256, \"Rendõrség\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 7)
{
    eInfo[id][kX] = 663.836242;
    eInfo[id][kY] = -575.605407;
    eInfo[id][kZ] = 16.343263;
    eInfo[id][interior] = 0;
       format(stri, 256, \"Benzinkút\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 8)
{
    eInfo[id][kX] = 372.2733;
    eInfo[id][kY] = -133.5175;
    eInfo[id][kZ] = 1001.4922;
    eInfo[id][interior] = 5;
       format(stri, 256, \"Gyorskajálda\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 9)
{
    eInfo[id][kX] = 2305.2834;
    eInfo[id][kY] = -15.9918;
    eInfo[id][kZ] = 26.7422;
    eInfo[id][interior] = 0;
       format(stri, 256, \"Bank\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 10)
{
    eInfo[id][kX] = 2570.8916;
    eInfo[id][kY] = -1302.0453;
    eInfo[id][kZ] = 1044.1250;
    eInfo[id][interior] = 2;
       format(stri, 256, \"Autó mûhely\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 11)
{
    eInfo[id][kX] = -2240.468505;
    eInfo[id][kY] = 137.060440;
    eInfo[id][kZ] = 1035.414062;
    eInfo[id][interior] = 6;
       format(stri, 256, \"Mûszaki bolt\\nBelépéshez nyomj ENTER-t.\");
}
if(stylee == 12)
{
       eInfo[id][kX] = 207.737991;
    eInfo[id][kY] = -109.019996;
    eInfo[id][kZ] = 1005.132812;
    eInfo[id][interior] = 15;
       format(stri, 256, \"Ruhabolt\\nBelépéshez nyomj ENTER-t.\");
}
dini_IntSet(eFile, \"Interior\", eInfo[id][interior]);
dini_FloatSet(eFile, \"kX\", eInfo[id][kX]);
dini_FloatSet(eFile, \"kY\", eInfo[id][kY]);
dini_FloatSet(eFile, \"kZ\", eInfo[id][kZ]);
entext2[id] = Create3DTextLabel(\"Nyomj ENTER-t.\", -1, eInfo[id][kX], eInfo[id][kY], eInfo[id][kZ], 30, id, 0);
entext[id] = Create3DTextLabel(stri, -1, x, y, z, 30, 0, 0);
entek++;
return 1;
}
stock LoadEntrance(id)
{
    new eFile[128];
format(eFile, 128, \"/Entrances/%d.ini\", id);
if(!dini_Exists(eFile)) return 0;
eInfo[id][iD] = id;
eInfo[id][X] = dini_Float(eFile, \"X\");
eInfo[id][Y] = dini_Float(eFile, \"Y\");
eInfo[id][Z] = dini_Float(eFile, \"Z\");
eInfo[id][kX] = dini_Float(eFile, \"kX\");
eInfo[id][kY] = dini_Float(eFile, \"kY\");
eInfo[id][kZ] = dini_Float(eFile, \"kZ\");
eInfo[id][interior] = dini_Int(eFile, \"Interior\");
eInfo[id][style] = dini_Int(eFile, \"Style\");
if(eInfo[id][style] == 1) format(stri, 256, \"Üzlet\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 2) format(stri, 256, \"Kocsma\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 3) format(stri, 256, \"Fegyverüzlet\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 4) format(stri, 256, \"Edzõterem\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 5) format(stri, 256, \"Rendõrség\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 7) format(stri, 256, \"Benzinkút\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 8) format(stri, 256, \"Gyorskajálda\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 9) format(stri, 256, \"Bank\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 10) format(stri, 256, \"Autó mûhely\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 11) format(stri, 256, \"Mûszaki bolt\\nBelépéshez nyomj ENTER-t.\");
if(eInfo[id][style] == 12) format(stri, 256, \"Ruhabolt\\nBelépéshez nyomj ENTER-t.\");
entext[id] = Create3DTextLabel(stri, -1, eInfo[id][X], eInfo[id][Y], eInfo[id][Z], 30, 0, 0);
entext2[id] = Create3DTextLabel(\"Nyomj ENTER-t.\", -1, eInfo[id][kX], eInfo[id][kY], eInfo[id][kZ], 30, id, 0);
printf(\"%d ID entrance betöltve!\", id);
entek++;
return 1;
}
stock SaveEntrance(id)
{
    new eFile[128];
format(eFile, 128, \"/Entrances/%d.ini\", id);
if(!dini_Exists(eFile)) return 0;
dini_FloatSet(eFile, \"X\", eInfo[id][X]);
dini_FloatSet(eFile, \"Y\", eInfo[id][Y]);
dini_FloatSet(eFile, \"Z\", eInfo[id][Z]);
dini_FloatSet(eFile, \"kX\", eInfo[id][kX]);
dini_FloatSet(eFile, \"kY\", eInfo[id][kY]);
dini_FloatSet(eFile, \"kZ\", eInfo[id][kZ]);
dini_IntSet(eFile, \"Interior\", eInfo[id][interior]);
dini_IntSet(eFile, \"Style\", eInfo[id][style]);
printf(\"%d ID entrance elmentve!\", id);
return 1;
}
stock RemoveEntrance(id)
{
    new eFile[128];
format(eFile, 128, \"/Entrances/%d.ini\", id);
if(!dini_Exists(eFile)) return 0;
dini_Remove(eFile);
printf(\"%d ID entrance törölve.\", id);
    eInfo[id][X] = 0;
eInfo[id][Y] = 0;
eInfo[id][Z] = 0;
entek--;
Delete3DTextLabel(entext[id]);
Delete3DTextLabel(entext2[id]);
return 1;
}
stock LoadEntrances()
{
for(new i=0;i<MAX_ENTRANCES;i++)
{
    LoadEntrance(i);
}
return 1;
}
stock SaveEntrances()
{
for(new i=0;i<MAX_ENTRANCES;i++)
{
    SaveEntrance(i);
}
return 1;
}
 
stock MelyikEntrance(playerid)
{
    for(new i;i<MAX_ENTRANCES;i++)
{
    if(IsPlayerInRangeOfPoint(playerid, 3.0, eInfo[X], eInfo[Y], eInfo[Z])) return i;
}
return -1;
}
stock pName(id)
{
new name[24];
GetPlayerName(id, name, 24);
return name;
}

Nem elérhető Dead

  • 2045
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #1 Dátum: 2012. December 15. - 06:10:36 »
0 Show voters
Szép lett :) Csak így tovább!

Nem elérhető TryStar

  • 776
  • TryStar
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #2 Dátum: 2012. December 15. - 15:22:54 »
0 Show voters
Jó lett csak gratulálni tudok!
Mennyi idõ kellet mig megirtad?

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #3 Dátum: 2012. December 15. - 15:39:51 »
0 Show voters
~Fél óra. Köszi. :)

Nem elérhető Beckham

  • 1693
  • Noresz
  • Discord: Noresz#4265
    • Profil megtekintése
    • OctansV Alt:v szervere
Rupert\'s entrance system (bejárat rendszer)
« Válasz #4 Dátum: 2012. December 15. - 22:28:55 »
0 Show voters
Grat Job!Végre valaki olyat is csinál amibõl nincs 1000 a fórumon. szép.  :thumbsup:

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #5 Dátum: 2012. December 15. - 22:32:14 »
0 Show voters
Szép lett! :) Már volt szerencsém látni :)

Nem elérhető T0ny

  • 524
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #6 Dátum: 2012. December 15. - 22:33:09 »
0 Show voters
Nagyon jó lett. Gratulálok!

Rupert\'s entrance system (bejárat rendszer)
« Válasz #7 Dátum: 2013. Február 13. - 19:02:29 »
0 Show voters
Jó lett!

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #8 Dátum: 2013. Március 09. - 09:08:35 »
0 Show voters
Nekem valamiért nem jó.. létrehozza az entrancet de nem enged be ENTERT nyomom és semmi.. a /bemegye az pedig hibás.. ötlet?  :noexpression:

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #9 Dátum: 2013. Március 09. - 11:25:52 »
0 Show voters
Pluginok, incek megfelelõk?

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #10 Dátum: 2013. Március 09. - 11:33:33 »
0 Show voters
Rájöttem a hibára.. :D Az ID helyett 0 írtam és 1 -tõl kell kezdeni.. onnan rontottam el.. :)

Nem elérhető Raidon

  • 231
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #11 Dátum: 2013. Március 10. - 13:28:38 »
0 Show voters
Szép lett Rupert szokásos munka nem igaz? ment a +!

Nem elérhető ][Fo[R]cE][

  • 86
  • SAJT!
    • Profil megtekintése
Rupert\'s entrance system (bejárat rendszer)
« Válasz #12 Dátum: 2013. Április 09. - 13:34:45 »
0 Show voters
Nagyon jó lett!
Hasonlít egy házrendszerre, csak nincs benne ajtók bezárása, kinyitása, eladás.. Amúgy nagyon zsír!
Megy a +

Rupert\'s entrance system (bejárat rendszer)
« Válasz #13 Dátum: 2013. Április 09. - 21:46:13 »
0 Show voters
Szép munka!  :thumbsup:

Rupert\'s entrance system (bejárat rendszer)
« Válasz #14 Dátum: 2013. Április 10. - 08:41:09 »
0 Show voters
Good job!  8)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal