Pickup Problem
#1

Hello!

I've got a little problem, when I go to load my organizations when the game mode is next ran, the pickups that I created arn't showing up.

Here is my code..

pawn Код:
/*      Includes        */
#include <a_samp>
#include <ss>
#include <dini>
#include <dudb>
#include <dutils>

/*      Defines         */
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define MAX_ORGS 15

/*      New(s)          */
new File[128];
new Message[128];

/*      Enum(s)         */
enum oInfo
{
    OrganizationName,
    OrganizationID,
    Float: OrganizationX,
    Float: OrganizationY,
    Float: OrganizationZ,
    OrganizationType,
    bool: Organization,
    OrganizationPickup
}
new OrganizationInfo[MAX_ORGS][oInfo];

/*      Color Defines       */
#define COLOR_GREY              0xAFAFAFAA
#define COLOR_GREEN             0x33AA33AA
#define COLOR_RED               0xAA3333AA
#define COLOR_YELLOW            0xFFFF00AA
#define COLOR_WHITE             0xFFFFFFAA
#define COLOR_BLUE              0x0000BBAA
#define COLOR_LIGHTBLUE         0x33CCFFAA
#define COLOR_ORANGE            0xFF9900AA

#define GREY                    "{AFAFAF}"
#define GREEN                   "{33AA33}"
#define RED                     "{AA3333}"
#define YELLOW                  "{FFFF00}"
#define WHITE                   "{FFFFFF}"
#define BLUE                    "{0000BB}"
#define LIGHTBLUE               "{33CCFF}"
#define ORANGE                  "{FF9900}"

/////////////////////////////////////////////////////////////////

public OnPlayerCommandText(playerid, cmdtext[])
{
    /* Player Commands */
    dcmd(addorg, 6, cmdtext);
    return 0;
}

dcmd_addorg(playerid, params[])
{
    new iD, Name[128], Type;
    if(sscanf(params, "isi", iD, Name, Type)) return SendClientMessage(playerid, COLOR_RED, "~ Incorrect Usage: "#WHITE"/addorg [orgid] [orgname] [orgtype]");
    else if(OrganizationInfo[iD][Organization] == true) return SendClientMessage(playerid, COLOR_RED, "~ Error: "#WHITE"This organization ID has already been used!");
    else
    {
        format(File, sizeof(File), "qG/Organizations/%i.ini", iD);
        new Float: x, Float: y, Float: z;
        GetPlayerPos(playerid, x, y, z);
       
        dini_Create(File);
        dini_Set(File, "OrganizationName", Name);
        dini_IntSet(File, "Organization", OrganizationInfo[iD][Organization] = true);
        dini_IntSet(File, "OrganizationID", OrganizationInfo[iD][OrganizationID] = iD);
        dini_IntSet(File, "OrganizationType", OrganizationInfo[iD][OrganizationType] = Type);
        dini_IntSet(File, "OrganizationPickup", OrganizationInfo[iD][OrganizationPickup] = iD);
        dini_FloatSet(File, "OrganizationX", OrganizationInfo[iD][OrganizationX] = x);
        dini_FloatSet(File, "OrganizationY", OrganizationInfo[iD][OrganizationY] = y);
        dini_FloatSet(File, "OrganizationZ", OrganizationInfo[iD][OrganizationZ] = z);
       
        format(Message, sizeof(Message), "~ Organization Created: ID (%i) | Name (%s) | Type (%i)", iD, Name, Type);
        SendClientMessage(playerid, COLOR_ORANGE, Message);
       
        OrganizationInfo[iD][OrganizationPickup] = CreatePickup(1318, 1, x, y, z, -1);
    }
    return 1;
}

public OnGameModeInit()
{
    AddPlayerClass(1,136.1139,-66.0578,1.5781,284.7993,0,0,0,0,0,0);
    for(new i = 0; i < MAX_ORGS; i++)
    {
        format(File, sizeof(File), "qG/Organizations/%i.ini", OrganizationInfo[i][OrganizationID]);

        OrganizationInfo[i][OrganizationName] = dini_Int(File, "OrganizationName");
        OrganizationInfo[i][OrganizationID] = dini_Int(File, "OrganizationID");
        OrganizationInfo[i][OrganizationType] = dini_Int(File, "OrganizationType");
        OrganizationInfo[i][OrganizationPickup] = dini_Int(File, "OrganizationPickup");

        OrganizationInfo[i][OrganizationX] = dini_Float(File, "OrganizationX");
        OrganizationInfo[i][OrganizationY] = dini_Float(File, "OrganizationY");
        OrganizationInfo[i][OrganizationZ] = dini_Float(File, "OrganizationZ");
       
        printf("X - %f | Y - %f | Z - %f", OrganizationInfo[i][OrganizationX], OrganizationInfo[i][OrganizationY], OrganizationInfo[i][OrganizationZ]);

        OrganizationInfo[i][OrganizationPickup] = CreatePickup(1318, 1, OrganizationInfo[i][OrganizationX], OrganizationInfo[i][OrganizationY],  OrganizationInfo[i][OrganizationZ], -1);
    }
    return 1;
}
Heres a pastebin version - http://pastebin.com/eBCFbr9Y
Reply
#2

I cant see any checkpoints in your code, do you mean checkpoints in another script ?
Reply
#3

Sorry, I ment pickups ;/
Reply
#4

BUMP
Reply
#5

Maybe your X,Y,Z saved in the flie aint saved right. Use dini_FloatSet if ur using dini.
Reply
#6

Maybe some pickups are conflicting ( ? ). You might have a streamer, which you use in some FS, and you got normal pickup system in this code. Maybe, conflicts?
Reply
#7

I dont have any filterscripts, that just it. I started from a blank .pwn file.

Here's some code from my .ini, they seem to be saving correctly.
pawn Код:
OrganizationX=132.000000
OrganizationY=-67.269531
OrganizationZ=1.578125
Reply
#8

I don't mean to sound noobish, or childish, but I really need some help with this :/
Reply
#9

use a streamer
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)