Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Easy Mapincluding
- * (c) Copyright 2011-2012 by FoxHound
- *
- * @author : FoxHound aka PSPgamer_10
- * @date : 13 March 2011
- * @version : v1.0
- *
- * This file is provided as is (no warranties).
- * ___ ___
- * /\__\ /| |
- * /:/ _/_ |:| |
- * /:/ /\__\ |:| |
- * /:/ /:/ / __|:|__|
- * /:/_/:/ / /::::\__\_____
- * \:\/:/ / ~~~~\::::/___/
- * \::/__/ |:|~~|
- * \:\ \ |:| |
- * \:\__\ |:|__|
- * \/__/ |/__/
- * +--+-+-+-+-+-+-+-+-+-+--+
- * | p r o d u c t i o n s |
- * +--+-+-+-+-+-+-+-+-+-+--+
- *
- */
- #include <a_samp>
- forward OnObjectDataLoad(modelid,Float:posX,Float:posY,Float:posZ,Float:rotX,Float:rotY,Float:rotZ,Float:drawdistance);
- forward OnVehicleDataLoad(vehicletype,Float:x,Float:y,Float:z,Float:rotation,interior,color1,color2,respawn_delay,paintjob,numberplate[]);
- stock LoadMap(mapfile[]) { //bY FoxHound
- new readline[128];
- format(readline,sizeof(readline),"maps/%s",mapfile);
- if(!fexist(readline)) { return printf("Couldn't load Map File: '%s'",mapfile); }
- new File:map = fopen(readline,io_readwrite);
- for(new i[4]={0,...},Float:lmf_coords[7],lmf_model,Float:veh_coords[4],veh_color[2]; fread(map,readline); i[0]++) {
- if(((strfind(readline,"Object",true)==-1) && (strfind(readline,"Vehicle",true)==-1)) || (strfind(readline,"//")!=-1)) { i[0]--; continue; }
- else if((strfind(readline,"/*")!=-1)) { i[3]=1; }
- else if((strfind(readline,"*/")!=-1)) { i[3]=0; }
- if(i[3]) { i[0]--; continue; }
- // OBJECTLOADER
- if(strfind(readline,"Object",true)!=-1) {
- lmf_model=strval(mi_fx_getPartOfString(readline,1,'(',','));
- lmf_coords[0]=floatstr(mi_fx_getPartOfString(readline,1,','));
- lmf_coords[1]=floatstr(mi_fx_getPartOfString(readline,2,','));
- lmf_coords[2]=floatstr(mi_fx_getPartOfString(readline,3,','));
- lmf_coords[3]=floatstr(mi_fx_getPartOfString(readline,4,','));
- lmf_coords[4]=floatstr(mi_fx_getPartOfString(readline,5,','));
- lmf_coords[5]=floatstr(mi_fx_getPartOfString(readline,6,','));
- lmf_coords[6]=floatstr(mi_fx_getPartOfString(readline,7,',',')'));
- lmf_coords[6] = (lmf_coords[6]) ? lmf_coords[6] : 150.0;
- 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]);
- if(!funcFound) { CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],lmf_coords[6]); }
- }
- if(strfind(readline,"Vehicle",true)!=-1) {
- // VEHICLELOEADER
- new veh_data[2]={0,0};
- veh_data[0]=strval(mi_fx_getPartOfString(readline,1,'(',','));
- veh_coords[0]=floatstr(mi_fx_getPartOfString(readline,1,','));
- veh_coords[1]=floatstr(mi_fx_getPartOfString(readline,2,','));
- veh_coords[2]=floatstr(mi_fx_getPartOfString(readline,3,','));
- veh_coords[3]=floatstr(mi_fx_getPartOfString(readline,4,','));
- veh_color[0]=strval(mi_fx_getPartOfString(readline,5,','));
- veh_color[1]=strval(mi_fx_getPartOfString(readline,6,','));
- veh_data[1]=strval(mi_fx_getPartOfString(readline,7,',',')'));
- veh_data[1] = (!veh_data[1]) ? -1 : veh_data[1];
- 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");
- if(!funcFound) { CreateVehicle(veh_model,veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],veh_color[0],veh_color[1],veh_data[1]); }
- } }
- return fclose(map),printf("[MAP] Mapfile loaded: %s",mapfile),1; }
- stock LoadMtaMap(mapfile[]) { //bY FoxHound
- new readline[256];
- format(readline,sizeof(readline),"maps/%s",mapfile);
- if(!fexist(readline)) { return printf("Couldn't load Map File: '%s'",mapfile); }
- new File:map = fopen(readline,io_readwrite);
- for(new i[4]={0,...},Float:lmf_coords[6],lmf_model,editedline[64]; fread(map,readline); i[0]++) {
- if(((strfind(readline,"<object id=",true)==-1) && (strfind(readline,"<object name=",true)==-1) && (strfind(readline,"<vehicle id=",true)==-1)) || (strfind(readline,"//")!=-1)) { i[0]--; continue; }
- else if((strfind(readline,"/*")!=-1)) { i[3]=1; }
- else if((strfind(readline,"*/")!=-1)) { i[3]=0; }
- if(i[3]) { i[0]--; continue; }
- if((strfind(readline,"<object id=",true)!=-1) || (strfind(readline,"<object name=",true)!=-1)) {
- if(strfind(readline,"<object id=",true)!=-1) {
- if(strfind(readline," doublesided=",true)!=-1) {
- i[1]=strfind(readline,"model="), i[2]=strfind(readline," interior=");
- strmid(editedline,readline,(i[1]+7),(i[2]-1));
- lmf_model=strval(editedline);
- i[1]=strfind(readline,"rotZ="), i[2]=strfind(readline,"/>");
- strmid(editedline,readline,(i[1]+6),(i[2]-2));
- lmf_coords[5]=floatstr(editedline); }
- else {
- i[1]=strfind(readline,"model="), i[2]=strfind(readline," posX");
- strmid(editedline,readline,(i[1]+7),(i[2]-1));
- lmf_model=strval(editedline);
- i[1]=strfind(readline,"rotZ="), i[2]=strfind(readline,"dimension=");
- strmid(editedline,readline,(i[1]+6),(i[2]-2));
- lmf_coords[5]=floatstr(editedline); } }
- else if(strfind(readline,"<object name=",true)!=-1) { // Added for Delux Map Converter...
- i[1]=strfind(readline,"rotZ="), i[2]=strfind(readline," model=");
- strmid(editedline,readline,(i[1]+6),(i[2]-1));
- lmf_coords[5]=floatstr(editedline);
- i[1]=strfind(readline,"model="), i[2]=strfind(readline," />");
- strmid(editedline,readline,(i[1]+7),(i[2]-1));
- lmf_model=strval(editedline); }
- i[1]=strfind(readline,"posX="), i[2]=strfind(readline," posY=");
- strmid(editedline,readline,(i[1]+6),(i[2]-1));
- lmf_coords[0]=floatstr(editedline);
- i[1]=strfind(readline,"posY="), i[2]=strfind(readline," posZ=");
- strmid(editedline,readline,(i[1]+6),(i[2]-1));
- lmf_coords[1]=floatstr(editedline);
- i[1]=strfind(readline,"posZ="), i[2]=strfind(readline,"rotX=");
- strmid(editedline,readline,(i[1]+6),(i[2]-2));
- lmf_coords[2]=floatstr(editedline);
- i[1]=strfind(readline,"rotX="), i[2]=strfind(readline,"rotY=");
- strmid(editedline,readline,(i[1]+6),(i[2]-2));
- lmf_coords[3]=floatstr(editedline);
- i[1]=strfind(readline,"rotY="), i[2]=strfind(readline,"rotZ=");
- strmid(editedline,readline,(i[1]+6),(i[2]-2));
- lmf_coords[4]=floatstr(editedline);
- 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);
- if(!funcFound) { CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0); }
- }
- else if(strfind(readline,"<vehicle ",true)!=-1) {
- new veh_data[3],veh_plate[16],Float:veh_coords[4],veh_color[2]={-1,-1};
- i[1]=strfind(readline,"paintjob="), i[2]=strfind(readline," model=");
- strmid(editedline,readline,(i[1]+10),(i[2]-1));
- veh_data[0]=strval(editedline);
- i[1]=strfind(readline,"model="), i[2]=strfind(readline," plate=");
- strmid(editedline,readline,(i[1]+7),(i[2]-1));
- veh_data[1]=strval(editedline);
- i[1]=strfind(readline,"plate="), i[2]=strfind(readline," interior=");
- strmid(veh_plate,readline,(i[1]+7),(i[2]-1));
- i[1]=strfind(readline,"interior="), i[2]=strfind(readline," dimension=");
- strmid(editedline,readline,(i[1]+10),(i[2]-1));
- veh_data[2]=strval(editedline);
- i[1]=strfind(readline,"posX="), i[2]=strfind(readline," posY=");
- strmid(editedline,readline,(i[1]+6),(i[2]-1));
- veh_coords[0]=floatstr(editedline);
- i[1]=strfind(readline,"posY="), i[2]=strfind(readline," posZ=");
- strmid(editedline,readline,(i[1]+6),(i[2]-1));
- veh_coords[1]=floatstr(editedline);
- i[1]=strfind(readline,"posZ="), i[2]=strfind(readline," rotX=");
- strmid(editedline,readline,(i[1]+6),(i[2]-1));
- veh_coords[2]=floatstr(editedline);
- i[1]=strfind(readline,"rotZ="), i[2]=strfind(readline," />");
- strmid(editedline,readline,(i[1]+6),(i[2]-1));
- veh_coords[3]=floatstr(editedline);
- 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);
- if(!funcFound) {
- new mi_fx_vehid;
- mi_fx_vehid = CreateVehicle(veh_model,veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],veh_color[0],veh_color[1],veh_data[1]);
- ChangeVehiclePaintjob(mi_fx_vehid,veh_data[0]);
- mi_fx_quicksetvehiclenumplate(mi_fx_vehid,veh_plate);
- LinkVehicleToInterior(mi_fx_vehid,veh_data[2]); }
- } }
- return fclose(map),printf("[MAP] Mapfile loaded: %s",mapfile),1; }
- stock LoadMtaRaceMap(mapfile[]) { //bY FoxHound
- new readline[196],funcFound=0;
- format(readline,sizeof(readline),"maps/%s",mapfile);
- if(!fexist(readline)) { return printf("Couldn't load Map File: '%s'",mapfile); }
- new File:map = fopen(readline,io_readwrite);
- for(new i[5]={0,...},Float:lmf_coords[6],lmf_model,veh_model,Float:veh_coords[4]; fread(map,readline); i[0]++) {
- if(strfind(readline,"//")!=-1) { i[0]--; continue; }
- else if((strfind(readline,"/*")!=-1)) { i[4]=1; }
- if((strfind(readline,"*/")!=-1)) { i[4]=0; continue; }
- if(i[4]) { i[0]--; continue; }
- if(strfind(readline,"spawnpoint",true)!=-1)
- {
- new fxstr[48];
- i[1]=strfind(readline,"<vehicle>"), i[2]=strfind(readline,"</vehicle>");
- strmid(fxstr,readline,(i[1]+9),i[2]);
- veh_model=strval(fxstr);
- i[1]=strfind(readline,"<position>"), i[2]=strfind(readline,"</position>");
- strmid(fxstr,readline,(i[1]+10),i[2]);
- 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));
- i[1]=strfind(readline,"<rotation>"), i[2]=strfind(readline,"</rot");
- strmid(fxstr,readline,(i[1]+10),i[2]);
- veh_coords[3]=floatstr(mi_fx_getPartOfString(fxstr));
- funcFound=CallRemoteFunction("OnVehicleDataLoad","dffffddddds",veh_model,veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],0,-1,-1,-1,3,"FXGA-21");
- if(!funcFound) { CreateVehicle(veh_model,veh_coords[0],veh_coords[1],veh_coords[2],veh_coords[3],-1,-1,-1); }
- }
- if(!i[3]) {
- i[1]=strfind(readline,"<position>"), i[2]=strfind(readline,"</position>");
- if((i[1]==-1) || (i[2]==-1)) { continue; }
- strmid(readline,readline,(i[1]+10),i[2]);
- 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));
- i[3]=1; }
- else if(i[3]==1) {
- i[1]=strfind(readline,"<rotation>"), i[2]=strfind(readline,"</rotation>");
- if((i[1]==-1) || (i[2]==-1)) { continue; }
- strmid(readline,readline,(i[1]+10),i[2]);
- 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);
- i[3]=2; }
- else if(i[3]==2) {
- i[1]=strfind(readline,"<model>"), i[2]=strfind(readline,"</model>");
- if((i[1]==-1) || (i[2]==-1)) { continue; }
- strmid(readline,readline,(i[1]+7),i[2]);
- lmf_model=strval(readline);
- 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);
- if(!funcFound) { CreateObject(lmf_model,lmf_coords[0],lmf_coords[1],lmf_coords[2],lmf_coords[3],lmf_coords[4],lmf_coords[5],150.0); }
- i[3]=0; } }
- return fclose(map),printf("[MAP] Mapfile loaded: %s",mapfile),1; }
- stock QuickLoadMap(mapfile[]) {//EXTENSIONS: ".mtarace" - ".mtadm" - ".samp"
- new string[16];
- mi_fx_strpartEx(mapfile,string,'.');
- if(!strcmp(string,"mtarace",true)) { return LoadMtaRaceMap(mapfile); }
- else if(!strcmp(string,"mtadm",true)) { return LoadMtaMap(mapfile); }
- else if(!strcmp(string,"samp",true)) { return LoadMap(mapfile); }
- return printf("[MAP] * ERROR: Unable to read Dataextension (%s)!\n[MAP] * INFO: Please try to load the Map manually (Load(...)Map)!",mapfile); }
- stock mi_fx_getPartOfString(const string[], strpos=0, sep=' ',secondsep=256) { //by FoxHound
- new delstr[256],count[2]={0,...}; secondsep = (secondsep!=256) ? secondsep : sep;
- format(delstr,256,"%s",string);
- for(new i[2]={0,...}; i[0]<strlen(delstr); i[0]++) {
- if(delstr[i[0]]==sep) {
- count[1]++;
- if(((count[0]+1)==strpos) && !i[1]) { strdel(delstr,0,i[0]+1),i={0,1},sep=secondsep; continue; }
- else if(i[1]) { strdel(delstr,i[0],strlen(delstr)); }
- else { count[0]++; continue; } } }
- if(count[1]<strpos) { delstr="\0"; }
- return delstr; }
- stock mi_fx_strpartEx(const string[], dest[], seperator=' ', strpos=1) { //by FoxHound
- new i=0, delstr[128], len=strlen(string), posCount=0;
- format(delstr,len+1,"%s",string);
- if(strpos>0) {
- for(; i<len; i++) {
- if(delstr[i]==seperator) {
- if((posCount+1)==strpos) { strdel(delstr,0,(i+1)); break; }
- else { posCount++; continue; } } } }
- return format(dest,sizeof(delstr),"%s",delstr); }
- stock mi_fx_quicksetvehiclenumplate(veh, string[]) { //bY FoxHound
- new i=0,Float:vPos[4],vDmg[4],carMod[16],seat[MAX_PLAYERS]={-1,...};
- GetVehiclePos(veh,vPos[0],vPos[1],vPos[2]);
- GetVehicleZAngle(veh,vPos[3]);
- GetVehicleDamageStatus(veh,vDmg[0],vDmg[1],vDmg[2],vDmg[3]);
- for(i=0; i<GetMaxPlayers(); i++) {
- if(IsPlayerConnected(i) && IsPlayerInVehicle(i, veh)) {
- seat[i]=GetPlayerVehicleSeat(i); RemovePlayerFromVehicle(i); } }
- for(i=0; i<=13; i++) { carMod[i]=GetVehicleComponentInSlot(veh,i); }
- /**/SetVehicleNumberPlate(veh,string);
- SetVehicleToRespawn(veh);
- SetVehiclePos(veh,vPos[0],vPos[1],vPos[2]);
- SetVehicleZAngle(veh,vPos[3]);
- for(i=0; i<=13; i++) { AddVehicleComponent(veh,carMod[i]); }
- UpdateVehicleDamageStatus(veh,vDmg[0],vDmg[1],vDmg[2],vDmg[3]);
- for(i=0; i<GetMaxPlayers(); i++) {
- if(IsPlayerConnected(i) && seat[i]!=-1) {
- PutPlayerInVehicle(i,veh,seat[i]); } } }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement