rSafe
Információk:Készítõ:Rolux
Elkészítési idõ 1 óra
Sorok száma:238
Parancsok:/ujszef - Létrehozol egy új széfet ((Csak rCon admin használhatja))
/szefnyit <jelszó> - Kinyitod a legközelebbi széfet((Ha jó a jelszó :d))
/szefzar - Bezárod a széfet
/szefpenz - Megnézed a széfben lévõ pénzt
/szefbetesz <összeg> - Egy adott mennyiségû pénzt teszel a széfbe
/szefkivesz <összeg> - Egy adott mennyiségû pénzt veszel ki a széfbõl
Képek:[hs width=300 height=300]
http://kepfeltoltes.hu/140811/sa-mp-007_www.kepfeltoltes.hu_.png[/hs]
[hs width=300 height=300]
http://kepfeltoltes.hu/140811/sa-mp-008_www.kepfeltoltes.hu_.png[/hs]
[hs width=300 height=300]
http://kepfeltoltes.hu/140810/793808861sa-mp-005_www.kepfeltoltes.hu_.png[/hs]
Maga a kód:http://data.hu/get/7953510/szefr.pwnhttp://pastebin.com/z4V1bvk6 #include <a_samp>
#include <zcmd>
#include \"sscanf2\"
#include \"dini\"
#define MAX_SZEF 200
enum r_szef{
Float:szX,
Float:szY,
Float:szZ,
Float:szROT,
Pass[24],
Object,
Text3D:sztext,
Nyitva,
Frakcio,
Penz
}
new xfact[MAX_PLAYERS];
new xjelsz[MAX_PLAYERS][24];
new objectke[MAX_PLAYERS];
new szfile[128];
new szInfo[MAX_SZEF][r_szef];
new szefid;
CMD:ujszef(playerid,params[]){
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0xff0000AA,\"»Nem vagy admin !\");
new szoveg[24],fid;
if(sscanf(params, \"s[24]d\",szoveg,fid)) return SendClientMessage(playerid,0xff0000AA,\"» Használat /újszéf » jelszó « » frakció id «\");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
objectke[playerid] = CreateObject(2332, x, y, z, 0.0, 0.0, 96.0);
EditObject(playerid, objectke[playerid]);
format(xjelsz[playerid], 24, \"%s\", szoveg);
SendClientMessage(playerid,0xff0000AA,\"» A kamera mozgatásához nyomd meg a SPACE gombot«\");
return 1;
}
CMD:szefpenz(playerid,params[])
{
for(new i; i < MAX_SZEF; i ++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, szInfo[szX], szInfo[szY], szInfo[szZ]))
{
if(szInfo[Nyitva] == 0) return SendClientMessage(playerid,0xff0000AA,\"» Elõször nyissd ki! \");
//if(GetPVarInt(playerid,\"CurSafe\") != i) return SendClientMessage(playerid,0xff0000AA,\"» Elõször írd be a jelszót » /szefjelszo «\");
new string[128];
format(string,sizeof(string),\"A széfben lévõ pénz: %d$\",szInfo[Penz]);
SendClientMessage(playerid,0xFFFFFFAA,string);
}
}
return 1;
}
CMD:szefkivesz(playerid,params[])
{
new szoveg;
if(sscanf(params, \"d\",szoveg)) return SendClientMessage(playerid,0xff0000AA,\"» Használat /széfkivesz » összeg «\");
for(new i; i < MAX_SZEF; i ++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, szInfo[szX], szInfo[szY], szInfo[szZ]))
{
if(szInfo[Nyitva] == 0) return SendClientMessage(playerid,0xff0000AA,\"» Elõször nyissd ki! \");
//if(GetPVarInt(playerid,\"CurSafe\") != i) return SendClientMessage(playerid,0xff0000AA,\"» Elõször írd be a jelszót » /szefjelszo «\");
if(szInfo[Penz] < szoveg) return SendClientMessage(playerid,0xff0000AA,\"»Nincs ennyi pénz a széfben!\");
if(szoveg < 1) return SendClientMessage(playerid,0xff0000AA,\"» Ne is próbálkozz !\");
szInfo[Penz] -= szoveg;
new string[128];
format(string,sizeof(string),\"Sikeresen kivettél %d$-t\",szoveg);
SendClientMessage(playerid,0xff0000AA,string);
GivePlayerMoney(playerid,szoveg);
}
}
return 1;
}
CMD:szefbetesz(playerid,params[])
{
new szoveg;
if(sscanf(params, \"d\",szoveg)) return SendClientMessage(playerid,0xff0000AA,\"» Használat /széfbetesz » összeg «\");
for(new i; i < MAX_SZEF; i ++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, szInfo[szX], szInfo[szY], szInfo[szZ]))
{
if(szInfo[Nyitva] == 0) return SendClientMessage(playerid,0xff0000AA,\"» Elõször nyissd ki! \");
//if(GetPVarInt(playerid,\"CurSafe\") != i) return SendClientMessage(playerid,0xff0000AA,\"» Elõször írd be a jelszót » /szefjelszo «\");
if(GetPlayerMoney(playerid) < szoveg) return SendClientMessage(playerid,0xff0000AA,\"» Nincs ennyi pénzed !\");
if(szoveg < 1) return SendClientMessage(playerid,0xff0000AA,\"» Ne is próbálkozz !\");
szInfo[Penz] += szoveg;
new string[128];
format(string,sizeof(string),\"Sikeresen betettél %d$-t\",szoveg);
SendClientMessage(playerid,0xff0000AA,string);
GivePlayerMoney(playerid,-szoveg);
}
}
return 1;
}
CMD:szefnyit(playerid,params[])
{
new szoveg[24];
if(sscanf(params, \"s[24]\",szoveg)) return SendClientMessage(playerid,0xff0000AA,\"» Használat /szefjelszo » jelszó «\");
for(new i; i < MAX_SZEF; i ++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, szInfo[szX], szInfo[szY], szInfo[szZ]))
{
if(szInfo[Nyitva] == 1) return SendClientMessage(playerid,0xff0000AA,\"» Már ki van nyitva! \");
if(!strcmp(szInfo[Pass],szoveg,false))
{
SendClientMessage(playerid,-1,\"» Sikeresen beírtad a jelszót!\");
szInfo[Nyitva] = 1;
Update3DTextLabelText(szInfo[sztext], 0x008080FF, \"Széf\\n{00ff3c}Nyitva\");
DestroyObject(szInfo[Object] );
szInfo[Object] = CreateObject(1829, szInfo[szX],szInfo[szY], szInfo[szZ], 0.0, 0.0, szInfo[szROT]);
}else{
SendClientMessage(playerid,-1,\"» Hibás jelszó !\");
}
}
}
return 1;
}
CMD:szefzar(playerid,params[])
{
for(new i; i < MAX_SZEF; i ++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, szInfo[szX], szInfo[szY], szInfo[szZ]))
{
if(szInfo[Nyitva] == 0) return SendClientMessage(playerid,0xff0000AA,\"» Már be van zárva! \");
SendClientMessage(playerid,-1,\"» Sikeresen bezártad a széfet!\");
szInfo[Nyitva] = 0;
Update3DTextLabelText(szInfo[sztext], 0x008080FF, \"Széf\\n{ff0000}Zárva\");
DestroyObject(szInfo[Object] );
szInfo[Object] = CreateObject(2332, szInfo[szX],szInfo[szY], szInfo[szZ], 0.0, 0.0, szInfo[szROT]);
}
}
return 1;
}
public OnGameModeInit(){
for(new i; i < MAX_SZEF; i ++){
LoadSafe(i);
}
return 1;
}
public OnGameModeExit(){
for(new i; i < MAX_SZEF; i ++){
SaveSafe(i);
}
return 1;
}
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
if(response == EDIT_RESPONSE_FINAL)
{
CreateSzef(xjelsz[playerid],0,fX, fY, fZ,fRotZ,xfact[playerid]);
DestroyObject(objectke[playerid]);
xfact[playerid] = 0;
}
if(response == EDIT_RESPONSE_UPDATE)
{
}
if(response == EDIT_RESPONSE_CANCEL)
{
DestroyObject(objectke[playerid]);
}
}
stock LoadSafe(xszefid)
{
format(szfile, sizeof(szfile), \"Szefek/%d.ini\", xszefid);
if(dini_Exists(szfile))
{
szInfo[xszefid][Frakcio] = dini_Int(szfile, \"Frakció\");
szInfo[xszefid][Penz] = dini_Int(szfile, \"Tartalom\");
szInfo[xszefid][Nyitva] = dini_Int(szfile, \"Zár\");
szInfo[xszefid][szX] = dini_Float(szfile, \"X\");
szInfo[xszefid][szY] = dini_Float(szfile, \"Y\");
szInfo[xszefid][szZ] = dini_Float(szfile, \"Z\");
szInfo[xszefid][szROT] = dini_Float(szfile, \"ROT\");
format(szInfo[xszefid][Pass], 24, \"%s\", dini_Get(szfile, \"jelszó\"));
if(szInfo[xszefid][Nyitva] == 0){
szInfo[xszefid][sztext] = Create3DTextLabel(\"Széf\\n{ff0000}Zárva\", 0x008080FF, szInfo[xszefid][szX],szInfo[xszefid][szY], szInfo[xszefid][szZ]+1, 40.0, 0, 0);
szInfo[xszefid][Object] = CreateObject(2332, szInfo[xszefid][szX],szInfo[xszefid][szY], szInfo[xszefid][szZ], 0.0, 0.0, szInfo[xszefid][szROT]);
}else{
szInfo[xszefid][sztext] = Create3DTextLabel(\"Széf\\n{00ff3c}Nyitva\", 0x008080FF, szInfo[xszefid][szX],szInfo[xszefid][szY], szInfo[xszefid][szZ]+1, 40.0, 0, 0);
szInfo[xszefid][Object] = CreateObject(1829, szInfo[xszefid][szX],szInfo[xszefid][szY], szInfo[xszefid][szZ], 0.0, 0.0, szInfo[xszefid][szROT]);
}
szefid++;//
printf(\"%d széf betöltve\",xszefid);
}
}
stock SaveSafe(xszefid)
{
format(szfile, sizeof(szfile), \"Szefek/%d.ini\", xszefid);
if(dini_Exists(szfile))
{
dini_IntSet(szfile, \"Frakció\", szInfo[xszefid][Frakcio]);
dini_IntSet(szfile, \"Zár\", szInfo[xszefid][Nyitva]);
dini_IntSet(szfile, \"Tartalom\", szInfo[xszefid][Penz]);
dini_FloatSet(szfile, \"X\", szInfo[xszefid][szX]);
dini_FloatSet(szfile, \"Y\", szInfo[xszefid][szY]);
dini_FloatSet(szfile, \"Z\", szInfo[xszefid][szZ]);
dini_FloatSet(szfile, \"ROT\", szInfo[xszefid][szROT]);
dini_Set(szfile, \"Pass\", szInfo[xszefid][Pass]);
}
}
stock CreateSzef(jelsz[],xPenz,Float:X,Float:Y,Float:Z,Float:ROT,frakc)
{
szefid++;
format(szfile, sizeof(szfile), \"Szefek/%d.ini\", szefid);
dini_Create(szfile);
szInfo[szefid][Frakcio] = frakc;
szInfo[szefid][Nyitva] = 0;
szInfo[szefid][szX] = X;
szInfo[szefid][szY] = Y;
szInfo[szefid][szZ] = Z;
szInfo[szefid][szROT] = ROT;
szInfo[szefid][Penz] = xPenz;
szInfo[szefid][Object] = CreateObject(2332, X, Y, Z, 0.0, 0.0, ROT);
szInfo[szefid][sztext] = Create3DTextLabel(\"Széf\\n{ff0000}Zárva\", 0x008080FF, X, Y, Z+2, 40.0, 0, 0);
format(szInfo[szefid][Pass], 24, \"%s\", jelsz);
SaveSafe(szefid);
}
Fontos:A scriptfiles mappába létre kell hozni egy Szefek - nevû mappát.
A nevem feltüntetése kötelezõ!