Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <sscanf2>
- #include <zcmd>
- //==============================================================================
- #define MS_File "moneysafes.pwn"
- #define iLoop(%0,%1,%2) for (new %2 = %0; %2 < %1; %2++)
- #define EmptyString(%0) %0[0] = '\0'
- #define red 0xFF0000AA
- #define green 0x33FF33AA
- #define blue 0x00FFFFAA
- #define TD_1 0,4
- #define Size(%0,%1,%2) floatround((%2*%0)/%1)
- #define ATTACHMS 2
- #define MAX_MSS (MAX_OBJECTS/ATTACHMS) // because in one safe money they are 2 objects you can change this but not more than this value (sorry for bad english)
- //==============================================================================
- static const PreloadLibs[][] =
- {
- "AIRPORT", "ATTRACTORS", "BAR", "BASEBALL", "BD_FIRE",
- "BEACH", "BENCHPRESS", "BF_INJECTION", "BIKE_DBZ", "BIKED",
- "BIKEH", "BIKELEAP", "BIKES", "BIKEV", "BLOWJOBZ",
- "BMX", "BOMBER", "BOX", "BSKTBALL", "BUDDY",
- "BUS", "CAMERA", "CAR", "CAR_CHAT", "CARRY",
- "CASINO", "CHAINSAW", "CHOPPA", "CLOTHES", "COACH",
- "COLT45", "COP_AMBIENT", "COP_DVBYZ", "CRACK", "CRIB",
- "DAM_JUMP", "DANCING", "DEALER", "DILDO", "DODGE",
- "DOZER", "DRIVEBYS", "FAT", "FIGHT_B", "FIGHT_C",
- "FIGHT_D", "FIGHT_E", "FINALE", "FINALE2", "FLAME",
- "FLOWERS", "FOOD", "FREEWEIGHTS", "GANGS", "GFUNK",
- "GHANDS", "GHETTO_DB", "GOGGLES", "GRAFFITI", "GRAVEYARD",
- "GRENADE", "GYMNASIUM", "HAIRCUTS", "HEIST9", "INT_HOUSE",
- "INT_OFFICE", "INT_SHOP", "JST_BUISNESS", "KART", "KISSING",
- "KNIFE", "LAPDAN1", "LAPDAN2", "LAPDAN3", "LOWRIDER",
- "MD_CHASE", "MD_END", "MEDIC", "MISC", "MTB",
- "MUSCULAR", "NEVADA", "ON_LOOKERS", "OTB", "PARACHUTE",
- "PARK", "PAULNMAC", "PED", "PLAYER_DVBYS", "PLAYIDLES",
- "POLICE", "POOL", "POOR", "PYTHON", "QUAD",
- "QUAD_DBZ", "RAPPING", "RIFLE", "RIOT", "ROB_BANK",
- "ROCKET", "RUNNINGMAN", "RUSTLER", "RYDER", "SCRATCHING",
- "SEX", "SHAMAL", "SHOP", "SHOTGUN", "SILENCED",
- "SKATE", "SMOKING", "SNIPER", "SNM", "SPRAYCAN",
- "STRIP", "SUNBATHE", "SWAT", "SWEET", "SWIM",
- "SWORD", "TANK", "TATTOOS", "TEC", "TRAIN",
- "TRUCK", "UZI", "VAN", "VENDING", "VORTEX",
- "WAYFARER", "WEAPONS", "WOP", "WUZI"
- };
- enum msi
- {
- Created,
- ID,
- Float:msPos[6],
- msObj[ATTACHMS],
- msStat,
- }
- enum pin
- {
- TempObj ,
- Float:pPos[6],
- sfmNamex,
- ccmsid,
- PlayerText3D:sfmName[MAX_MSS],
- PlayerText:pTextdraws[4],
- rob,
- Time,
- }
- enum
- {
- Stat_Opened = 1,
- Stat_Closed,
- Stat_Robbed,
- }
- //==============================================================================
- new ProjectFile
- [64],
- File:Handler,
- MoneySafe
- [MAX_MSS]
- [msi],
- PlayerInfo
- [MAX_PLAYERS]
- [pin];
- //==============================================================================
- public OnFilterScriptInit()
- {
- if(!fexist(MS_File))
- CreateMSFile(MS_File);
- format(ProjectFile, sizeof ProjectFile, MS_File);
- LoadMS();
- return 1;
- }
- public OnFilterScriptExit()
- {
- SaveMSs();
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(IsPlayerNearToAnySM(playerid) && !PlayerInfo[playerid][rob])
- GameTextForPlayer(playerid,"~p~~h~Press ~y~~h~\"C\" ~p~~h~to rob this SafeMoney",2000,4);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][TempObj] = -1;
- PlayerInfo[playerid][ccmsid] = -1;
- PlayerInfo[playerid][rob] = false;
- PlayerInfo[playerid][Time] = 1;
- CreatePlayerTextDrawEx(playerid,0,164.000000,363.416687,0.000000,0.000000,0.000000,"ld_poke:cd9s",0.000000,0.000000,318.000000,51.916645,1,0,124,0,0,0,0,0,4,0,0);
- CreatePlayerTextDrawEx(playerid,1,321.500000,392.583312,0.000000,0.000000,0.000000,"WAIT ...",0.377999,1.722499,0.000000,0.000000,2,0,-5813505,0,0,1,0,255,2,1,0);
- CreatePlayerTextDrawEx(playerid,2,168.500000,373.333221,0.000000,0.000000,0.000000,"ld_dual:power",0.000000,0.000000,311.000000,14.583324,1,0,-13172737,0,13358080,0,0,0,4,0,0);
- CreatePlayerTextDrawEx(playerid,3,170.000000,374.916717,1.000000,1.000000,1.000000,"",0.000000,0.000000,0.01,11.083331,1,0,-1,0,0,0,0,0,4,0,0);
- return PreloadAnimations(playerid);
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- if(PlayerInfo[playerid][TempObj] != -1)
- DestroyPlayerObject(playerid,PlayerInfo[playerid][TempObj]);
- PlayerInfo[playerid][sfmNamex] = false;
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if (newkeys & KEY_CROUCH)
- {
- new msid;
- if(IsPlayerNearToAnySM(playerid,msid) && !PlayerInfo[playerid][rob])
- StarRob(playerid);
- }
- return 1;
- }
- public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
- {
- new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ;
- GetObjectPos(objectid, oldX, oldY, oldZ);
- GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
- switch(playerobject)
- {
- case 0:
- {
- switch(response)
- {
- case EDIT_RESPONSE_FINAL:
- {
- }
- case EDIT_RESPONSE_CANCEL:
- {
- }
- }
- }
- case 1:
- {
- switch(response)
- {
- case EDIT_RESPONSE_FINAL:
- {
- new msid = PlayerInfo[playerid][ccmsid];
- CreateMoneySafe(msid,Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ,Stat_Closed);
- DestroyPlayerObject(playerid, PlayerInfo[playerid][TempObj]);
- SendClientMessageEx(playerid,green,"You have created this money safe [ ID: %d ] (%d/%d)",PlayerInfo[playerid][ccmsid],mscount(),MAX_MSS);
- if(PlayerInfo[playerid][sfmNamex])
- ShowPlayerDLMS(playerid, MoneySafe[msid][ID]);
- }
- case EDIT_RESPONSE_CANCEL:
- {
- DestroyPlayerObject(playerid, PlayerInfo[playerid][TempObj]);
- }
- }
- }
- }
- }
- //==============================================ADMIN CMDS============================
- CMD:closems(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- return SendClientMessage(playerid,red,"ERROR: You are not admin");
- new msid;
- if(msid >= MAX_MSS)
- return SendClientMessageEx(playerid,red,"ERROR: Invalid ID");
- if(sscanf(params,"d",msid))
- return SendClientMessage(playerid,blue,"Usage: /closems [Money safe ID]");
- if(!MoneySafe[msid][Created])
- return SendClientMessageEx(playerid,red,"ERROR: Money safe [ ID: %d ] not created yet!",msid);
- if(MoneySafe[msid][msStat] == Stat_Closed)
- return SendClientMessageEx(playerid,red,"WARNING: this Money safe [ ID: %d ] already closed!",msid);
- if(MoneySafe[msid][msStat] == Stat_Robbed)
- return SendClientMessageEx(playerid,red,"WARNING: this Money safe [ ID: %d ] already robbed! (/rems [ID] or /rems for all)",msid);
- SendClientMessageEx(playerid,green,"You have closed this money safe [ ID: %d ] ",msid);
- CloseMs(msid);
- if(PlayerInfo[playerid][sfmNamex])
- iLoop(0,2,i)
- cmd_dlms(playerid,"");
- return 1;
- }
- stock remsall(playerid)
- {
- iLoop(0,MAX_MSS,msid)
- {
- if(MoneySafe[msid][Created] && MoneySafe[msid][msStat] == Stat_Robbed)
- {
- CloseMs(msid);
- }
- }
- if(PlayerInfo[playerid][sfmNamex])
- iLoop(0,2,i)
- cmd_dlms(playerid,"");
- return 1;
- }
- CMD:rems(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- return SendClientMessage(playerid,red,"ERROR: You are not admin");
- new msid;
- if(msid >= MAX_MSS)
- return SendClientMessageEx(playerid,red,"ERROR: Invalid ID");
- if(!sscanf(params,"d",msid))
- {
- if(!MoneySafe[msid][Created])
- return SendClientMessageEx(playerid,red,"ERROR: Money safe [ ID: %d ] not created yet!",msid);
- if(MoneySafe[msid][msStat] != Stat_Robbed)
- return SendClientMessageEx(playerid,red,"WARNING: this Money safe [ ID: %d ] already not robbed!",msid);
- SendClientMessageEx(playerid,green,"You have restared this money safe [ ID: %d ] ",msid);
- CloseMs(msid);
- if(PlayerInfo[playerid][sfmNamex])
- iLoop(0,2,i)
- cmd_dlms(playerid,"");
- }
- else
- {
- remsall(playerid);
- }
- return 1;
- }
- CMD:openms(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- return SendClientMessage(playerid,red,"ERROR: You are not admin");
- new msid;
- if(msid >= MAX_MSS)
- return SendClientMessageEx(playerid,red,"ERROR: Invalid ID");
- if(sscanf(params,"d",msid))
- return SendClientMessage(playerid,blue,"Usage: /openms [Money safe ID]");
- if(!MoneySafe[msid][Created])
- return SendClientMessageEx(playerid,red,"ERROR: Money safe [ ID: %d ] not created yet!",msid);
- if(MoneySafe[msid][msStat] == Stat_Opened)
- return SendClientMessageEx(playerid,red,"WARNING: this Money safe [ ID: %d ] already opened!",msid);
- if(MoneySafe[msid][msStat] == Stat_Robbed)
- return SendClientMessageEx(playerid,red,"WARNING: this Money safe [ ID: %d ] already robbed! (/rems [ID] or /rems for all)",msid);
- SendClientMessageEx(playerid,green,"You have opened this money safe [ ID: %d ] ",msid);
- OpenMs(msid);
- if(PlayerInfo[playerid][sfmNamex])
- iLoop(0,2,i)
- cmd_dlms(playerid,"");
- return 1;
- }
- CMD:removems(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- return SendClientMessage(playerid,red,"ERROR: You are not admin");
- new msid ;
- if(msid >= MAX_MSS)
- return SendClientMessageEx(playerid,red,"ERROR: Invalid ID");
- if(sscanf(params,"d",msid))
- return SendClientMessage(playerid,blue,"Usage: /removems [Money safe ID]");
- if(!MoneySafe[msid][Created])
- return SendClientMessageEx(playerid,red,"ERROR: Money safe [ ID: %d ] not created yet!",msid);
- if(msid >= MAX_MSS)
- return SendClientMessageEx(playerid,red,"ERROR: Invalid ID");
- DeleteMS(msid);
- SendClientMessageEx(playerid,green,"You have removed this money safe [ ID: %d ] (%d/%d)",msid,mscount(),MAX_MSS);
- if(PlayerInfo[playerid][sfmNamex])
- DeletePlayer3DTextLabel(playerid,PlayerInfo[playerid][sfmName][msid]);
- return 1;
- }
- CMD:dlms(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- return SendClientMessage(playerid,red,"ERROR: You are not admin");
- switch(PlayerInfo[playerid][sfmNamex])
- {
- case 0:
- {
- PlayerInfo[playerid][sfmNamex] = true;
- iLoop(0,MAX_MSS,s)
- ShowPlayerDLMS(playerid, s);
- }
- case 1:
- {
- PlayerInfo[playerid][sfmNamex] = false;
- iLoop(0,MAX_MSS,s)
- {
- if(MoneySafe[s][Created])
- {
- DeletePlayer3DTextLabel(playerid,PlayerInfo[playerid][sfmName][s]);
- }
- }
- }
- }
- return 1;
- }
- CMD:placems(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- return SendClientMessage(playerid,red,"ERROR: You are not admin");
- iLoop(0,MAX_MSS,s)
- {
- if(!MoneySafe[s][Created])
- {
- new Float:Pos[5];
- GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
- GetPlayerFacingAngle(playerid,Pos[3]);
- Pos[0] += (1.5 * floatsin(-Pos[3], degrees));
- Pos[1] += (1.5 * floatcos(-Pos[3], degrees));
- Pos[2] -= (0.7);
- PlayerInfo[playerid][TempObj] = CreatePlayerObject(playerid,2332,Pos[0],Pos[1],Pos[2],0,0,0);
- EditPlayerObject(playerid,PlayerInfo[playerid][TempObj]);
- PlayerInfo[playerid][ccmsid] = s;
- break;
- }
- }
- return 1;
- }
- //==============================================STOCKS==========================
- stock OpenMs(msid)
- {
- MoneySafe[msid][msStat] = Stat_Opened;
- DestroyObject(MoneySafe[msid][msObj][0]);
- DestroyObject(MoneySafe[msid][msObj][1]);
- switch(MoneySafe[msid][msStat])
- {
- case Stat_Closed:
- {
- MoneySafe[msid][msObj][0] = CreateObject(2332,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- case Stat_Opened:
- {
- MoneySafe[msid][msObj][0] = CreateObject(1829,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.3993,0.6802,0.0435,0,0,180);
- }
- case Stat_Robbed:
- {
- MoneySafe[msid][msObj][0] = CreateObject(2003,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- default: printf("Error 4%d4: (report as bug)",MoneySafe[msid][msStat]);
- }
- SaveMSs();
- return 1;
- }
- stock CloseMs(msid)
- {
- MoneySafe[msid][msStat] = Stat_Closed;
- DestroyObject(MoneySafe[msid][msObj][0]);
- DestroyObject(MoneySafe[msid][msObj][1]);
- switch(MoneySafe[msid][msStat])
- {
- case Stat_Closed:
- {
- MoneySafe[msid][msObj][0] = CreateObject(2332,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- case Stat_Opened:
- {
- MoneySafe[msid][msObj][0] = CreateObject(1829,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.3993,0.6802,0.0435,0,0,180);
- }
- case Stat_Robbed:
- {
- MoneySafe[msid][msObj][0] = CreateObject(2003,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- default: printf("Error 4%d4: (report as bug)",MoneySafe[msid][msStat]);
- }
- SaveMSs();
- return 1;
- }
- stock RobMs(playerid,msid)
- {
- if( MoneySafe[msid][msStat] == Stat_Robbed)
- {
- GameTextForPlayer(playerid, "~r~Robbery Failed",3000,3);
- SetTimerEx("hidemsg",24000,false,"d",playerid);
- return 0;
- }
- SetPlayerWantedLevel(playerid, 5);
- GivePlayerMoney(playerid,1000000);
- DeleteMS(msid);
- MoneySafe[msid][msStat] = Stat_Robbed;
- CreateMoneySafe(msid,MoneySafe[msid][msPos][0],MoneySafe[msid][msPos][1],MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],MoneySafe[msid][msPos][4],MoneySafe[msid][msPos][5],Stat_Robbed);
- if(PlayerInfo[playerid][sfmNamex])
- iLoop(0,2,i)
- cmd_dlms(playerid,"");
- SaveMSs();
- return 1;
- }
- stock StarRob(playerid)
- {
- if(PlayerInfo[playerid][rob]) return 0;
- PlayerInfo[playerid][rob] = true;
- TogglePlayerControllable(playerid,false);
- ShowTextDraws(playerid,TD_1);
- PlayerTextDrawSetString(playerid,PlayerInfo[playerid][pTextdraws][1],"WAIT ...");
- GameTextForPlayer(playerid, "~g~~h~Ready ?",3000,6);
- SetTimerEx("SetPlayerRob",3000,false,"dd",playerid,3000);
- return 1;
- }
- forward hidemsg(playerid);
- public hidemsg(playerid)
- {
- PlayerInfo[playerid][Time] = 1;
- PlayerInfo[playerid][rob] = false;
- return 1;
- }
- forward OnPlayerFinishRob(playerid,win);
- public OnPlayerFinishRob(playerid,win)
- {
- new msid;
- IsPlayerNearToAnySM(playerid,msid);
- if(MoneySafe[msid][msStat] == Stat_Opened)
- win = true;
- switch(win)
- {
- case false :
- {
- GameTextForPlayer(playerid, "~r~Robbery Failed",3000,3);
- SetTimerEx("hidemsg",24000,false,"d",playerid);
- HideTextDraws(playerid,TD_1);
- TogglePlayerControllable(playerid,true);
- }
- default:
- {
- GameTextForPlayer(playerid, "~g~+$1000000",3000,3);
- SetTimerEx("hidemsg",3000,false,"d",playerid);
- HideTextDraws(playerid,TD_1);
- TogglePlayerControllable(playerid,true);
- RobMs(playerid,msid);
- }
- }
- return 1;
- }
- forward SetPlayerRob(playerid,time);
- public SetPlayerRob(playerid,time)
- {
- if(PlayerInfo[playerid][Time] == 1)
- {
- GameTextForPlayer(playerid, "~b~~h~GO",3000,6);
- ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 1, 0, 0, 1, 0, 0);
- PlayerInfo[playerid][Time] ++ ;
- return SetTimerEx("SetPlayerRob",time-2900,false,"dd",playerid,time);
- }
- new size = Size(PlayerInfo[playerid][Time],100,308.000000);
- PlayerTextDrawHide(playerid,PlayerInfo[playerid][pTextdraws][3]);
- PlayerTextDrawSetString(playerid,PlayerInfo[playerid][pTextdraws][3],"ld_dual:power");
- PlayerTextDrawTextSize(playerid, PlayerInfo[playerid][pTextdraws][3], size, 11.083331);
- PlayerTextDrawShow(playerid,PlayerInfo[playerid][pTextdraws][3]);
- PlayerInfo[playerid][Time] ++ ;
- if(PlayerInfo[playerid][Time] >= 100)
- return CallLocalFunction("OnPlayerFinishRob", "dd", playerid,random(3));
- SetTimerEx("SetPlayerRob",time-2900,false,"dd",playerid,time);
- return 1;
- }
- stock mscount()
- {
- new cnt;
- iLoop(0,MAX_MSS,i)
- if(MoneySafe[i][Created])
- cnt ++;
- return cnt;
- }
- stock ShowPlayerDLMS(playerid, s)
- {
- new str[200],stat[10];
- switch(MoneySafe[s][msStat])
- {
- case Stat_Opened: stat = " Opened";
- case Stat_Closed: stat = " Closed";
- case Stat_Robbed: stat = " Robbed";
- }
- format(str , sizeof str,"Money safe ID: %d\nStat:%s\nPos: %f, %f, %f"
- ,s
- ,stat
- ,MoneySafe[s][msPos][0]
- ,MoneySafe[s][msPos][1]
- ,MoneySafe[s][msPos][2]);
- PlayerInfo[playerid][sfmName][s] = CreatePlayer3DTextLabel(playerid,str,0x00FF00FF
- ,MoneySafe[s][msPos][0]
- ,MoneySafe[s][msPos][1]
- ,MoneySafe[s][msPos][2]
- ,30);
- if(!MoneySafe[s][Created]) UpdatePlayer3DTextLabelText(playerid,PlayerInfo[playerid][sfmName][s],0x00FF00FF," ");
- return 1;
- }
- stock CreateMSFile(name[])
- {
- new File:cf = fopen(name, io_write);
- fclose(cf);
- return true;
- }
- stock LoadMS()
- {
- if(!strlen(ProjectFile)) return print("(Report as bug)");
- new msid,
- str[512];
- Handler = fopen(ProjectFile, io_read);
- while(fread(Handler, str))
- {
- StripNewLine(str);
- if(!sscanf(str, "p<|>dffffffd",
- MoneySafe[msid][ID],
- MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5],
- MoneySafe[msid][msStat]
- ))
- {
- switch(MoneySafe[msid][msStat])
- {
- case Stat_Closed:
- {
- MoneySafe[msid][msObj][0] = CreateObject(2332,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- case Stat_Opened:
- {
- MoneySafe[msid][msObj][0] = CreateObject(1829,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.3993,0.6802,0.0435,0,0,180);
- }
- case Stat_Robbed:
- {
- MoneySafe[msid][msObj][0] = CreateObject(2003,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- MoneySafe[msid][msObj][1] = CreateObject(2004,MoneySafe[msid][msPos][0],
- MoneySafe[msid][msPos][1],
- MoneySafe[msid][msPos][2],
- MoneySafe[msid][msPos][3],
- MoneySafe[msid][msPos][4],
- MoneySafe[msid][msPos][5]);
- AttachObjectToObject(MoneySafe[msid][msObj][1],MoneySafe[msid][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- default: printf("Error 4%d4: (report as bug)",MoneySafe[msid][msStat]);
- }
- MoneySafe[msid][Created] = true;
- msid++;
- }
- }
- return 1;
- }
- stock GetFreeSlot()
- {
- new slot = -1;
- iLoop(0,MAX_MSS,s)
- {
- if(!MoneySafe[s][Created])
- {
- slot = s;
- break;
- }
- }
- return slot;
- }
- stock CreateMoneySafe(id,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ,stat)
- {
- new s;
- if(!MoneySafe[id][Created])
- {
- s = GetFreeSlot();
- }
- else
- {
- s = id;
- }
- switch(stat)
- {
- case Stat_Closed:
- {
- MoneySafe[s][msObj][0] = CreateObject(2332,X,Y,Z,rX,rY,rZ);
- MoneySafe[s][msObj][1] = CreateObject(2004,X,Y-1.0,Z,rX,rY,rZ);
- AttachObjectToObject(MoneySafe[s][msObj][1],MoneySafe[s][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- case Stat_Opened:
- {
- MoneySafe[s][msObj][0] = CreateObject(1829,X,Y,Z,rX,rY,rZ);
- MoneySafe[s][msObj][1] = CreateObject(2004,X,Y-1.0,Z,rX,rY,rZ);
- AttachObjectToObject(MoneySafe[s][msObj][1],MoneySafe[s][msObj][0] ,0.3993,0.6802,0.0435,0,0,180);
- }
- case Stat_Robbed:
- {
- MoneySafe[s][msObj][0] = CreateObject(2003,X,Y,Z,rX,rY,rZ);
- MoneySafe[s][msObj][1] = CreateObject(2004,X,Y-1.0,Z,rX,rY,rZ);
- AttachObjectToObject(MoneySafe[s][msObj][1],MoneySafe[s][msObj][0] ,0.4263,0.3623,0.0295,0,0,180);
- }
- default: printf("Error 4%d4: (report as bug)",stat);
- }
- MoneySafe[s][msStat]= stat;
- MoneySafe[s][msPos][0] =X;
- MoneySafe[s][msPos][1] =Y;
- MoneySafe[s][msPos][2] =Z;
- MoneySafe[s][msPos][3] =rX;
- MoneySafe[s][msPos][4] =rY;
- MoneySafe[s][msPos][5] =rZ;
- MoneySafe[s][ID] = s;
- MoneySafe[s][Created] = true;
- SaveMSs();
- return 1;
- }
- stock StripNewLine(string[])
- {
- new len = strlen(string);
- if (string[0]==0) return ;
- if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) {
- string[len - 1] = 0;
- if (string[0]==0) return ;
- if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0;
- }
- }
- stock IsPlayerNearToAnySM(playerid,&id=-1)
- {
- new near;
- iLoop(0,MAX_MSS,m)
- {
- if(MoneySafe[m][Created] && MoneySafe[m][msStat] != Stat_Robbed)
- {
- if(IsPlayerInRangeOfPoint(playerid,1.2,MoneySafe[m][msPos][0],MoneySafe[m][msPos][1],MoneySafe[m][msPos][2]))
- {
- id = m;
- near = true;
- break;
- }
- }
- }
- return near;
- }
- stock DeleteMS(msid)
- {
- if(!MoneySafe[msid][Created]) return 0;
- DestroyObject(MoneySafe[msid][msObj][0]);
- DestroyObject(MoneySafe[msid][msObj][1]);
- MoneySafe[msid][Created] = false;
- SaveMSs();
- return 1;
- }
- stock SaveMSs()
- {
- new ExportFile[64];
- format(ExportFile, sizeof ExportFile, "%s", ProjectFile);
- if(fexist(ExportFile)) fremove(ExportFile);
- new File:ExportMS = fopen(ExportFile, io_write);
- fwrite(ExportMS, "\n/*\r\n\r\n\n");
- fwrite(ExportMS, "\tDarkLight\t");
- fwrite(ExportMS, "\r\n\r\n\n*/\n");
- new bstr[2000];
- iLoop(0,MAX_MSS,i)
- {
- if(MoneySafe[i][Created])
- {
- new nstr[500];
- format(nstr, sizeof nstr,"%d|%f|%f|%f|%f|%f|%f|%d\n"
- ,MoneySafe[i][ID]
- ,MoneySafe[i][msPos][0]
- ,MoneySafe[i][msPos][1]
- ,MoneySafe[i][msPos][2]
- ,MoneySafe[i][msPos][3]
- ,MoneySafe[i][msPos][4]
- ,MoneySafe[i][msPos][5]
- ,MoneySafe[i][msStat]);
- strcat(bstr,nstr);
- }
- }
- fwrite(ExportMS, bstr);
- fclose(ExportMS);
- return 1;
- }
- stock SendClientMessageEx(playerid, color, const str[], {Float,_}:...)
- {
- static
- args,
- start,
- end,
- string[144]
- ;
- #emit LOAD.S.pri 8
- #emit STOR.pri args
- if (args > 12)
- {
- #emit ADDR.pri str
- #emit STOR.pri start
- for (end = start + (args - 12); end > start; end -= 4)
- {
- #emit LREF.pri end
- #emit PUSH.pri
- }
- #emit PUSH.S str
- #emit PUSH.C 144
- #emit PUSH.C string
- #emit PUSH.C args
- #emit SYSREQ.C format
- SendClientMessage(playerid, color, string);
- #emit LCTRL 5
- #emit SCTRL 4
- #emit RETN
- }
- return SendClientMessage(playerid, color, str);
- }
- stock CreatePlayerTextDrawEx(playerid,i,Float:X,Float:Y,Float:RX,Float:RY,Float:RZ,str[],Float:LsX,Float:LsY,Float:TsX,Float:TsY,Alg,mid,clr,useb,bclr,shd,out,bgc,fnt,prop,slct)
- {
- PlayerInfo[playerid][pTextdraws][i] = CreatePlayerTextDraw(playerid, X, Y, str);
- PlayerTextDrawLetterSize(playerid, PlayerInfo[playerid][pTextdraws][i], LsX, LsY);
- if(TsX !=0.0 && TsY !=0.0 ) PlayerTextDrawTextSize(playerid, PlayerInfo[playerid][pTextdraws][i], TsX, TsY);
- PlayerTextDrawAlignment(playerid, PlayerInfo[playerid][pTextdraws][i], Alg);
- PlayerTextDrawSetPreviewModel(playerid, PlayerInfo[playerid][pTextdraws][i], mid);
- PlayerTextDrawColor(playerid, PlayerInfo[playerid][pTextdraws][i], clr);
- PlayerTextDrawSetPreviewRot(playerid,PlayerInfo[playerid][pTextdraws][i],RX,RY,RZ);
- if(useb == 1)
- {
- PlayerTextDrawUseBox(playerid, PlayerInfo[playerid][pTextdraws][i], true);
- PlayerTextDrawBoxColor(playerid, PlayerInfo[playerid][pTextdraws][i], bclr);
- }
- PlayerTextDrawSetShadow(playerid, PlayerInfo[playerid][pTextdraws][i], shd);
- PlayerTextDrawSetOutline(playerid, PlayerInfo[playerid][pTextdraws][i], out);
- PlayerTextDrawBackgroundColor(playerid, PlayerInfo[playerid][pTextdraws][i], bgc);
- PlayerTextDrawFont(playerid, PlayerInfo[playerid][pTextdraws][i], fnt);
- PlayerTextDrawSetProportional(playerid, PlayerInfo[playerid][pTextdraws][i], prop);
- if(slct==1)
- PlayerTextDrawSetSelectable(playerid, PlayerInfo[playerid][pTextdraws][i], true);
- return 1;
- }
- stock ShowTextDraws(playerid,in,to)
- {
- iLoop(in,to,i)
- {
- PlayerTextDrawShow(playerid, PlayerInfo[playerid][pTextdraws][i]);
- }
- return 1;
- }
- stock HideTextDraws(playerid,in,to)
- {
- iLoop(in,to,i)
- {
- PlayerTextDrawHide(playerid, PlayerInfo[playerid][pTextdraws][i]);
- }
- return 1;
- }
- stock PreloadAnimations(playerid)
- {
- for (new i = 0; i < sizeof(PreloadLibs); i ++) {
- ApplyAnimation(playerid, PreloadLibs[i], "null", 4.0, 0, 0, 0, 0, 0, 1);
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement