Advertisement
FoxHound

Easy Map Including v3

Sep 11th, 2011
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.40 KB | None | 0 0
  1. /*              Easy Mapincluding
  2.  *       (c) Copyright 2011-2012 by FoxHound
  3.  *
  4.  * @author      : FoxHound aka PSPgamer_10
  5.  * @date        : 13 March 2011
  6.  * @lastupdate  : 02 September 2011
  7.  * @version     : v3.0
  8.  *
  9.  * @specialthx  : • 'Meta' for the Idea to convert the Maps.
  10.  *                • For the Users who use this and support me.
  11.  *
  12.  *
  13.  * IMPORTANT NOTE FOR SCRIPT STEALERS:
  14.  * Learn to make your own shit yourself, and stop bitchin' with stolen scripts.
  15.  * It's not fair to steal someone his Script, or somethin' else.
  16.  * I write all my Nicknames and my original name too, and if you see one of the Names in a Script,
  17.  * ...remember it's mine, i spent time for it, and don't steal it, go make your own shit.
  18.  * That's all. Go suicide.
  19.  * FoxHound -|- PSPgamer_10 -|- Ogopogo =-=-> Gökhan Akin
  20.  *
  21.  *           ___           ___
  22.  *          /\__\         /|  |
  23.  *         /:/ _/_       |:|  |
  24.  *        /:/ /\__\      |:|  |
  25.  *       /:/ /:/  /    __|:|__|
  26.  *      /:/_/:/  /    /::::\__\_____
  27.  *      \:\/:/  /     ~~~~\::::/___/
  28.  *       \::/__/          |:|~~|
  29.  *        \:\  \          |:|  |
  30.  *         \:\__\         |:|__|
  31.  *          \/__/         |/__/
  32.  *      +--+-+-+-+-+-+-+-+-+-+--+
  33.  *      | p r o d u c t i o n s |
  34.  *      +--+-+-+-+-+-+-+-+-+-+--+
  35.  *
  36.  */
  37.  
  38. #if !defined MAX_MAPS
  39.     #define MAX_MAPS 30 //Maximal maps you can load. Increase it, if you want to load more than 30 maps
  40. #endif
  41. #if !defined MAX_OBJECT_PER_MAP
  42.     #define MAX_OBJECT_PER_MAP 500 //Mapcount + Vehiclecount.
  43. #endif
  44.  
  45. forward OnObjectDataLoad(modelid,Float:posX,Float:posY,Float:posZ,Float:rotX,Float:rotY,Float:rotZ,Float:drawdistance);
  46. forward OnVehicleDataLoad(vehicletype,Float:x,Float:y,Float:z,Float:rotation,interior,color1,color2,respawn_delay,paintjob,numberplate[]);
  47.  
  48. new mID[MAX_MAPS][MAX_OBJECT_PER_MAP],ObjectCount[MAX_MAPS]={0,...},VehicleCount[MAX_MAPS]={0,...},mapIdCount,mifx_str[256],firstload=1,mname[MAX_MAPS][36],idofmap[MAX_MAPS]={-1,...};
  49.  
  50. stock LoadMap(mapfile[],cnvrt=0) {    //bY FoxHound
  51.     if(mapIdCount>=MAX_MAPS) { return printf("[MAP] * ERROR: Couldn't load Map: '%s.map'\n[MAP] * INFO: Please increase the Amount of 'MAX_MAPS' in 'mapincluding.inc'...\n[MAP] * INFO: ...to load more maps.",mifx_str); }
  52.     new flnm[48],funcFound=0,mapmode=0,File:nMapFile,mifxstrfnd=strfind(mapfile,".map",true),loadingMapID=mapIdCount,
  53.     Float:veh_coords[4],lmf_model,veh_data[3]={0,...},fxstr[64],veh_color[2]={-1,-1},veh_plate[16],Float:lmf_coords[7],i[5]={0,...};
  54.     if(mifxstrfnd>-1) { strdel(mapfile,mifxstrfnd-4,mifxstrfnd); }
  55.     if(firstload && fexist(" ")) {
  56.         fremove(" ");
  57.         firstload=0; }
  58.     for(new gg=0;gg<MAX_MAPS;gg++) {
  59.         if(ObjectCount[gg]==-1) { loadingMapID=gg; ObjectCount[gg]=0; break; } }
  60.     format(mname[loadingMapID],sizeof(mname),"%s",mapfile);
  61.     idofmap[loadingMapID]=loadingMapID;
  62.     format(mifx_str,sizeof(mifx_str),"maps/%s.map",mname[loadingMapID]);
  63.     if(!fexist(mifx_str)) { return printf("[MAP] * ERROR: Couldn't load Map: '%s' <File Not Found>",mifx_str); }
  64.     if(!cnvrt) {
  65.         new mi_fx_mpnmfnd=-1,File:tmpfile, mi_fx_lolstr[64];
  66.         format(mi_fx_lolstr,sizeof(mi_fx_lolstr),"(%s-",mapfile);
  67.         tmpfile=fopen(" ",io_readwrite);
  68.         do {
  69.             mi_fx_mpnmfnd=strfind(mifx_str,mi_fx_lolstr,true);
  70.             if(mi_fx_mpnmfnd>-1) { break; } }
  71.         while(fread(tmpfile,mifx_str));
  72.         if(mi_fx_mpnmfnd==-1) { format(mifx_str,sizeof(mifx_str),"(%s-%d)\r\n",mapfile,loadingMapID),fwrite(tmpfile,mifx_str); }
  73.         else { return printf("[MAP] * ERROR: Couldn't load Map: '%s.map' <Already Loaded>",mname[loadingMapID]),fclose(tmpfile); }
  74.         fclose(tmpfile); }
  75.     format(flnm,sizeof(flnm),"maps/OUT_%s.map",mname[loadingMapID]);
  76.     format(mifx_str,sizeof(mifx_str),"maps/%s.map",mname[loadingMapID]);
  77.     new File:map = fopen(mifx_str,io_readwrite);
  78.     while(fread(map,mifx_str)) {
  79.         if(strfind(mifx_str,");",true)!=-1) {
  80.             if(cnvrt) {
  81.                 return printf("[MAP] * ERROR: The Map \"%s\" is already a SA-MP Map.\n[MAP] * INFO: Convertion aborted.",mapfile),0; }
  82.             break; }
  83.         else if(strfind(mifx_str,"\"race\"",true)!=-1) { mapmode=1; break; }
  84.         else if(strfind(mifx_str,"\"editor_main\"",true)!=-1) { mapmode=2; break; } }
  85.     if(cnvrt) {  nMapFile=fopen(flnm,io_write); }
  86.     if(!mapmode) {
  87.         do {
  88.             if(((strfind(mifx_str,"Object",true)==-1) && (strfind(mifx_str,"Vehicle",true)==-1)) || (strfind(mifx_str,"//")==0)) { print("hähä"); i[0]--; continue; }
  89.             if(i[3]) { print("hähä2"); i[0]--; continue; }
  90.          // OBJECTLOADER
  91.             if(strfind(mifx_str,"Object",true)!=-1) {
  92.                 lmf_model=strval(mi_fx_getPartOfString(mifx_str,1,'(',','));
  93.                 lmf_coords[0]=floatstr(mi_fx_getPartOfString(mifx_str,1,','));
  94.                 lmf_coords[1]=floatstr(mi_fx_getPartOfString(mifx_str,2,','));
  95.                 lmf_coords[2]=floatstr(mi_fx_getPartOfString(mifx_str,3,','));
  96.                 lmf_coords[3]=floatstr(mi_fx_getPartOfString(mifx_str,4,','));
  97.                 lmf_coords[4]=floatstr(mi_fx_getPartOfString(mifx_str,5,','));
  98.                 lmf_coords[5]=floatstr(mi_fx_getPartOfString(mifx_str,6,','));
  99.                 lmf_coords[6]=floatstr(mi_fx_getPartOfString(mifx_str,7,',',')'));
  100.                 lmf_coords[6] = (lmf_coords[6]) ? lmf_coords[6] : 150.0;
  101.                 funcFound=CallRemoteFunction("OnObjectDataLoad","dfffffff",lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],lmf_coords[6]);
  102.                 if(!funcFound) { mID[loadingMapID][ObjectCount[loadingMapID]+(VehicleCount[loadingMapID])]=CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],lmf_coords[6]); ObjectCount[loadingMapID]++; }
  103.             }
  104.             if(strfind(mifx_str,"Vehicle",true)!=-1) {
  105.              // VEHICLELOEADER
  106.                 veh_data[0]=strval(mi_fx_getPartOfString(mifx_str,1,'(',','));
  107.                 veh_coords[0]=floatstr(mi_fx_getPartOfString(mifx_str,1,','));
  108.                 veh_coords[1]=floatstr(mi_fx_getPartOfString(mifx_str,2,','));
  109.                 veh_coords[2]=floatstr(mi_fx_getPartOfString(mifx_str,3,','));
  110.                 veh_coords[3]=floatstr(mi_fx_getPartOfString(mifx_str,4,','));
  111.                 veh_color[0]=strval(mi_fx_getPartOfString(mifx_str,5,','));
  112.                 veh_color[1]=strval(mi_fx_getPartOfString(mifx_str,6,','));
  113.                 veh_data[1]=strval(mi_fx_getPartOfString(mifx_str,7,',',')'));
  114.                 veh_data[1] = (!veh_data[1]) ? -1 : veh_data[1];
  115.                 funcFound=CallRemoteFunction("OnVehicleDataLoad","dffffddddds",veh_data[0],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],0,veh_color[0],veh_color[1],veh_data[1],3,"FX-GA 21");
  116.                 if(!funcFound) { mID[loadingMapID][VehicleCount[loadingMapID]+(ObjectCount[loadingMapID+1])]=CreateVehicle(veh_data[0],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],veh_color[0],veh_color[1],veh_data[1]); VehicleCount[loadingMapID]++; }
  117.             } } while(fread(map,mifx_str)); }
  118.     else if(mapmode==1) {
  119.         for(; fread(map,mifx_str); i[0]++) {
  120.         if(strfind(mifx_str,"//")==0) { i[0]--; continue; }
  121.         if(i[4]) { i[0]--; continue; }
  122.         if(strfind(mifx_str,"spawnpoint",true)!=-1)
  123.         {
  124.             i[1]=strfind(mifx_str,"<vehicle>"), i[2]=strfind(mifx_str,"</vehicle>");
  125.             strmid(fxstr,mifx_str,(i[1]+9),i[2]);
  126.             veh_data[0]=strval(fxstr);
  127.             i[1]=strfind(mifx_str,"<position>"), i[2]=strfind(mifx_str,"</position>");
  128.             strmid(fxstr,mifx_str,(i[1]+10),i[2]);
  129.             veh_coords[0]=floatstr(mi_fx_getPartOfString(fxstr)), veh_coords[1]=floatstr(mi_fx_getPartOfString(fxstr,1)), veh_coords[2]=floatstr(mi_fx_getPartOfString(fxstr,2));
  130.             i[1]=strfind(mifx_str,"<rotation>"), i[2]=strfind(mifx_str,"</rot");
  131.             strmid(fxstr,mifx_str,(i[1]+10),i[2]);
  132.             veh_coords[3]=floatstr(mi_fx_getPartOfString(fxstr));
  133.             if(!cnvrt) {
  134.                 funcFound=CallRemoteFunction("OnVehicleDataLoad","dffffddddds",veh_data[0],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],0,-1,-1,-1,3,"FXGA-21");
  135.                 if(!funcFound) { mID[loadingMapID][VehicleCount[loadingMapID]+(ObjectCount[loadingMapID+1])]=CreateVehicle(veh_data[0],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],-1,-1,-1); VehicleCount[loadingMapID]++; } }
  136.             else {
  137.                 format(mifx_str,sizeof(mifx_str),"CreateVehicle(%d,%f,%f,%f,%f,-1,-1,-1);\r\n",veh_data[0],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3]); fwrite(nMapFile,mifx_str); }
  138.         }
  139.         if(!i[3]) {
  140.             i[1]=strfind(mifx_str,"<position>"), i[2]=strfind(mifx_str,"</position>");
  141.             if((i[1]==-1) || (i[2]==-1)) { continue; }
  142.             strmid(mifx_str,mifx_str,(i[1]+10),i[2]);
  143.             lmf_coords[0]=floatstr(mi_fx_getPartOfString(mifx_str)), lmf_coords[1]=floatstr(mi_fx_getPartOfString(mifx_str,1)), lmf_coords[2]=floatstr(mi_fx_getPartOfString(mifx_str,2));
  144.             i[3]=1; }
  145.         else if(i[3]==1) {
  146.             i[1]=strfind(mifx_str,"<rotation>"), i[2]=strfind(mifx_str,"</rotation>");
  147.             if((i[1]==-1) || (i[2]==-1)) { continue; }
  148.             strmid(mifx_str,mifx_str,(i[1]+10),i[2]);
  149.             lmf_coords[3]=(floatstr(mi_fx_getPartOfString(mifx_str,2))*57.2958), lmf_coords[4]=(floatstr(mi_fx_getPartOfString(mifx_str,1))*57.2958), lmf_coords[5]=(floatstr(mi_fx_getPartOfString(mifx_str))*57.2958);
  150.             i[3]=2; }
  151.         else if(i[3]==2) {
  152.             i[1]=strfind(mifx_str,"<model>"), i[2]=strfind(mifx_str,"</model>");
  153.             if((i[1]==-1) || (i[2]==-1)) { continue; }
  154.             strmid(mifx_str,mifx_str,(i[1]+7),i[2]);
  155.             lmf_model=strval(mifx_str);
  156.             if(!cnvrt) {
  157.                 funcFound=CallRemoteFunction("OnObjectDataLoad","dfffffff",lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0);
  158.                 if(!funcFound) { mID[loadingMapID][ObjectCount[loadingMapID]+(VehicleCount[loadingMapID])]=CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0); ObjectCount[loadingMapID]++; } }
  159.             else {
  160.                 format(mifx_str,sizeof(mifx_str),"CreateObject(%d,%f,%f,%f,%f,%f,%f,150.0);\r\n",lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5]); fwrite(nMapFile,mifx_str); }
  161.             i[3]=0; } } }
  162.     else if(mapmode==2) {
  163.         for(; fread(map,mifx_str); i[0]++) {
  164.         if(((strfind(mifx_str,"<object id=",true)==-1) && (strfind(mifx_str,"<object name=",true)==-1) && (strfind(mifx_str,"<vehicle id=",true)==-1)) || (strfind(mifx_str,"//")!=-1)) { i[0]--; continue; }
  165.         if(i[3]) { i[0]--; continue; }
  166.         if((strfind(mifx_str,"<object id=",true)!=-1) || (strfind(mifx_str,"<object name=",true)!=-1)) {
  167.             if(strfind(mifx_str,"<object id=",true)!=-1) {
  168.                 if(strfind(mifx_str," doublesided=",true)!=-1) {
  169.                     i[1]=strfind(mifx_str,"model="), i[2]=strfind(mifx_str," interior=");
  170.                     strmid(fxstr,mifx_str,(i[1]+7),(i[2]-1));
  171.                     lmf_model=strval(fxstr);
  172.                     i[1]=strfind(mifx_str,"rotZ="), i[2]=strfind(mifx_str,"/>");
  173.                     strmid(fxstr,mifx_str,(i[1]+6),(i[2]-2));
  174.                     lmf_coords[5]=floatstr(fxstr); }
  175.                 else {
  176.                     i[1]=strfind(mifx_str,"model="), i[2]=strfind(mifx_str," posX");
  177.                     strmid(fxstr,mifx_str,(i[1]+7),(i[2]-1));
  178.                     lmf_model=strval(fxstr);
  179.                     i[1]=strfind(mifx_str,"rotZ="), i[2]=strfind(mifx_str,"dimension=");
  180.                     strmid(fxstr,mifx_str,(i[1]+6),(i[2]-2));
  181.                     lmf_coords[5]=floatstr(fxstr); } }
  182.             else if(strfind(mifx_str,"<object name=",true)!=-1) { // Added for Delux Map Converter...
  183.                 i[1]=strfind(mifx_str,"rotZ="), i[2]=strfind(mifx_str," model=");
  184.                 strmid(fxstr,mifx_str,(i[1]+6),(i[2]-1));
  185.                 lmf_coords[5]=floatstr(fxstr);
  186.                 i[1]=strfind(mifx_str,"model="), i[2]=strfind(mifx_str," />");
  187.                 strmid(fxstr,mifx_str,(i[1]+7),(i[2]-1));
  188.                 lmf_model=strval(fxstr); }
  189.             i[1]=strfind(mifx_str,"posX="), i[2]=strfind(mifx_str," posY=");
  190.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-1));
  191.             lmf_coords[0]=floatstr(fxstr);
  192.             i[1]=strfind(mifx_str,"posY="), i[2]=strfind(mifx_str," posZ=");
  193.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-1));
  194.             lmf_coords[1]=floatstr(fxstr);
  195.             i[1]=strfind(mifx_str,"posZ="), i[2]=strfind(mifx_str,"rotX=");
  196.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-2));
  197.             lmf_coords[2]=floatstr(fxstr);
  198.             i[1]=strfind(mifx_str,"rotX="), i[2]=strfind(mifx_str,"rotY=");
  199.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-2));
  200.             lmf_coords[3]=floatstr(fxstr);
  201.             i[1]=strfind(mifx_str,"rotY="), i[2]=strfind(mifx_str,"rotZ=");
  202.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-2));
  203.             lmf_coords[4]=floatstr(fxstr);
  204.             if(!cnvrt) {
  205.                 funcFound=CallRemoteFunction("OnObjectDataLoad","dfffffff",lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0);
  206.                 if(!funcFound) { mID[loadingMapID][ObjectCount[loadingMapID]+(VehicleCount[loadingMapID])]=CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0); ObjectCount[loadingMapID]++; } }
  207.             else {
  208.                 format(mifx_str,sizeof(mifx_str),"CreateObject(%d,%f,%f,%f,%f,%f,%f,150.0);\r\n",lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5]); fwrite(nMapFile,mifx_str); }
  209.         }
  210.         else if(strfind(mifx_str,"<vehicle ",true)!=-1) {
  211.             i[1]=strfind(mifx_str,"paintjob="), i[2]=strfind(mifx_str," model=");
  212.             strmid(fxstr,mifx_str,(i[1]+10),(i[2]-1));
  213.             veh_data[0]=strval(fxstr);
  214.             i[1]=strfind(mifx_str,"model="), i[2]=strfind(mifx_str," plate=");
  215.             strmid(fxstr,mifx_str,(i[1]+7),(i[2]-1));
  216.             veh_data[1]=strval(fxstr);
  217.             i[1]=strfind(mifx_str,"plate="), i[2]=strfind(mifx_str," interior=");
  218.             strmid(veh_plate,mifx_str,(i[1]+7),(i[2]-1));
  219.             i[1]=strfind(mifx_str,"interior="), i[2]=strfind(mifx_str," dimension=");
  220.             strmid(fxstr,mifx_str,(i[1]+10),(i[2]-1));
  221.             veh_data[2]=strval(fxstr);
  222.             i[1]=strfind(mifx_str,"posX="), i[2]=strfind(mifx_str," posY=");
  223.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-1));
  224.             veh_coords[0]=floatstr(fxstr);
  225.             i[1]=strfind(mifx_str,"posY="), i[2]=strfind(mifx_str," posZ=");
  226.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-1));
  227.             veh_coords[1]=floatstr(fxstr);
  228.             i[1]=strfind(mifx_str,"posZ="), i[2]=strfind(mifx_str," rotX=");
  229.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-1));
  230.             veh_coords[2]=floatstr(fxstr);
  231.             i[1]=strfind(mifx_str,"rotZ="), i[2]=strfind(mifx_str," />");
  232.             strmid(fxstr,mifx_str,(i[1]+6),(i[2]-1));
  233.             veh_coords[3]=floatstr(fxstr);
  234.             if(!cnvrt) {
  235.                 funcFound=CallRemoteFunction("OnVehicleDataLoad","dffffddddds",veh_data[1],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],veh_data[2],veh_color[0],veh_color[1],-1,veh_data[0],veh_plate);
  236.                 if(!funcFound) {//[FX]
  237.                     mID[loadingMapID][VehicleCount[loadingMapID]+(ObjectCount[loadingMapID+1])]=CreateVehicle(veh_data[1],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],veh_color[0],veh_color[1],veh_data[1]);
  238.                     VehicleCount[loadingMapID]++;
  239.                     ChangeVehiclePaintjob(mID[loadingMapID][VehicleCount[loadingMapID]+(ObjectCount[loadingMapID+1])],veh_data[0]);
  240.                     mi_fx_quicksetvehiclenumplate(mID[loadingMapID][VehicleCount[loadingMapID]+(ObjectCount[loadingMapID+1])],veh_plate);
  241.                     LinkVehicleToInterior(mID[loadingMapID][VehicleCount[loadingMapID]+(ObjectCount[loadingMapID+1])],veh_data[2]); } }
  242.             else {
  243.                 format(mifx_str,sizeof(mifx_str),"CreateVehicle(%d,%f,%f,%f,%f,%d,%d,%d);\r\n",veh_data[1],veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],veh_color[0],veh_color[1],veh_data[1]); fwrite(nMapFile,mifx_str); }
  244.         } } }
  245.     if(cnvrt) { fclose(nMapFile), printf("[MAP] Mapfile converted: '%s'",mapfile); }
  246.     else { printf("[MAP] Mapfile loaded: '%s'",mapfile); if(loadingMapID==mapIdCount) { mapIdCount++; } }
  247.     return fclose(map),loadingMapID; }
  248.  
  249. stock UnloadMap(mapid) {
  250.     new mifxstr[6],File:tmpfile=fopen(" ",io_readwrite),strfound=-1,linecount;
  251.     format(mifxstr,sizeof(mifxstr),"-%d)",mapid);
  252.     while(fread(tmpfile,mifx_str)) {
  253.         if(strfind(mifx_str,mifxstr)==-1) {
  254.             format(mname[linecount],sizeof(mname),"%s",mi_fx_getPartOfString(mifx_str,0,'(','-'));
  255.             idofmap[linecount]=strval(mi_fx_getPartOfString(mifx_str,0,'-',')'));
  256.             linecount++; }
  257.         else {
  258.             strfound=strfind(mifx_str,mifxstr); } }
  259.     fclose(tmpfile);
  260.     if(strfound==-1) { return printf("[MAP] * ERROR: Couldn't unload Map File: 'ID %d' <Map Not Loaded>",mapid); }
  261.     fremove(" ");
  262.     tmpfile=fopen(" ",io_write);
  263.     for(new i=0;i<linecount;i++) {
  264.         format(mifx_str,sizeof(mifx_str),"(%s-%d)\r\n",mname[i],idofmap[i]);
  265.         fwrite(tmpfile,mifx_str); }
  266.     fclose(tmpfile);
  267.     for(new i=0;i<ObjectCount[mapid];i++) {
  268.         DestroyObject(mID[mapid][i]);
  269.         mID[mapid][i]=0; }
  270.     ObjectCount[mapid]=-1; mname[mapid]="\0"; idofmap[mapid]=-1;
  271.     return printf("[MAP] Mapfile unloaded: 'ID %d'",mapid),1; }
  272.  
  273. #define ConvertMap(%0) LoadMap(%0,1)
  274.  
  275. stock mi_fx_getPartOfString(const string[], strpos=0, sep=' ',secondsep=256) {  //by FoxHound
  276.     new delstr[256],i[4]={0,...}; secondsep = (secondsep!=256) ? secondsep : sep;
  277.     format(delstr,256,"%s",string);
  278.     for(; i[0]<strlen(delstr); i[0]++) {
  279.         if(delstr[i[0]]==sep) {
  280.             i[3]++;
  281.             if(((i[2]+1)==strpos) && !i[1]) { strdel(delstr,0,i[0]+1),i[0]=0,i[1]=1,sep=secondsep; continue; }
  282.             else if(i[1]) { strdel(delstr,i[0],strlen(delstr)); }
  283.             else { i[2]++; continue; } } }
  284.     if(i[3]<strpos) { delstr="\0"; }
  285.     return delstr; }
  286. stock mi_fx_quicksetvehiclenumplate(veh, string[]) {    //bY FoxHound
  287.     new i=0,Float:vPos[4],vDmg[4],carMod[16],seat[MAX_PLAYERS]={-1,...};
  288.     GetVehiclePos(veh,vPos[0],vPos[1],vPos[2]); GetVehicleZAngle(veh,vPos[3]); GetVehicleDamageStatus(veh,vDmg[0],vDmg[1],vDmg[2],vDmg[3]);
  289.     for(i=0; i<GetMaxPlayers(); i++) {
  290.         if(IsPlayerConnected(i) && IsPlayerInVehicle(i, veh)) {
  291.             seat[i]=GetPlayerVehicleSeat(i); RemovePlayerFromVehicle(i); } }
  292.     for(i=0; i<=13; i++) { carMod[i]=GetVehicleComponentInSlot(veh,i); }
  293.     SetVehicleNumberPlate(veh,string);
  294.     SetVehicleToRespawn(veh); SetVehiclePos(veh,vPos[0],vPos[1],vPos[2]); SetVehicleZAngle(veh,vPos[3]);
  295.     for(i=0; i<=13; i++) { AddVehicleComponent(veh,carMod[i]); }
  296.     UpdateVehicleDamageStatus(veh,vDmg[0],vDmg[1],vDmg[2],vDmg[3]);
  297.     for(i=0; i<GetMaxPlayers(); i++) {
  298.         if(IsPlayerConnected(i) && seat[i]!=-1) {
  299.             PutPlayerInVehicle(i,veh,seat[i]); } } }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement