LoadMap Function made
#1

Hello,

I am making a function that create the objects from the current map.

pawn Код:
public LoadMap(MapID)
{
    printf("Trying to Load MapID: %d", MapID);
    new FileName[128],line[128];
    format(FileName, sizeof(FileName), "Maps/%d.ini", MapID);
    new letter[1], Float:rot, Float:X, Float:Y, Float:Z, File:map = fopen(FileName, io_read);
    new model =0,Float:rX, Float:rY, Float:rZ;
    if(fexist(FileName))
    {
        printf("Loading MapID: %d", MapID);
        while(fread(map, line))
        {
            if(strcmp(line, "H", false, 1) == 0){
                sscanf(line, "sf", letter, MapHeight);
            }
           
            if(strcmp(line, "P", false, 1) == 0){
                sscanf(line, "sd", letter, MapPrize);
            }
           
            if(strcmp(line, "C", false, 1) == 0){
                if (!sscanf(line, "sfff", letter, X, Y, Z)){
                    CameraX = X;
                    CameraY = Y;
                    CameraZ = Z;
                }
            }

            if(strcmp(line, "L", false, 1) == 0){
                if (!sscanf(line, "sfff", letter, X, Y, Z)){
                    LCameraX = X;
                    LCameraY = Y;
                    LCameraZ = Z;
                }
            }
            if(strcmp(line, "O", false, 1) == 0){
                if (!sscanf(line, "sdffffff", letter, model, X, Y, Z, rX, rY, rZ)){
                    MapObjects[MapObjectsCounter] = CreateDynamicObject(model, X, Y, Z, rX, rY, rZ);
                    MapObjectsCounter++;
                }
            }
            if(strcmp(line, "S", false, 1) == 0){
                if (!sscanf(line, "sffff", letter, X, Y, Z, rot)){
                    SpawnPoints[SpawnPointsCounter][SPAWN_X] = X;
                    SpawnPoints[SpawnPointsCounter][SPAWN_Y] = Y;
                    SpawnPoints[SpawnPointsCounter][SPAWN_Z] = Z;
                    SpawnPoints[SpawnPointsCounter][SPAWN_ROT] = rot;

                    SpawnPointsCounter++;
                }
            }
        }
       
        printf("%f MapHeight", MapHeight);
        printf("%d MapPrize", MapPrize);
        printf("%f %f %f Camera Pos", CameraX,CameraY,CameraZ);
        printf("%f %f %f Camera Lookat Pos", LCameraX,LCameraY,LCameraZ);
        printf("%d SpawnPoints Loaded", SpawnPointsCounter);
        printf("%d Objects Loaded", MapObjectsCounter);
        printf("Map Loaded (%d)", MapID);
       
    }
    else
    {
        printf("Map Failed To Load! (%d)", MapID);
    }
}
But as soon as I load a map the half of the objects are not made..

this is a template of one of the maps:

Код:
[settings]
H 62.5474
P 85000
C 3.9800 1439.2473 243.9866
L 4.3070 1440.1968 243.3465

[objects]
O 13607 85.54502 1725.07849 125.35680 0.00000 0.00000 297.96579
O 13607 189.83598 1710.39160 125.35380 0.00000 0.00000 202.00000
O 13607 151.07979 1805.05212 125.32825 0.00000 0.00000 0.00000
O 3458 175.36047 1761.38806 120.19199 0.00000 0.00000 307.87259
O 3458 172.50351 1757.57300 120.23685 0.00000 0.00000 307.44766
O 3458 139.21432 1710.88354 120.14730 0.00000 0.00000 356.04010
O 3458 139.51964 1715.88660 120.10246 0.00000 0.00000 356.09839
O 3458 120.47340 1762.58936 120.25302 0.00000 0.00000 50.41240
O 3458 117.83733 1766.70044 120.20421 0.00000 0.00000 50.56581
O 3458 43.68640 1691.17334 120.24850 0.00000 0.00000 41.13350
O 3458 47.45390 1686.71997 120.24840 0.00000 0.00000 41.09190
O 3458 17.62788 1660.62158 120.24802 0.00000 0.00000 41.26023
O 3458 13.85560 1665.14758 120.24800 0.00000 0.00000 41.12270
O 3458 -11.98040 1634.56714 120.24850 0.00000 0.00000 41.25330
O 3458 -15.92810 1639.10962 120.24850 0.00000 0.00000 41.22230
O 13607 -55.40858 1602.19922 125.70467 0.00000 0.00000 0.00000
O 3458 2.99245 1594.65234 120.62868 0.00000 0.00000 0.00000
O 3458 2.71669 1588.74268 120.62289 0.00000 0.00000 359.76376
O 3458 41.23360 1588.43530 125.69530 0.00000 -15.00000 359.00000
O 3458 41.31786 1594.26941 125.69530 0.00000 -15.00000 359.00000
O 13607 100.87070 1589.61292 135.96460 0.00000 0.00000 -0.97100
O 19005 97.35532 1616.81421 135.52162 0.00000 0.00000 5.93164
O 3458 107.06490 1531.71741 135.93240 0.00000 -15.00000 273.73511
O 3458 102.68360 1531.47754 135.93240 0.00000 -15.00000 273.99161
O 13607 148.84720 1750.23547 88.19859 0.00000 0.00000 0.00000
O 18980 146.31914 1601.56079 131.89290 0.00000 89.00000 20.47886
O 18980 148.50381 1600.27551 131.93102 0.00000 89.00000 20.68389
O 18980 157.84799 1605.88550 132.06033 0.00000 89.00000 20.47540
O 18980 158.57784 1604.08362 132.12820 0.00000 89.00000 20.68390
O 3062 171.22209 1609.79871 132.83920 89.00000 -149.00000 349.70508
O 18980 182.49171 1614.09094 132.55602 0.00000 89.00000 19.96632
O 18981 193.99303 1618.36108 132.75836 0.00000 89.00000 20.26204
O 18981 94.77540 1499.40015 142.14400 0.00000 90.00000 4.00000
O 18981 113.63710 1500.74219 142.14481 0.00000 90.00000 4.00000


[spawns]
S -54.4931 1573.2501 126.6633 0.0000
S -68.0999 1575.5052 126.6633 -33.0000
S -78.1750 1581.7255 126.6633 -55.0000
S -84.2283 1592.4836 126.6633 -76.0000
S -85.3277 1603.6918 126.6633 -97.0000
S -82.2148 1614.1085 126.6633 -120.0000
S -75.7512 1623.9702 126.6633 -137.0000
S -65.0343 1629.8164 126.6633 -164.0000
S -52.4063 1630.8657 126.6633 -185.0000
S -27.3872 1614.2804 126.6633 98.0000
S -32.9675 1587.4347 126.6633 55.0000
S -41.0119 1627.6978 126.6633 142.0000
S -43.4980 1577.8368 126.6633 32.0000
Reply
#2

It's something wierd about the plugin, I can't really test it out right now but try this:

pawn Код:
MapObjects[MapObjectsCounter] = CreateDynamicObject(model, X, Y, Z, rX, rY, rZ, -1, -1, -1, 1000.0); // <== Just as a test!
Reply
#3

Quote:
Originally Posted by BullseyeHawk
Посмотреть сообщение
It's something wierd about the plugin, I can't really test it out right now but try this:

pawn Код:
MapObjects[MapObjectsCounter] = CreateDynamicObject(model, X, Y, Z, rX, rY, rZ, -1, -1, -1, 1000.0); // <== Just as a test!
Nope still a few objects are missing :#
Reply
#4

@Stefand, Seems like there are two choices of problems here.

a) Streamer encourted some error and can't create the 0.3x object, or something gets it to error..
- Try to download crashdetect, and see if Streamer plugin is error'ing somewhere.

b) Try to remove CreateDynamicObject and replace with CreateObject, let's see if it's a problem in the streamer plugin or a general.. ( covert objects from DynamicObject to Object with covertffs. )

I'll try to help you, tought I lack the game right now cause I am on a laptop.. :/
Reply
#5

Quote:
Originally Posted by BullseyeHawk
Посмотреть сообщение
@Stefand, Seems like there are two choices of problems here.

a) Streamer encourted some error and can't create the 0.3x object, or something gets it to error..
- Try to download crashdetect, and see if Streamer plugin is error'ing somewhere.

b) Try to remove CreateDynamicObject and replace with CreateObject, let's see if it's a problem in the streamer plugin or a general.. ( covert objects from DynamicObject to Object with covertffs. )

I'll try to help you, tought I lack the game right now cause I am on a laptop.. :/
I changed it to CreateObject, same thing happend but I discovered that the objects are not placed in the correct position. some objects are floating somewhere they shouldnt.

I think something is wrong with the load thing but I cant figure out what :#
Reply
#6

Does the floating issue happens when you create the object with streamer? Or just in the static one.
If it happens in both, Streamer and the static one, Here's what you need to do.
When the object gets loaded, Z subtract to 1 or 2. However if it is custom map and the land is custom map too then this method might not work and the height of all loaded objects are not base on normal z height.

Back to the topic, Everything works fine, except the object?
Reply
#7

Yes all spawnpoints work fine height aswell. It happend to static and dynamic ones..
And the Object is just somewhere it isnt supposed to be
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)