Mr_David
Мастер
Данный инклуд позволяет загружать любые MTA карты.
Загружать полностью карту, то есть объекты, пикапы, трансопрт.
Или же загружать все по отдельности.
Так же есть поддержка авто распознавания стримера. Стример плагин от Incognito и стример Double-O-Objects, распознаются автоматически.
Стримеры MidoStream, BFX нужно задавать самому перед инклудом.
Если вы использовать стример от Incognito и не хотите загружать пикапы через стример, то пишем перед инлудом
Автор:Fro1sha
Загружать полностью карту, то есть объекты, пикапы, трансопрт.
Или же загружать все по отдельности.
Параметры start и end возврашают первый и последний созданный объект, пикап, трансопрт.LoadMtaMap(const mapname[]) // Загружает карту полностью
LoadMtaObject(const mapname[], Float:stream_dis = 200.0, &start = 0, &end = 0) // Загружает только объекты
LoadMtaPickup(const mapname[], type = 2, Float:stream_dis = 100.0, &start = 0, &end = 0) // Загружает только пикапы
LoadMtaVehicle(const mapname[], respawn_delay = 60, &start = 0, &end = 0) // Загружает только транспорт
Так же есть поддержка авто распознавания стримера. Стример плагин от Incognito и стример Double-O-Objects, распознаются автоматически.
Стримеры MidoStream, BFX нужно задавать самому перед инклудом.
PHP:
#define Streamer_MidoStream
//#define Streamer_BFX
#include
Если вы использовать стример от Incognito и не хотите загружать пикапы через стример, то пишем перед инлудом
PHP:
#define NOT_USE_STREAMER_PIC
PHP:
#if defined _mtamap_included
#endinput
#endif
#define _mtamap_included
#if defined _streamer_included && !defined Streamer_Incognito
#define Streamer_Incognito
#endif
#if defined _DOO_included && !defined Streamer_DOO
#define Streamer_DOO
#endif
/**
native LoadMtaMap(const mapname[]) // Загружает карту полностью
native LoadMtaObject(const mapname[], Float:stream_dis = 200.0, &start = 0, &end = 0) // Загружает только объекты
native LoadMtaPickup(const mapname[], type = 2, Float:stream_dis = 100.0, &start = 0, &end = 0) // Загружает только пикапы
native LoadMtaVehicle(const mapname[], respawn_delay = 60, &start = 0, &end = 0) // Загружает только транспорт
**/
#define LOAD_STREAM_DIS_OBJ 200.0
#define LOAD_STREAM_DIS_PIC 100.0
#define LOAD_RESPAWN_DELAY 60
stock LoadMtaMap(mapname[])
{
new File:map = fopen(mapname, io_read);
if(map)
{
new
bool:succes,
temp[20],
Data[512],
model,
#if defined Streamer_Incognito || defined Streamer_BFX
interior,
#endif
dimension,
Float:posX,
Float:posY,
Float:posZ,
Float:rotX,
Float:rotY,
Float:rotZ;
while(fread(map, Data))
{
if(strfind(Data, "<object") != -1)
{
if(!succes) succes = true;
GetMapParams(Data, "model", temp);
model = strval(temp);
GetMapParams(Data, "posX", temp);
posX = floatstr(temp);
GetMapParams(Data, "posY", temp);
posY = floatstr(temp);
GetMapParams(Data, "posZ", temp);
posZ = floatstr(temp);
GetMapParams(Data, "rotX", temp);
rotX = floatstr(temp);
GetMapParams(Data, "rotY", temp);
rotY = floatstr(temp);
GetMapParams(Data, "rotZ", temp);
rotZ = floatstr(temp);
#if defined Streamer_Incognito || defined Streamer_BFX
GetMapParams(Data, "interior", temp);
interior = strval(temp);
#endif
#if defined Streamer_Incognito || defined Streamer_DOO || defined Streamer_BFX
GetMapParams(Data, "dimension", temp);
dimension = strval(temp);
#endif
#if defined Streamer_Incognito
CreateDynamicObject(model, posX, posY, posZ, rotX, rotY, rotZ, dimension, interior, -1, LOAD_STREAM_DIS_OBJ);
#endif
#if defined Streamer_DOO
CreateStreamObject(model, posX, posY, posZ, rotX, rotY, rotZ, LOAD_STREAM_DIS_OBJ, dimension);
#endif
#if defined Streamer_MidoStream
CreateStreamObject(model, posX, posY, posZ, rotX, rotY, rotZ, LOAD_STREAM_DIS_OBJ);
#endif
#if defined Streamer_BFX
b_CreateObject(model, posX, posY, posZ, rotX, rotY, rotZ, interior, dimension, LOAD_STREAM_DIS_OBJ);
#endif
#if !defined Streamer_Incognito && !defined Streamer_DOO && !defined Streamer_MidoStream && !defined Streamer_BFX
CreateObject(model, posX, posY, posZ, rotX, rotY, rotZ);
#endif
}
if(strfind(Data, "<pickup") != -1)
{
if(!succes) succes = true;
GetMapParams(Data, "posX", temp);
posX = floatstr(temp);
GetMapParams(Data, "posY", temp);
posY = floatstr(temp);
GetMapParams(Data, "posZ", temp);
posZ = floatstr(temp);
#if defined Streamer_Incognito && !defined NOT_USE_STREAMER_PIC
GetMapParams(Data, "interior", temp);
interior = strval(temp);
#endif
GetMapParams(Data, "dimension", temp);
dimension = strval(temp);
GetMapParams(Data, "type", temp);
if(!strcmp(temp, "health")) model = 1240;
else if(!strcmp(temp, "armor")) model = 1242;
else model = MtaMap_GetWeaponModel(strval(temp));
#if defined Streamer_Incognito && !defined NOT_USE_STREAMER_PIC
CreateDynamicPickup(model, 2, posX, posY, posZ, dimension, interior, -1, LOAD_STREAM_DIS_PIC);
#else
CreatePickup(model, 2, posX, posY, posZ, dimension);
#endif
}
if(strfind(Data, "<vehicle") != -1)
{
if(!succes) succes = true;
GetMapParams(Data, "model", temp);
model = strval(temp);
GetMapParams(Data, "posX", temp);
posX = floatstr(temp);
GetMapParams(Data, "posY", temp);
posY = floatstr(temp);
GetMapParams(Data, "posZ", temp);
posZ = floatstr(temp);
GetMapParams(Data, "rotZ", temp);
rotZ = floatstr(temp);
CreateVehicle(model, posX, posY, posZ, rotZ, -1, -1, LOAD_RESPAWN_DELAY);
}
}
fclose(map);
if(!succes)
{
printf("Карта: \"%s\" не загружена", mapname);
return 0;
}
else printf("Карта: \"%s\" загружена", mapname);
return 1;
}
return 0;
}
stock LoadMtaObject(const mapname[], Float:stream_dis = 200.0, &start = 0, &end = 0)
{
#pragma unused stream_dis
new File:map = fopen(mapname, io_read);
if(map)
{
new
temp[20],
Data[512],
model,
#if defined Streamer_Incognito || defined Streamer_BFX
interior,
#endif
#if defined Streamer_Incognito || defined Streamer_DOO || defined Streamer_BFX
dimension,
#endif
Float:posX,
Float:posY,
Float:posZ,
Float:rotX,
Float:rotY,
Float:rotZ;
start = -1;
end = -1;
while(fread(map, Data))
{
if(strfind(Data, "<object") != -1)
{
GetMapParams(Data, "model", temp);
model = strval(temp);
GetMapParams(Data, "posX", temp);
posX = floatstr(temp);
GetMapParams(Data, "posY", temp);
posY = floatstr(temp);
GetMapParams(Data, "posZ", temp);
posZ = floatstr(temp);
GetMapParams(Data, "rotX", temp);
rotX = floatstr(temp);
GetMapParams(Data, "rotY", temp);
rotY = floatstr(temp);
GetMapParams(Data, "rotZ", temp);
rotZ = floatstr(temp);
#if defined Streamer_Incognito || defined Streamer_BFX
GetMapParams(Data, "interior", temp);
interior = strval(temp);
#endif
#if defined Streamer_Incognito || defined Streamer_DOO || defined Streamer_BFX
GetMapParams(Data, "dimension", temp);
dimension = strval(temp);
#endif
#if defined Streamer_Incognito
if(start == -1) start = CreateDynamicObject(model, posX, posY, posZ, rotX, rotY, rotZ, dimension, interior, -1, stream_dis);
else end = CreateDynamicObject(model, posX, posY, posZ, rotX, rotY, rotZ, dimension, interior, -1, stream_dis);
#endif
#if defined Streamer_DOO
if(start == -1) start = CreateStreamObject(model, posX, posY, posZ, rotX, rotY, rotZ, stream_dis, dimension);
else end = CreateStreamObject(model, posX, posY, posZ, rotX, rotY, rotZ, stream_dis, dimension);
#endif
#if defined Streamer_MidoStream
if(start == -1) start = CreateStreamObject(model, posX, posY, posZ, rotX, rotY, rotZ, stream_dis);
else end = CreateStreamObject(model, posX, posY, posZ, rotX, rotY, rotZ, stream_dis);
#endif
#if defined Streamer_BFX
if(start == -1) start = b_CreateObject(model, posX, posY, posZ, rotX, rotY, rotZ, interior, dimension, stream_dis);
else end = b_CreateObject(model, posX, posY, posZ, rotX, rotY, rotZ, interior, dimension, stream_dis);
#endif
#if !defined Streamer_Incognito && !defined Streamer_DOO && !defined Streamer_MidoStream && !defined Streamer_BFX
if(start == -1) start = CreateObject(model, posX, posY, posZ, rotX, rotY, rotZ);
else end = CreateObject(model, posX, posY, posZ, rotX, rotY, rotZ);
#endif
}
}
fclose(map);
if(start == -1)
{
printf("Карта: \"%s\" объекты не были загружены", mapname);
return 0;
}
else
{
if(end == -1) end = start;
printf("Карта: \"%s\" объекты загружены", mapname);
}
return 1;
}
return 0;
}
stock LoadMtaPickup(const mapname[], type = 2, Float:stream_dis = 100.0, &start = 0, &end = 0)
{
#pragma unused stream_dis
new File:map = fopen(mapname, io_read);
if(map)
{
new
temp[20],
Data[512],
model,
#if defined Streamer_Incognito && !defined NOT_USE_STREAMER_PIC
interior,
#endif
dimension,
Float:posX,
Float:posY,
Float:posZ;
start = -1;
end = -1;
while(fread(map, Data))
{
if(strfind(Data, "<pickup") != -1)
{
GetMapParams(Data, "posX", temp);
posX = floatstr(temp);
GetMapParams(Data, "posY", temp);
posY = floatstr(temp);
GetMapParams(Data, "posZ", temp);
posZ = floatstr(temp);
#if defined Streamer_Incognito && !defined NOT_USE_STREAMER_PIC
GetMapParams(Data, "interior", temp);
interior = strval(temp);
#endif
GetMapParams(Data, "dimension", temp);
dimension = strval(temp);
GetMapParams(Data, "type", temp);
if(!strcmp(temp, "health")) model = 1240;
else if(!strcmp(temp, "armor")) model = 1242;
else model = MtaMap_GetWeaponModel(strval(temp));
#if defined Streamer_Incognito && !defined NOT_USE_STREAMER_PIC
if(start == -1) start = CreateDynamicPickup(model, type, posX, posY, posZ, dimension, interior, -1, stream_dis);
else end = CreateDynamicPickup(model, type, posX, posY, posZ, dimension, interior, -1, stream_dis);
#else
if(start == -1) start = CreatePickup(model, type, posX, posY, posZ, dimension);
else end = CreatePickup(model, type, posX, posY, posZ, dimension);
#endif
}
}
fclose(map);
if(start == -1)
{
printf("Карта: \"%s\" пикапы не были загружены", mapname);
return 0;
}
else
{
if(end == -1) end = start;
printf("Карта: \"%s\" пикапы загружены", mapname);
}
return 1;
}
return 0;
}
stock LoadMtaVehicle(const mapname[], respawn_delay = 60, &start = 0, &end = 0)
{
new File:map = fopen(mapname, io_read);
if(map)
{
new
temp[20],
Data[512],
model,
Float:posX,
Float:posY,
Float:posZ,
Float:rotZ;
start = -1;
end = -1;
while(fread(map, Data))
{
if(strfind(Data, "<vehicle") != -1)
{
GetMapParams(Data, "model", temp);
model = strval(temp);
GetMapParams(Data, "posX", temp);
posX = floatstr(temp);
GetMapParams(Data, "posY", temp);
posY = floatstr(temp);
GetMapParams(Data, "posZ", temp);
posZ = floatstr(temp);
GetMapParams(Data, "rotZ", temp);
rotZ = floatstr(temp);
if(start == -1) start = CreateVehicle(model, posX, posY, posZ, rotZ, -1, -1, respawn_delay);
else end = CreateVehicle(model, posX, posY, posZ, rotZ, -1, -1, respawn_delay);
}
}
fclose(map);
if(start == -1)
{
printf("Карта: \"%s\" транспорт не был загружен", mapname);
return 0;
}
else
{
if(end == -1) end = start;
printf("Карта: \"%s\" транспорт загружен", mapname);
}
return 1;
}
return 0;
}
#undef LOAD_STREAM_DIS_OBJ
#undef LOAD_STREAM_DIS_PIC
#undef LOAD_RESPAWN_DELAY
stock GetMapParams(const source[], const params[], dest[], maxSize = sizeof(dest))
{
new
st = -1,
i = -1;
dest[0] = 0;
i = strfind(source, params);
if(i == -1) return 0;
for( ; ; i++ )
{
if(source[i] == '"')
{
if(st == -1) st = i + 1;
else
{
strmid(dest, source, st, i, maxSize);
goto map_end;
}
}
}
map_end:
return 1;
}
stock MtaMap_GetWeaponModel(weaponid)
{
switch(weaponid)
{
case 1: return 331;
case 2..8: return weaponid+331;
case 9: return 341;
case 10..15: return weaponid+311;
case 16..18: return weaponid+326;
case 22..29: return weaponid+324;
case 30,31: return weaponid+325;
case 32: return 372;
case 33..45: return weaponid+324;
case 46: return 371;
}
return 0;
}
Автор:Fro1sha
Последнее редактирование модератором:
