Advertisement
FoxHound

Easy Map-Including

Mar 12th, 2011
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.18 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.  * @version   : v1.0
  7.  *
  8.  * This file is provided as is (no warranties).
  9.  *
  10.  *  _____         _   _                        _
  11.  * |  ___|       | | | |                      | |
  12.  * | |_ _____  __| |_| | ___  _   _  _ __   __| |
  13.  * |  _/ _ \ \/ /|  _  |/ _ \| | | || '_ \ / _` |
  14.  * | || (_) >  < | | | | (_) | |_| || | | | (_| |
  15.  * \_| \___/_/\_\\_| |_/\___/ \__,_||_| |_|\__,_|
  16.  *
  17.  *          +--+-+-+-+-+-+-+-+-+-+--+
  18.  *          | p r o d u c t i o n s |
  19.  *          +--+-+-+-+-+-+-+-+-+-+--+
  20.  *
  21.  */
  22.  
  23. #include <a_samp>
  24.  
  25. stock LoadMap(mapfile[]) {    //bY FoxHound
  26.     new readline[128];
  27.     format(readline,sizeof(readline),"maps/%s",mapfile);
  28.     if(!fexist(readline)) { return printf("Couldn't load Map File: '%s'",mapfile); }
  29.     new File:map = fopen(readline,io_readwrite);
  30.     for(new i[4]={0,...},Float:lmf_coords[7],lmf_model; fread(map,readline); i[0]++) {
  31.         if((strfind(readline,"CreateObject",true)==-1) || (strfind(readline,"//")!=-1)) { i[0]--; continue; }
  32.         else if((strfind(readline,"/*")!=-1)) { i[3]=1; }
  33.         else if((strfind(readline,"*/")!=-1)) { i[3]=0; }
  34.         if(i[3]) { i[0]--; continue; }
  35.         lmf_model=strval(mi_fx_getPartOfString(readline,1,'(',','));
  36.         lmf_coords[0]=floatstr(mi_fx_getPartOfString(readline,1,','));
  37.         lmf_coords[1]=floatstr(mi_fx_getPartOfString(readline,2,','));
  38.         lmf_coords[2]=floatstr(mi_fx_getPartOfString(readline,3,','));
  39.         lmf_coords[3]=floatstr(mi_fx_getPartOfString(readline,4,','));
  40.         lmf_coords[4]=floatstr(mi_fx_getPartOfString(readline,5,','));
  41.         lmf_coords[5]=floatstr(mi_fx_getPartOfString(readline,6,','));
  42.         lmf_coords[6]=floatstr(mi_fx_getPartOfString(readline,7,',',')'));
  43.         lmf_coords[6] = (lmf_coords[6]) ? lmf_coords[6] : 150.0;
  44.         CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0); }
  45.     return fclose(map),printf("[MAP] Mapfile loaded: %s",mapfile),1; }
  46.  
  47. stock LoadMtaMap(mapfile[]) {    //bY FoxHound
  48.     new readline[192];
  49.     format(readline,sizeof(readline),"maps/%s",mapfile);
  50.     if(!fexist(readline)) { return printf("Couldn't load Map File: '%s'",mapfile); }
  51.     new File:map = fopen(readline,io_readwrite);
  52.     for(new i[4]={0,...},Float:lmf_coords[6],lmf_model,editedline[64]; fread(map,readline); i[0]++) {
  53.         if((strfind(readline,"<object name=",true)==-1) || (strfind(readline,"//")!=-1)) { i[0]--; continue; }
  54.         else if((strfind(readline,"/*")!=-1)) { i[3]=1; }
  55.         else if((strfind(readline,"*/")!=-1)) { i[3]=0; }
  56.         if(i[3]) { i[0]--; continue; }
  57.         i[1]=strfind(readline,"posX="), i[2]=strfind(readline," posY=");
  58.         strmid(editedline,readline,(i[1]+6),(i[2]-1));
  59.         lmf_coords[0]=floatstr(editedline);
  60.         i[1]=strfind(readline,"posY="), i[2]=strfind(readline," posZ=");
  61.         strmid(editedline,readline,(i[1]+6),(i[2]-1));
  62.         lmf_coords[1]=floatstr(editedline);
  63.         i[1]=strfind(readline,"posZ="), i[2]=strfind(readline," rotX=");
  64.         strmid(editedline,readline,(i[1]+6),(i[2]-1));
  65.         lmf_coords[2]=floatstr(editedline);
  66.         i[1]=strfind(readline,"rotX="), i[2]=strfind(readline," rotY=");
  67.         strmid(editedline,readline,(i[1]+6),(i[2]-1));
  68.         lmf_coords[3]=floatstr(editedline);
  69.         i[1]=strfind(readline,"rotY="), i[2]=strfind(readline," rotZ=");
  70.         strmid(editedline,readline,(i[1]+6),(i[2]-1));
  71.         lmf_coords[4]=floatstr(editedline);
  72.         i[1]=strfind(readline,"rotZ="), i[2]=strfind(readline," model=");
  73.         strmid(editedline,readline,(i[1]+6),(i[2]-1));
  74.         lmf_coords[5]=floatstr(editedline);
  75.         i[1]=strfind(readline,"model="), i[2]=strfind(readline," />");
  76.         strmid(editedline,readline,(i[1]+7),(i[2]-1));
  77.         lmf_model=strval(editedline);
  78.         CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0); }
  79.     return fclose(map),printf("[MAP] Mapfile loaded: %s",mapfile),1;
  80. }
  81.  
  82. stock LoadMtaRaceMap(mapfile[]) {    //bY FoxHound
  83.     new readline[92];
  84.     format(readline,sizeof(readline),"maps/%s",mapfile);
  85.     if(!fexist(readline)) { return printf("Couldn't load Map File: '%s'",mapfile); }
  86.     new File:map = fopen(readline,io_readwrite);
  87.     for(new i[5]={0,...},Float:lmf_coords[6],lmf_model; fread(map,readline); i[0]++) {
  88.         if(strfind(readline,"//")!=-1) { i[0]--; continue; }
  89.         else if((strfind(readline,"/*")!=-1)) { i[4]=1; }
  90.         if((strfind(readline,"*/")!=-1)) { i[4]=0; continue; }
  91.         if(i[4]) { i[0]--; continue; }
  92.         if(!i[3]) {
  93.             i[1]=strfind(readline,"<position>"), i[2]=strfind(readline,"</position>");
  94.             if((i[1]==-1) || (i[2]==-1)) { continue; }
  95.             strmid(readline,readline,(i[1]+10),i[2]);
  96.             lmf_coords[0]=floatstr(mi_fx_getPartOfString(readline)), lmf_coords[1]=floatstr(mi_fx_getPartOfString(readline,1)), lmf_coords[2]=floatstr(mi_fx_getPartOfString(readline,2));
  97.             i[3]=1; }
  98.         else if(i[3]==1) {
  99.             i[1]=strfind(readline,"<rotation>"), i[2]=strfind(readline,"</rotation>");
  100.             if((i[1]==-1) || (i[2]==-1)) { continue; }
  101.             strmid(readline,readline,(i[1]+10),i[2]);
  102.             lmf_coords[3]=(floatstr(mi_fx_getPartOfString(readline,2))*57.2958), lmf_coords[4]=(floatstr(mi_fx_getPartOfString(readline,1))*57.2958), lmf_coords[5]=(floatstr(mi_fx_getPartOfString(readline))*57.2958);
  103.             i[3]=2; }
  104.         else if(i[3]==2) {
  105.             i[1]=strfind(readline,"<model>"), i[2]=strfind(readline,"</model>");
  106.             if((i[1]==-1) || (i[2]==-1)) { continue; }
  107.             strmid(readline,readline,(i[1]+7),i[2]);
  108.             lmf_model=strval(readline);
  109.             CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0);
  110.             i[3]=0; } }
  111.     return fclose(map),printf("[MAP] Mapfile loaded: %s",mapfile),1; }
  112.  
  113. stock mi_fx_getPartOfString(const string[], strpos=0, sep=' ',secondsep=256) {  //by FoxHound
  114.     new delstr[256],count[2]={0,...}; secondsep = (secondsep!=256) ? secondsep : sep;
  115.     format(delstr,256,"%s",string);
  116.     for(new i[2]={0,...}; i[0]<strlen(delstr); i[0]++) {
  117.         if(delstr[i[0]]==sep) {
  118.             count[1]++;
  119.             if(((count[0]+1)==strpos) && !i[1]) { strdel(delstr,0,i[0]+1),i={0,1},sep=secondsep; continue; }
  120.             else if(i[1]) { strdel(delstr,i[0],strlen(delstr)); }
  121.             else { count[0]++; continue; } } }
  122.     if(count[1]<strpos) { delstr="\0"; }
  123.     return delstr; }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement