[Include] San Andreas Object Image Loader
#1

Hi I would like to present San Andreas Object Image Loader.

What is that ? This is the script allows you to load binary objects file which have a dynamic structure.

Technical Data:

- Unique compressed file structure (Dynamic moving datagram)

- Encrypted information: Author, Version, Description

- Ability to load, unload the selected files

- Compression performance. Ratio ~33%

- Filtering ip/port server, if anyone needs

- Support for SA:MP 0.3.8

Videos:
SAOI File Generator
SAOI File Manager v1.9

Benchmark:
PHP Code:
Total loaded files 173/173 in 228 ms
Total loaded items 31204 
Download:
SAOI Full
3DTryg.inc Thread
SWAP.inc
StreamerFunction.inc Thread
IZCMD / ZCMD

SAOI File Manager Plugins:
Streamer (REQUIRED)
SScanf (REQUIRED)
ColAndreas OR MapAndreas (REQUIRED)
YSF (NOT REQUIRED)

Non-Registered Users:
Bug Report
Reply
#2

Dope, nice
Reply
#3

Usefull!
Keep releasing this kind of includes!
Reply
#4

Update SAOI v1.4.3:


- Added position flag for file.

- Increase speed for function:
PHP Code:
bool:UnloadObjectImage(&SAOI:index); 
- Added functions:
PHP Code:
GetSAOIFileSize(SAOI:index);
bool:GetSAOIPositionFlag(SAOI:index,&Float:x,&Float:y,&Float:z,&Float:angle,&virtualworld,&interior);
SAOI:SetSAOIPositionFlag(const name[],Float:x,Float:y,Float:z,Float:angle,virtualworld,interior); 


Update SAOI File Manager v1.1.0:


- Update Menu

- Fix dialog button

- Added new commands:
PHP Code:
/streaminfo show stream info
/saoitp teleport to saoi flag 
Video:
https://www.youtube.com/watch?v=bNXAT_MzQUI

Notice:

This update does not require re-conversion of old SAOI files
Reply
#5

Nice good job!
Reply
#6

It's like Texture Studio's loadmap? Didn't get the point of this too yet, can you explain it better?
Reply
#7

Quote:
Originally Posted by n0minal
View Post
It's like Texture Studio's loadmap? Didn't get the point of this too yet, can you explain it better?
This is object loader not editor.
Reply
#8

Quote:
Originally Posted by AbyssMorgan
View Post
This is object loader not editor.
Sorry I made a mistake, I was about to say Texture Studio's Export/Import Map, but what's the point of this include? Just load objects from a file?
Reply
#9

Quote:
Originally Posted by n0minal
View Post
Sorry I made a mistake, I was about to say Texture Studio's Export/Import Map, but what's the point of this include? Just load objects from a file?
I suggested that texture studio had the option for export objects to saoi file.
Reply
#10

Update SAOI File Manager v1.2.0:


- Update 3DTryg v3.0.4

- Update StreamerFunction v2.5.5

- Added commands:
PHP Code:
/addpickupinfo adds descriptions of pickups
/delpickupinfo removes descriptions of pickups
/addmapiconinfo adds descriptions of mapicons
/delmapiconinfo removes descriptions of mapicons

/tptoobj teleport to object
/delobject destroy dynamic object
/delpickup destroy dynamic pickup
/delmapicon destroy dynamic mapicon
/objmaterial get object materials
/objmaterialtext get object material text 
- Updated commands:
PHP Code:
/saoiinfo   //added quota
/streaminfo //fix visible area count

/saoiload   //added check if file exist
/saoireload //added check if file exist 
- Increased MAX_FIND_OBJECT from 1000 to 2048

- Update Generator for Windows

Download:
SAOI
Reply
#11

Update SAOI v1.4.4:

- Added new flag for creation date
- Added function:
PHP код:
bool:GetSAOIFileCreationData(SAOI:index,output[],max_dest sizeof(output)); 
Update SAOI_FileManager v1.3.0:

- Fixed saoiinfo dialog
- Updated 3DTryg.inc
- Updated StreamerFunction.inc
- Added commands for YSF plugin
PHP код:
/addvehicleinfo adds descriptions of vehicles
/delvehicleinfo removes descriptions of vehicles 
- Added command:
PHP код:
/saoi shows statistics saoi 
Notice:
This update does not require re-conversion of old SAOI files


Download:
SAOI
Reply
#12

Impressive.
Reply
#13

Looks very promising! One question.. does this support RemoveBuildingForPlayer?
Reply
#14

Quote:
Originally Posted by Chaprnks
Посмотреть сообщение
Looks very promising! One question.. does this support RemoveBuildingForPlayer?
Currently not because it would require adding information to the array, and then use this information, although is possible to add support for this instruction.

//edit: Support for instruction RemoveBuildingForPlayer coming soon !
http://8.ct8.pl/#updates
Reply
#15

Update SAOI v1.5.0:

- Fixed Issues: When loading a file saoi fails, withdraw it rently objects from the file.
- Fixed Issues: Added debug information when the file could not perform parsing.

- Added support for:
PHP код:
RemoveBuildingForPlayer(playeridmodelidFloat:fXFloat:fYFloat:fZFloat:fRadius); 
- Issues with RemoveBuildingForPlayer:
When a saoi file is unloaded, online players will not see again removed buildings.
They see them only after re-entering the server.

- Added function:
PHP код:
SAOI:SaveRemoveBuilding(const name[],modelid,Float:x,Float:y,Float:z,Float:radius); 
- Added extended functions:
PHP код:
SAOI_GetFreeRemoveBuildingID();
SAOI_RemoveBuilding(SAOI:index,modelid,Float:x,Float:y,Float:z,Float:radius);
SAOI_GetRemoveBuilding(remove_id,&SAOI:index,&modelid,&Float:x,&Float:y,&Float:z,&Float:radius);
SAOI_DropRemoveBuildings(SAOI:index);
SAOI_OnErrorCleanup(SAOI:index,object_count);
SAOI_RemoveBuildingsForPlayer(playerid);
SAOI_UpdateBuildingsForPlayer(playerid,SAOI:index);
SAOI_CountRemovedBuildings();
SAOI_GetMemoryLoaded(); 
- Added callback:
PHP код:
OnSAOIRemovedBuildingsForPlayer(playerid,buildings); 
- Renamed functions:
PHP код:
IsSAOISlotFree -> SAOI_IsSlotFree
FindFreeSAOIID 
-> SAOI_GetFreeID 
- Updated function:
Код:
bool:GetSAOILoadData(SAOI:index,name[],&object_cnt=0,&material_cnt=0,&material_text_cnt=0,&load_time=0,&active_tick=0,&removed_object=0);
Update SAOI_FileManager v1.4.0:

- Updated commands:
PHP код:
/saoi
/saoiinfo 
- Added commands:
PHP код:
/addrbinfo adds descriptions of removed buildings
/delrbinfo removes descriptions of removed buildings 
Screenshots for latest updates:
http://imgur.com/a/H1HaQ

Example Code:
PHP код:
SetSAOIPositionFlag(MY_SAOI_FILE,1283.3323,1192.4436,10.8008,0.0000,0,0);
//LV-LOT Old Gate
RemoveBuildingForPlayer(playerid,8311,1277.0,1206.8,12.9,1.0);
RemoveBuildingForPlayer(playerid,8312,1277.0,1206.8,12.9,1.0);
//LV-LOT Back Gate (VW:0 INT:0 PID:-1 SD:300)
CreateDynamicObject(987,1297.4541016,1203.0205078,12.2528601,0.0000000,0.0000000,90.0000000,0,0,-1,300);
CreateDynamicObject(987,1277.3867188,1214.8486328,12.4097986,0.0000000,0.0000000,270.0000000,0,0,-1,300);
CreateDynamicObject(8210,1257.5048828,1333.0727539,12.8196115,0.0000000,0.0000000,90.0000000,0,0,-1,300);
CreateDynamicObject(8210,1257.5050049,1277.4987793,12.8196115,0.0000000,0.0000000,90.0000000,0,0,-1,300);
CreateDynamicObject(8210,1257.5263672,1242.4189453,12.8196115,0.0000000,0.0000000,90.0000000,0,0,-1,300);
CreateDynamicObject(987,1277.3303223,1202.8143311,12.4097986,0.0000000,0.0000000,179.9945068,0,0,-1,300);
CreateDynamicObject(987,1277.3872070,1214.8476562,9.8203125,0.0000000,0.0000000,270.0000000,0,0,-1,300);
CreateDynamicObject(987,1297.4501953,1203.0195312,9.6706142,0.0000000,0.0000000,90.0000000,0,0,-1,300);
CreateDynamicObject(3499,1277.7170410,1214.4118652,13.1937933,0.0000000,0.0000000,341.0000000,0,0,-1,300);
CreateDynamicObject(3499,1297.4271240,1214.4118652,13.1937933,0.0000000,0.0000000,340.9991455,0,0,-1,300);
CreateDynamicObject(3499,1297.4267578,1214.4111328,13.1937933,0.0000000,0.0000000,340.9936523,0,0,-1,300);
CreateDynamicObject(3499,1296.4063721,1214.4118652,13.1937933,0.0000000,0.0000000,340.9991455,0,0,-1,300);
CreateDynamicObject(3499,1278.7363281,1214.4111328,13.1937933,0.0000000,0.0000000,340.9936523,0,0,-1,300);
CreateDynamicObject(987,1277.3300781,1202.8134766,9.6706142,0.0000000,0.0000000,179.9945068,0,0,-1,300);
CreateDynamicObject(987,1269.4555664,1202.8150635,12.4097986,0.0000000,0.0000000,179.9945068,0,0,-1,300);
CreateDynamicObject(8210,1257.5247803,1230.4199219,12.8196115,0.0000000,0.0000000,90.0000000,0,0,-1,300);
CreateDynamicObject(987,1269.4550781,1202.8144531,9.6706142,0.0000000,0.0000000,179.9945068,0,0,-1,300); 
Download:
SAOI

Good luck
Reply
#16

Quote:
Originally Posted by AbyssMorgan
Посмотреть сообщение
Update SAOI v1.5.0:
- Added support for:
PHP код:
RemoveBuildingForPlayer(playeridmodelidFloat:fXFloat:fYFloat:fZFloat:fRadius); 
Awesome, thanks for adding this!
Reply
#17

Update SAOI v1.5.1:

- Adding memory protection (To avoid mistakes the use of SAOI.inc)

Update SAOI_FileManager v1.5.0:

- Removed pickups from /addvehicleinfo
- Updated 3DTryg Module v3.2.2
- Updated StreamerFunction Module v2.5.8

- Removed commands:
PHP код:
/saoicapacity -> Use /saoi
{
    /
addobjinfo
    
/delobjinfo
    
/addpickupinfo
    
/delpickupinfo
    
/addmapiconinfo
    
/delmapiconinfo
    
/addvehicleinfo
    
/delvehicleinfo
    
/addrbinfo
    
/delrbinfo
}
-> 
Use /saoifinder 
- Added commands:
PHP код:
/saoifinder element finder 
Screenshots:
http://imgur.com/a/CncTv

Download:
SAOI
Reply
#18

Update SAOI v1.6.0:

- Updated SAOI Generator for Windows

- New Supported functions (Show all):
PHP код:
streamer.inc
CreateDynamicPickup
CreateDynamicMapIcon
CreateDynamicCircle
CreateDynamicCylinder
CreateDynamicSphere
CreateDynamicRectangle
CreateDynamicCube
CreateDynamicPolygon
a_vehicles.inc
CreateVehicle
LinkVehicleToInterior
SetVehicleVirtualWorld 
- Fixed Unloader Lags (Invalid mechanism StreamerFunction.inc : DestroyFix)

- Increased Load/Unload files speed.

- Renamed functions:
PHP код:
SAOI_OnErrorCleanup -> SAOI_CleanupElements
GetSAOIFileCreationData 
-> SAOI_GetFileCreationDate
OnSAOIRemovedBuildingsForPlayer 
-> SAOI_OnRemovedBuildings
GetSAOIFileSize 
-> SAOI_GetFileSize
GetSAOIActiveTime 
-> SAOI_GetActiveTime
CountSAOIFileLoaded 
-> SAOI_CountFileLoaded 
- Removed function:
PHP код:
bool:GetSAOILoadData(SAOI:index,name[],&object_cnt=0,&material_cnt=0,&material_text_cnt=0,&load_time=0,&active_tick=0,&removed_object=0);
CountObjectsForIndex(SAOI:index);
bool:SAOI_IsSlotFree(SAOI:index); 
- Added macros:
PHP код:
SAOI_CountDynamicObject(SAOI:index);
SAOI_CountDynamicPickup(SAOI:index);
SAOI_CountDynamicMapIcon(SAOI:index);
SAOI_CountDynamicArea(SAOI:index);
SAOI_CountVehicle(SAOI:index);
SAOI_CountMaterial(SAOI:index);
SAOI_CountMaterialText(SAOI:index);
SAOI_CountRemoveBuilding(SAOI:index);
SAOI_GetFileName(SAOI:index);
SAOI_GetLoadTime(SAOI:index); 
- Added functions:
PHP код:
SAOI:SaveDynamicPickup(pickupid,const name[]);
SAOI:SaveDynamicMapIcon(iconid,const name[]);
SAOI:SaveDynamicArea(areaid,const name[]);
SAOI:SAOI_SaveVehicle(const name[],vehicletype,Float:x,Float:y,Float:z,Float:rotation,color1,color2,respawn_delay,addsiren=0,worldid=0,interiorid=0);
SAOI_CountAllElementsByIndex(SAOI:index);
SAOI_CountAllElements(); 
- Updated function:
PHP код:
SAOI:LoadObjectImage(const name[],bool:save_logs=true);
bool:UnloadObjectImage(&SAOI:index); 
- Added callbacks:
PHP код:
SAOI_OnVehicleDestroyed(vehicleid);
SAOI_OnVehicleCreated(vehicleid); 

Update SAOI_FileManager v1.6.0:

- Update compatibility for SAOI v1.6.0

- Added more information in /saoi /saoiinfo

- Fixed Quota

- Added GangZone finder (YSF Only)

- Removed Commands:
PHP код:
{
/
delobject
/delpickup
/delmapicon
}
-> 
Use /saoidestroy 
- Added commands:
PHP код:
/saoidestroy destroy element
/saoiboot load saoi file (Add to SAOIFiles.txt
Screenshots:
http://imgur.com/a/o2RiF

Download:
SAOI

//edit:
- Fixed SAOI File Manager Dialog (Try download SAOI.v1.6.0B.Full.zip)
Reply
#19

Update SAOI File Manager v1.6.2:

- Fixed all dialogs

- Fixed /saoilist limit

- Fixed /saoifinder menu

- Fixed a bug when loading a file name is empty (SaoiFiles.txt random bug from option boot: enable/disable)

- Added commands:
PHP код:
/saoiunboot unload saoi file (Remove from SAOIFiles.txt)
/
saoireboot reload all saoi files
/saoicfg edit saoi config 
Download:
SAOI
Reply
#20

Update SAOI File Manager v1.7.0:

- Update /streaminfo

- Update for SAOI.inc v1.7.0

Update SAOI.inc v1.7.0:

- Added support for:
PHP код:
CreateDynamic3DTextLabel
CA_CreateDynamicObject_DC 
- Added functions:
PHP код:
SAOI:SaveDynamic3DTextLabel(Text3D:textid,const name[]);
SAOI_CountDynamic3DTextLabel(SAOI:index);
SAOI_CountColAndreasObject(SAOI:index); 
- Added extended functions:
PHP код:
SAOI_GetErrorName(SAOI:index,error_name[],maxdest sizeof(error_name)); 
Download:
SAOI
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)