Raised This Month: $51 Target: $400
 12% 

Solved fprintf not working


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 07-19-2019 , 17:46   fprintf not working
Reply With Quote #1

I guess I'm missing something obvious, but it's been 3 hours and I still can't figure it out, everything works as it should, apart from fprintf, it just, doesn't print anything to the file.

* I logged both files to see if they are being opened, they were
* I logged each step and it was as it should be
* log_to_file gets called but fprintf doesn't print the message to the file
* I replaced the values inside both fprintfs just for the sake of testing with words such as "Hey" "hello" but none got into the main file.

PHP Code:
UpdateDataiIdszTitle[ ], szText[ ], szSender[ ], szReader[ ], szTo[ ], iTimeStampiReadTimebool:bIndividualbool:bReadbool:bRemoved )
{
    new const 
szTempFileName[ ] = "tempfile.ini";

    new 
szFormat128 ], szData512 ], szId];
    
    new 
szTempFilePath256 ]; 
    
formatexszTempFilePathcharsmaxszTempFilePath ), "%s/%s"g_szConfigsDirszTempFileName );
    
    
formatexszFormatcharsmaxszFormat ), "%s/%s"g_szConfigsDir"ContactSystem_Messages.ini" );
    new 
iFilePointer fopenszFormat"rt" );
    
    if( 
iFilePointer )
    {
        new 
iInputFilePointer fopenszTempFilePath"wt" );
                
        if( 
iInputFilePointer )
        {
            while( 
fgetsiFilePointerszDatacharsmaxszData ) ) )
            {
                
trimszData );
                
                
parseszDataszIdcharsmaxszId ) );
                
                if( 
str_to_numszId ) != iId )
                {
                    
fprintfiInputFilePointer"%s^n"szData );
                    
                    
log_to_file"doni.txt""#1 Called" );
                }
                
                else
                {
                    
fprintfiInputFilePointer"^"%d^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^""iIdszTitleszTextszSenderszReaderszToiTimeStampiReadTimebIndividualbReadbRemoved ); // edit this one
                    
log_to_file"doni.txt""#2 Called" );
                }
            }
            
fcloseiInputFilePointer );
            
fcloseiFilePointer );
            
            
delete_fileszFormat );
            
rename_fileszTempFilePathszFormat);
        }
    }
    
LoadMessages( );

Full:
PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < unixtime >
#include < hamsandwich >
#include < cromchat >

#define VERSION "2.0"

#define FLAG_VIEW ADMIN_RCON

enum
{
    
MENU_ITEM_START_MESSAGE_PUBLIC 0,
    
MENU_ITEM_START_MESSAGE_PRIVATE
};

enum
{
    
ITEM_VIEW 0,
    
ITEM_MARK_READ,
    
ITEM_DELETE
};

enum
{
    
ITEM_UNARCHIVE 1,
    
ITEM_DELETE_PERMANENT
};

enum
{
    
PUBLIC_MENU 0,
    
PRIVATE_MENU,
    
ARCHIVE_MENU
};

enum _:MessageStruct
{
    
Message_Id,
    
Message_Text256 ],
    
Message_Title64 ],
    
Message_Sender32 ],
    
Message_Reader32 ],
    
Message_To32 ],
    
Message_TimeStamp,
    
Message_ReadTime,
bool:Message_Individual,
bool:Message_Read,
bool:Message_Removed
};

new const 
g_szCreateMessageCmd[ ][ ] =
{
    
"say /contact",
    
"say_team /contact",
    
"say /ticket",
    
"say_team /ticket"
};

new const 
g_szViewMessageCmd[ ][ ] =
{
    
"say /view",
    
"say_team /view",
    
"say /tickets",
    
"say_team /tickets"
};

new const 
g_szViewArchivedMsg[ ][ ] =
{
    
"say /archive",
    
"say_team /archive",
    
"say /archived",
    
"say_team /archived"
};

new const 
g_szSysPrefix[ ] = "[Contact System]";

new const 
g_szFileName[ ] = "StaffNames.ini";

new Array:
g_aMessages;
new Array:
g_aStaffInfo;

new 
g_iMessageCount;

new 
bool:g_bFirstSpawn33 ];

new 
g_szTitle33 ][ 64 ];
new 
g_szMsgTo33 ][ 32 ];

new 
g_szConfigsDir128 ];

public 
plugin_precache( )
{
    
g_aStaffInfo ArrayCreate32 );
    
g_aMessages ArrayCreateMessageStruct );

    
get_configsdirg_szConfigsDircharsmaxg_szConfigsDir ) );
    
    
ReadNames( );
    
LoadMessages( );
}

public 
plugin_init( )
{
    
register_plugin"Contact/Ticket System"VERSION"DoNii" );
    
    new 
i;
    for( 
0sizeof g_szCreateMessageCmdi++ )
    {
        
register_clcmdg_szCreateMessageCmd], "@OpenContactMenu" );
    }
    
    for( 
0sizeof g_szViewMessageCmdi++ )
    {
        
register_clcmdg_szViewMessageCmd], "@ViewMessages" );
    }
    
    for( 
0sizeof g_szViewArchivedMsgi++ )
    {
        
register_clcmdg_szViewArchivedMsg], "@ViewArchivedMessages" );
    }
    
    
register_clcmd"titlemessage""@TitleEnter" );
    
register_clcmd"messagestart""@MessageStart" );
    
    
RegisterHamHam_Spawn"player""@Ham_Spawn");
    
    
register_clcmd"say /debug""@Debug" );
}

@
Debugid )
{
    
client_printidprint_chat"ArraySize: %d"ArraySizeg_aMessages ) );
    
    new 
eDataMessageStruct ];
    for( new 
iArraySizeg_aMessages ); i++ )
    {
        
ArrayGetArrayg_aMessagesieData );
        
        
client_printidprint_chat"ID: %d | Title: %s | Text: %s"eDataMessage_Id ], eDataMessage_Title ], eDataMessage_Text ] );
    }
}

public 
client_connectid )
{
    
g_szTitleid ][ ] = EOS;
    
g_szMsgToid ][ ] = EOS;
    
g_bFirstSpawnid ] = false;
}

@
Ham_Spawnid )
{
    if( ! 
is_user_aliveid ) || g_bFirstSpawnid ] || ~ get_user_flagsid ) & FLAG_VIEW )
    {
        return 
HAM_IGNORED;
    }

    
g_bFirstSpawnid ] = true;
    
    new 
iMessageCount ArraySizeg_aMessages );
    
    if( ! 
iMessageCount )
    {
        return 
HAM_IGNORED;
    }
    
    new 
eDataMessageStruct ], szMsgId], szName32 ], iNewMsgCountiNewMsgIndividual;
    
get_user_nameidszNamecharsmaxszName ) )
    
    for( new 
iArraySizeg_aMessages ); i++ )
    {
        
num_to_striszMsgIdcharsmaxszMsgId ) );
        
ArrayGetArrayg_aMessagesieData );
        
        if( 
eDataMessage_Removed ] || eDataMessage_Read ] )
        {
            continue;
        }
        
        if( 
eDataMessage_Individual ] )
        {
            if( 
equalszNameeDataMessage_To ] ) )
            {
                
iNewMsgIndividual++;
            }
            continue;
        }
        
        else
        {
            
iNewMsgCount++;
        }
    }

    if( ! 
iNewMsgCount )
    {
        
CC_SendMessageid"&x04%s &x01No new messages in &x04inbox"g_szSysPrefix );
        return 
HAM_IGNORED;
    }
    
    else
    {
        new 
szTitle128 ];
        
formatexszTitlecharsmaxszTitle ), "Notifications:^n%d Message%s waiting to be seen"iNewMsgCountiNewMsgCount != "s" "" );

        new 
iMenu menu_createszTitle"OnNotifications_Handler" );
        
menu_additemiMenu"Open Message Menu" );
        
menu_displayidiMenu);
    }
    return 
HAM_IGNORED;
}

public 
OnNotifications_HandleridiMenuiItem )
{
    if( 
iItem == ITEM_VIEW )
    {
        @
ViewMessagesid );
    }
    
menu_destroyiMenu );
    return 
PLUGIN_HANDLED;
}

public @
ViewArchivedMessagesid )
{
    if( ~ 
get_user_flagsid ) & FLAG_VIEW )
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
eDataMessageStruct ], szMsgId], iArchivedMsgszBuffer64 ];
    
    new 
iMenu menu_create"Archived Messages""OnMenuArchived_Handler" );
    
    for( new 
iArraySizeg_aMessages ); i++ )
    {
        
num_to_streDataMessage_Id ], szMsgIdcharsmaxszMsgId ) );
        
ArrayGetArrayg_aMessagesieData );
        
        if( 
eDataMessage_Removed ] )
        {
            
formatexszBuffercharsmaxszBuffer ), "\dSender: %s | Title: %s"eDataMessage_Sender ], eDataMessage_Title ] );
            
menu_additemiMenuszBufferszMsgId );
            
            
iArchivedMsg++
        }
    }
    
    if( ! 
iArchivedMsg )
    {
        
CC_SendMessageid"&x04%s &x01No Archived messages to display"g_szSysPrefix );
        return 
PLUGIN_HANDLED;
    }
    
    else
    {
        
menu_displayidiMenu);
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
OnMenuArchived_HandleridiMenuiItem )
{
    new 
iAccessszMsgId], iCallback;
    
menu_item_getinfoiMenuiItemiAccessszMsgIdcharsmaxszMsgId ), __iCallback );
    
menu_destroyiMenu );
    
    new 
iMenu2 menu_create"Archived Message Options""OnMenuArchivedOptions_Handler" );
    
    
menu_additemiMenu2"View Archived Message"szMsgId );
    
menu_additemiMenu2"UnArchive Message"szMsgId );
    
menu_additemiMenu2"Delete Message"szMsgId );
    
    
menu_displayidiMenu2);
}    

public 
OnMenuArchivedOptions_HandleridiMenuiItem )
{
    if( 
iItem == MENU_EXIT )
    {
        
menu_destroyiMenu );
        return 
PLUGIN_HANDLED;
    }

    new 
iAccessszMsgId], iCallbackeDataMessageStruct ];
    
menu_item_getinfoiMenuiItemiAccessszMsgIdcharsmaxszMsgId ), __iCallback );
    
    switch( 
iItem )
    {
    case 
ITEM_VIEW:
        {
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData )
                
                if( 
eDataMessage_Id ] == str_to_numszMsgId ) )
                {
                    new 
bool:bMessageRead eDataMessage_Read ];
                    
                    new 
szFormatMessage256 ], iYeariMonthiDayiHouriMinuteiSecond;
                    
                    
UnixToTimeeDataMessage_TimeStamp ], iYeariMonthiDayiHouriMinuteiSecondUT_TIMEZONE_SERVER );

                    if( 
bMessageRead )
                    {
                        new 
iYear2iMonth2iDay2iHour2iMinute2iSecond2;
                        
UnixToTimeeDataMessage_ReadTime ], iYear2iMonth2iDay2iHour2iMinute2iSecond2UT_TIMEZONE_SERVER );
                        
                        
formatexszFormatMessagecharsmaxszFormatMessage ), "Message: %s<br><br><br><br>Time Created: %02d/%02d/%d %02d:%02d:%02d<br>Read: Yes<br>Read By: %s<br>Time Read: %02d/%02d/%d %02d:%02d:%02d"eDataMessage_Text ], iMonthiDayiYeariHouriMinuteiSecondeDataMessage_Reader ], iMonth2iDay2iYear2iHour2iMinute2iSecond2 );
                    }
                    
                    else
                    {
                        
formatexszFormatMessagecharsmaxszFormatMessage ), "Message: %s<br><br><br><br>Time Created: %02d/%02d/%d %02d:%02d:%02d<br>Read: No"eDataMessage_Text ], iMonthiDayiYeariHouriMinuteiSecond );
                    }
                    
show_motdidszFormatMessage"Message" );
                }
            }
        }
        
    case 
ITEM_UNARCHIVE:
        {
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData )
                
                if( 
eDataMessage_Id ] == str_to_numszMsgId ) )
                {
                    
eDataMessage_Removed ] = false;
                    
                    
UpdateDataeDataMessage_Id ], eDataMessage_Title ], eDataMessage_Text ], eDataMessage_Sender ], eDataMessage_Reader ], eDataMessage_To ], 
                    
eDataMessage_TimeStamp ], eDataMessage_ReadTime ], eDataMessage_Individual ], eDataMessage_Read ], eDataMessage_Removed ] );
                    
                    
CC_SendMessageid"&x04%s &x01Message &x04#&x03%d &x01has been &x04un-archived"g_szSysPrefixstr_to_numszMsgId ) );
                }
            }
        }
        
    case 
ITEM_DELETE_PERMANENT:
        {
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData )
                
                if( 
eDataMessage_Id ] == str_to_numszMsgId ) )
                {
                    
UpdateDataeDataMessage_Id ], eDataMessage_Title ], eDataMessage_Text ], eDataMessage_Sender ], eDataMessage_Reader ], eDataMessage_To ], 
                    
eDataMessage_TimeStamp ], eDataMessage_ReadTime ], eDataMessage_Individual ], eDataMessage_Read ], eDataMessage_Removed ] );
                    
                    
CC_SendMessageid"&x04%s &x01Message &x04#&x03%d &x01has been &x04deleted"g_szSysPrefixstr_to_numszMsgId ) );
                }
            }
        }
    }
    
menu_destroyiMenu );
    return 
PLUGIN_HANDLED;
}

@
OpenContactMenuid )
{
    new 
iMenu menu_create"Contact the owner""@OpenContactMenu_Handler" );

    
menu_additemiMenu"Start a New Message [Public]" );
    
menu_additemiMenu"Start a New Message [Private]" );
    
menu_displayidiMenu);
}

@
OpenContactMenu_HandleridiMenuiItem )
{
    if( 
iItem == MENU_EXIT )
    {
        
menu_destroyiMenu );
        return 
PLUGIN_HANDLED;
    }
    
    switch( 
iItem )
    {
    case 
MENU_ITEM_START_MESSAGE_PUBLIC:
        {
            
client_cmdid"messagemode titlemessage" );
        }
        
    case 
MENU_ITEM_START_MESSAGE_PRIVATE:
        {
            new 
iMenu2 menu_create"Select Staff Member""OnMenuSelectStaff_Handler" );
            
            new 
szName32 ];
            
            for( new 
iArraySizeg_aStaffInfo ); i++ )
            {
                
ArrayGetStringg_aStaffInfoiszNamecharsmaxszName ) );
                
menu_additemiMenu2szNameszName );
            }
            
            
menu_displayidiMenu2);
        }
    }
    
menu_destroyiMenu );
    return 
PLUGIN_HANDLED;
}

public 
OnMenuSelectStaff_HandleridiMenuiItem )
{
    new 
iAccessszName32 ], iCallback;
    
menu_item_getinfoiMenuiItemiAccessszNamecharsmaxszName ), __iCallback );
    
    
copyg_szMsgToid ], charsmaxg_szMsgTo ), szName );
    
    
client_cmdid"messagemode titlemessage" );
}    

@
TitleEnterid )
{        
    
read_argsg_szTitleid ], charsmaxg_szTitle ) );
    
client_cmdid"messagemode messagestart" );
}

@
MessageStartid )
{
    new 
eDataMessageStruct ];

    new 
iMsgCount ArraySizeg_aMessages );
    
eDataMessage_Id ] = iMsgCount 1;
    
    if( 
g_szMsgToid ][ ] )
    {
        
trimg_szMsgToid ] );
        
        
eDataMessage_Individual ] = true;
        
eDataMessage_To ] = g_szMsgToid ];
    }
    
    
read_argseDataMessage_Text ], charsmaxeDataMessage_Text ] ) );
    
    
remove_quoteseDataMessage_Text ] );
    
    
get_user_nameideDataMessage_Sender ], charsmaxeDataMessage_Sender ] ) );
    
eDataMessage_Read ] = false;
    
eDataMessage_Removed ] = false;
    
eDataMessage_TimeStamp ] = get_systime( );
    
    
remove_quotesg_szTitleid ] );
    
eDataMessage_Title ] = g_szTitleid ];
    
    
ArrayPushArrayg_aMessageseData );
    
    
AddNewMessageeDataMessage_Id ], eDataMessage_Title ], eDataMessage_Text ], eDataMessage_Sender ], eDataMessage_Reader ], 
    
eDataMessage_To ], eDataMessage_TimeStamp ], eDataMessage_ReadTime ],
    
eDataMessage_Individual ], eDataMessage_Read ], eDataMessage_Removed ] );
    
    
CheckPlayers( );
    
    
g_szTitleid ][ ] = EOS;
    
g_szMsgToid ][ ] = EOS;
}

@
ViewMessagesid )
{
    if( ~ 
get_user_flagsid ) & FLAG_VIEW )
    {
        return 
PLUGIN_HANDLED;
    }
    
    new 
iMenu menu_create"Inbox Menu""OnChooseWhichMenu_Handler" );
    
    
menu_additemiMenu"Public Inbox" );
    
menu_additemiMenu"Your Private Inbox" );
    
menu_additemiMenu"Archive" );
    
    
menu_displayidiMenu);
    
    return 
PLUGIN_HANDLED;
}

public 
OnChooseWhichMenu_HandleridiMenuiItem )
{
    if( 
iItem == MENU_EXIT )
    {
        
menu_destroyiMenu );
        return 
PLUGIN_HANDLED;
    }
    
    new 
iMessageCount ArraySizeg_aMessages );
    
    if( ! 
iMessageCount )
    {
        
CC_SendMessageid"&x04%s &x01No messages to display"g_szSysPrefix );
        return 
PLUGIN_HANDLED;
    }

    new 
iMenu2 menu_create"Messages:""@ViewMessages_Handler" );
    
    new 
eDataMessageStruct ], szMsgId], szMsgTitle64 ], iMessagesszName32 ];
    
get_user_nameidszNamecharsmaxszName ) );
    
    switch( 
iItem )
    {
    case 
PUBLIC_MENU:
        {    
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData );
                
                if( ! 
eDataMessage_Removed ] && ! eDataMessage_Individual ] )
                {
                    if( ! 
eDataMessage_Title ][ ] || ! eDataMessage_Text ][ ] )
                    {
                        continue;
                    }
                    
                    
formatexszMsgTitlecharsmaxszMsgTitle ), "Sender: %s | Title: %s"eDataMessage_Sender ], eDataMessage_Title ] );
                    
                    
num_to_streDataMessage_Id ], szMsgIdcharsmaxszMsgId ) );
                    
menu_additemiMenu2szMsgTitleszMsgId );
                    
                    
iMessages++;
                }
            }
            
            if( ! 
iMessages )
            {
                
CC_SendMessageid"&x04%s &x01No messages in inbox"g_szSysPrefix );
                return 
PLUGIN_HANDLED;
            }
            
            
menu_displayidiMenu2);
        }
        
    case 
PRIVATE_MENU:
        {            
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData );
                
                if( ! 
eDataMessage_Removed ] && eDataMessage_Individual ] && equalszNameeDataMessage_To ] ) )
                {        
                    
formatexszMsgTitlecharsmaxszMsgTitle ), "Sender: %s | Title: %s"eDataMessage_Sender ], eDataMessage_Title ] );
                    
                    
num_to_streDataMessage_Id ], szMsgIdcharsmaxszMsgId ) );
                    
menu_additemiMenu2szMsgTitleszMsgId );
                    
                    
iMessages++;
                }
            }
            
            if( ! 
iMessages )
            {
                
CC_SendMessageid"&x04%s &x01No messages in inbox"g_szSysPrefix );
                return 
PLUGIN_HANDLED;
            }
            
            
menu_displayidiMenu2);
        }
        
    case 
ARCHIVE_MENU:
        {
            @
ViewArchivedMessagesid )
        }
    }
    
menu_destroyiMenu );
    return 
PLUGIN_HANDLED;
}

@
ViewMessages_HandleridiMenuiItem )
{
    if( 
iItem == MENU_EXIT )
    {        
        
menu_destroyiMenu );
        return 
PLUGIN_HANDLED;
    }

    new 
iAccessszMsgId], iCallback;
    
menu_item_getinfoiMenuiItemiAccessszMsgIdcharsmaxszMsgId ), __iCallback );
    
menu_destroyiMenu );
    
    new 
iMenuView menu_create"Message Options""OnMenuViewHandler" );
    
    
menu_additemiMenuView"View Message"szMsgId );
    
menu_additemiMenuView"Mark as Read"szMsgId );
    
menu_additemiMenuView"Remove/Archive Message"szMsgId );
    
    
menu_displayidiMenu);
    
    return 
PLUGIN_HANDLED;
}

public 
OnMenuViewHandleridiMenuiItem )
{
    if( 
iItem == MENU_EXIT )
    {
        
menu_destroyiMenu );
        return 
PLUGIN_HANDLED;
    }

    new 
iAccessszMsgId], iCallbackeDataMessageStruct ];
    
menu_item_getinfoiMenuiItemiAccessszMsgIdcharsmaxszMsgId ), __iCallback );
    
    switch( 
iItem )
    {
    case 
ITEM_VIEW:
        {
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData );
                
                if( 
eDataMessage_Id ] == str_to_numszMsgId ) )
                {
                    new 
bool:bMessageRead eDataMessage_Read ];
                    
                    new 
szFormatMessage256 ], iYeariMonthiDayiHouriMinuteiSecond;
                    
                    
UnixToTimeeDataMessage_TimeStamp ], iYeariMonthiDayiHouriMinuteiSecondUT_TIMEZONE_SERVER );

                    if( 
bMessageRead )
                    {
                        new 
iYear2iMonth2iDay2iHour2iMinute2iSecond2;
                        
UnixToTimeeDataMessage_ReadTime ], iYear2iMonth2iDay2iHour2iMinute2iSecond2UT_TIMEZONE_SERVER );
                        
                        
formatexszFormatMessagecharsmaxszFormatMessage ), "Message: %s<br><br><br><br>Time Created: %02d/%02d/%d %02d:%02d:%02d<br>Read: Yes<br>Read By: %s<br>Time Read: %02d/%02d/%d %02d:%02d:%02d"eDataMessage_Text ], iMonthiDayiYeariHouriMinuteiSecondeDataMessage_Reader ], iMonth2iDay2iYear2iHour2iMinute2iSecond2 );
                    }
                    
                    else
                    {
                        
formatexszFormatMessagecharsmaxszFormatMessage ), "Message: %s<br><br><br><br>Time Created: %02d/%02d/%d %02d:%02d:%02d<br>Read: No"eDataMessage_Text ], iMonthiDayiYeariHouriMinuteiSecond );
                        
                        
eDataMessage_Read ] = true;
                        
eDataMessage_ReadTime ] = get_systime( );
                        
get_user_nameideDataMessage_Reader ], charsmaxeDataMessage_Reader ] ) );
                        
                        
UpdateDataeDataMessage_Id ], eDataMessage_Title ], eDataMessage_Text ], eDataMessage_Sender ], eDataMessage_Reader ], eDataMessage_To ], 
                        
eDataMessage_TimeStamp ], eDataMessage_ReadTime ], eDataMessage_Individual ], eDataMessage_Read ], eDataMessage_Removed ] );
                        
                        
log_to_file"hehe.txt""message read" );
                    }
                    
show_motdidszFormatMessage"Message" );
                }
            }
        }

    case 
ITEM_MARK_READ:
        {
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData );
                
                if( 
eDataMessage_Id ] == str_to_numszMsgId ) )
                {
                    if( 
eDataMessage_Read ] )
                    {
                        
CC_SendMessageid"&x04%s &x01Message has already been marked as &x04seen"g_szSysPrefix );
                        
                        
menu_destroyiMenu );
                        return 
PLUGIN_HANDLED;
                    }
                    
                    
eDataMessage_Read ] = true;
                    
eDataMessage_ReadTime ] = get_systime( );
                    
get_user_nameideDataMessage_Reader ], charsmaxeDataMessage_Reader ] ) );
                    
                    
UpdateDataeDataMessage_Id ], eDataMessage_Title ], eDataMessage_Text ], eDataMessage_Sender ], eDataMessage_Reader ], eDataMessage_To ], 
                    
eDataMessage_TimeStamp ], eDataMessage_ReadTime ], eDataMessage_Individual ], eDataMessage_Read ], eDataMessage_Removed ] );
                    
                    
CC_SendMessageid"&x04%s Message &x04#&x03%d &x01has been marked as &x04read"g_szSysPrefixstr_to_numszMsgId ) );
                }
            }
        }
        
    case 
ITEM_DELETE:
        {
            for( new 
iArraySizeg_aMessages ); i++ )
            {
                
ArrayGetArrayg_aMessagesieData );
                
                if( 
eDataMessage_Id ] == str_to_numszMsgId ) )
                {
                    
eDataMessage_Removed ] = true;
                    
                    
UpdateDataeDataMessage_Id ], eDataMessage_Title ], eDataMessage_Text ], eDataMessage_Sender ], eDataMessage_Reader ], eDataMessage_To ], 
                    
eDataMessage_TimeStamp ], eDataMessage_ReadTime ], eDataMessage_Individual ], eDataMessage_Read ], eDataMessage_Removed ] );
                    
                    
CC_SendMessageid"&x04%s Message &x04#&x03%d &x01has been &x04removed/archived"g_szSysPrefixstr_to_numszMsgId ) );
                }
            }
        }
    }
    
menu_destroyiMenu );
    return 
PLUGIN_HANDLED;
}

CheckPlayers( )
{
    new 
szPlayers32 ], iNumiTempId;
    
get_playersszPlayersiNum"ch" );

    for( new 
iiNumi++ )
    {
        
iTempId szPlayers];

        if( 
get_user_flagsiTempId ) & FLAG_VIEW )
        {
            
CC_SendMessageiTempId"&x04%s &x01New Message arrived!"g_szSysPrefix );
        }
    }
}

ReadNames( )
{
    new 
szFilename256 ], szData128 ];
    
get_configsdirg_szConfigsDircharsmaxg_szConfigsDir ) );
    
formatexszFilenamecharsmaxszFilename ), "%s/%s"g_szConfigsDirg_szFileName );
    
    new 
iFile fopenszFilename"rt" );
    
    if( 
iFile )
    {        
        while( 
fgetsiFileszDatacharsmaxszData ) ) )
        {
            
trimszData );
            
remove_quotesszData );
            
            switch( 
szData] )
            {
            case 
EOS'#'';''/':
                {
                    continue;
                }
                
            default:
                {                                        
                    
ArrayPushStringg_aStaffInfoszData );
                }
            }
        }
        
fcloseiFile );
    }
    return 
PLUGIN_CONTINUE;
}

LoadMessages( )
{
    
ArrayClearg_aMessages );

    new 
szFile128 ], szData256 ];
    
    
formatexszFilecharsmaxszFile ), "%s/%s"g_szConfigsDir"ContactSystem_Messages.ini" );
    
    new 
iFile fopenszFile"rt" );
    
    if( 
iFile )
    {
        while( 
fgetsiFileszDatacharsmaxszData ) ) )
        {    
            
trimszData );
            
            switch( 
szData] )
            {
            case 
EOS'#'';''/'
                {
                    continue;
                }
                
            default:
                {
                    new 
szId], szTitle64 ], szBody256 ], szSender32 ], szReader32 ], szTo32 ], szTimeStamp20 ], szReadTime20 ], szIndividual], szRead], szRemoved];
                    
                    
parseszDataszIdcharsmaxszId ), szTitlecharsmaxszTitle ), szBodycharsmaxszBody ), szSendercharsmaxszSender ), szReadercharsmaxszReader ), 
                    
szTocharsmaxszTo ), szTimeStampcharsmaxszTimeStamp ), szReadTimecharsmaxszReadTime ), szIndividualcharsmaxszIndividual ), szReadcharsmaxszRead ), 
                    
szRemovedcharsmaxszRemoved ) );
                    
                    new 
eDataMessageStruct ];
                    
                    
eDataMessage_Id ] = str_to_numszId );
                    
                    
copyeDataMessage_Title ], charsmaxeDataMessage_Title ] ), szTitle );
                    
copyeDataMessage_Text ], charsmaxeDataMessage_Text ] ), szBody );
                    
copyeDataMessage_Sender ], charsmaxeDataMessage_Sender ] ), szSender );
                    
copyeDataMessage_Reader ], charsmaxeDataMessage_Reader ] ), szReader );
                    
copyeDataMessage_To ], charsmaxeDataMessage_To ] ), szTo );
                    
                    
eDataMessage_TimeStamp ] = str_to_numszTimeStamp );
                    
eDataMessage_ReadTime ] = str_to_numszReadTime );
                    
                    
eDataMessage_Individual ] = bool:str_to_numszIndividual );
                    
eDataMessage_Read ] = bool:str_to_numszRead );
                    
eDataMessage_Removed ] = bool:str_to_numszRemoved );
                    
                    
ArrayPushArrayg_aMessageseData );
                    
                    
g_iMessageCount++;
                }
            }
        }
    }
    return 
g_iMessageCount;
}

UpdateDataiIdszTitle[ ], szText[ ], szSender[ ], szReader[ ], szTo[ ], iTimeStampiReadTimebool:bIndividualbool:bReadbool:bRemoved )
{
    new const 
szTempFileName[ ] = "tempfile.ini";

    new 
szFormat128 ], szData512 ], szId];
    
    new 
szTempFilePath256 ]; 
    
formatexszTempFilePathcharsmaxszTempFilePath ), "%s/%s"g_szConfigsDirszTempFileName );
    
    
formatexszFormatcharsmaxszFormat ), "%s/%s"g_szConfigsDir"ContactSystem_Messages.ini" );
    new 
iFilePointer fopenszFormat"rt" );
    
    if( 
iFilePointer )
    {
        new 
iInputFilePointer fopenszTempFilePath"wt" );
                
        if( 
iInputFilePointer )
        {
            while( 
fgetsiFilePointerszDatacharsmaxszData ) ) )
            {
                
trimszData );
                
                
parseszDataszIdcharsmaxszId ) );
                
                if( 
str_to_numszId ) != iId )
                {
                    
fprintfiInputFilePointer"%s^n"szData );
                    
                    
log_to_file"doni.txt""#1 Called" );
                }
                
                else
                {
                    
fprintfiInputFilePointer"^"%d^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^""iIdszTitleszTextszSenderszReaderszToiTimeStampiReadTimebIndividualbReadbRemoved ); // edit this one
                    
log_to_file"doni.txt""#2 Called" );
                }
            }
            
fcloseiInputFilePointer );
            
fcloseiFilePointer );
            
            
delete_fileszFormat );
            
rename_fileszTempFilePathszFormat);
        }
    }
    
LoadMessages( );
}

AddNewMessageiIdszTitle[ ], szText[ ], szSender[ ], szReader[ ], szTo[ ], iTimeStampiReadTimebool:bIndividualbool:bReadbool:bRemoved )
{
    new 
szFormat128 ];
    
formatexszFormatcharsmaxszFormat ), "%s/%s"g_szConfigsDir"ContactSystem_Messages.ini" );
    new 
iFile fopenszFormat "r+" );

    new 
szByteVal], szNewLine128 ];
    
    
fseekiFile , -SEEK_END );
    
fread_rawiFile szByteVal sizeofszByteVal ) , BLOCK_BYTE );
    
fseekiFile SEEK_END );
    
    
formatexszNewLinecharsmaxszNewLine ), "%s^"%d^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%d^" ^"%d^" ^"%d^" ^"%d^" ^"%d^"", ( szByteVal] == 10 ) ? "" "^n"iIdszTitleszTextszSenderszReaderszToiTimeStampiReadTimebIndividualbReadbRemoved ); 

    
fputsiFile szNewLine );
    
    
fcloseiFile );
    
    
LoadMessages( );

__________________

Last edited by edon1337; 07-20-2019 at 07:41.
edon1337 is offline
Old 07-19-2019, 17:49
edon1337
This message has been deleted by edon1337. Reason: accident
Relaxing
AlliedModders Donor
Join Date: Jun 2016
Location: White Plains
Old 07-19-2019 , 18:23   Re: fprintf not working
Reply With Quote #2

Is fprintf mandatory? You got other alternatives.
__________________
Relaxing is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 07-19-2019 , 18:28   Re: fprintf not working
Reply With Quote #3

Quote:
Originally Posted by Relaxing View Post
Is fprintf mandatory? You got other alternatives.
That's not a solution, it's not that fprintf doesn't actually work, it worked in my other plugins, idk what causes it to not work this time, fputs would be the same.
__________________
edon1337 is offline
thEsp
BANNED
Join Date: Aug 2017
Old 07-19-2019 , 18:29   Re: fprintf not working
Reply With Quote #4

Quote:
Originally Posted by edon1337 View Post
fputs would be the same.
Except no direct formatting.
thEsp is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 07-19-2019 , 18:31   Re: fprintf not working
Reply With Quote #5

Quote:
Originally Posted by thEsp View Post
Except no direct formatting.
I was talking about the actual usage of fputs, not syntax. Of course it doesn't have the same syntax as fprintf, or else it wouldn't have a reason to exist.
__________________

Last edited by edon1337; 07-19-2019 at 18:31.
edon1337 is offline
Natsheh
Veteran Member
Join Date: Sep 2012
Old 07-19-2019 , 21:23   Re: fprintf not working
Reply With Quote #6

If the code is fine it might be user access can't write make sure the file doesn't have the read only flag or others flag it should have.
__________________
@Jailbreak Main Mod v2.7.0 100%
@User Tag Prefix 100% done !
@Mystery Box 100% done !
@VIP System 100% done !

Natsheh is offline
Send a message via MSN to Natsheh Send a message via Skype™ to Natsheh
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 07-20-2019 , 06:25   Re: fprintf not working
Reply With Quote #7

Quote:
Originally Posted by Natsheh View Post
If the code is fine it might be user access can't write make sure the file doesn't have the read only flag or others flag it should have.
I already thought about that, file wasn't read-only, I'm testing locally too.
__________________
edon1337 is offline
edon1337
Penguin Enthusiast
Join Date: Jun 2016
Location: Macedonia
Old 07-20-2019 , 07:42   Re: fprintf not working
Reply With Quote #8

Solved.

Solution: I forgot (of course) to close the file after reading messages, so it wouldn't let me write in it. It's always the small things that cause huge issues.
Code:
LoadMessages( ) {     ArrayClear( g_aMessages );     new szFile[ 128 ], szData[ 256 ];           formatex( szFile, charsmax( szFile ), "%s/%s", g_szConfigsDir, "ContactSystem_Messages.ini" );           new iFile = fopen( szFile, "rt" );           if( iFile )     {         while( fgets( iFile, szData, charsmax( szData ) ) )         {                  trim( szData );                           switch( szData[ 0 ] )             {             case EOS, '#', ';', '/':                  {                     continue;                 }                               default:                 {                     new szId[ 6 ], szTitle[ 64 ], szBody[ 256 ], szSender[ 32 ], szReader[ 32 ], szTo[ 32 ], szTimeStamp[ 20 ], szReadTime[ 20 ], szIndividual[ 2 ], szRead[ 2 ], szRemoved[ 2 ];                                           parse( szData, szId, charsmax( szId ), szTitle, charsmax( szTitle ), szBody, charsmax( szBody ), szSender, charsmax( szSender ), szReader, charsmax( szReader ),                      szTo, charsmax( szTo ), szTimeStamp, charsmax( szTimeStamp ), szReadTime, charsmax( szReadTime ), szIndividual, charsmax( szIndividual ), szRead, charsmax( szRead ),                      szRemoved, charsmax( szRemoved ) );                                           new eData[ MessageStruct ];                                           eData[ Message_Id ] = str_to_num( szId );                                           copy( eData[ Message_Title ], charsmax( eData[ Message_Title ] ), szTitle );                     copy( eData[ Message_Text ], charsmax( eData[ Message_Text ] ), szBody );                     copy( eData[ Message_Sender ], charsmax( eData[ Message_Sender ] ), szSender );                     copy( eData[ Message_Reader ], charsmax( eData[ Message_Reader ] ), szReader );                     copy( eData[ Message_To ], charsmax( eData[ Message_To ] ), szTo );                                           eData[ Message_TimeStamp ] = str_to_num( szTimeStamp );                     eData[ Message_ReadTime ] = str_to_num( szReadTime );                                           eData[ Message_Individual ] = bool:str_to_num( szIndividual );                     eData[ Message_Read ] = bool:str_to_num( szRead );                     eData[ Message_Removed ] = bool:str_to_num( szRemoved );                                           ArrayPushArray( g_aMessages, eData );                                           g_iMessageCount++;                 }             }         }     }     return g_iMessageCount; }

-->

Code:
LoadMessages( ) {     ArrayClear( g_aMessages );     new szFile[ 128 ], szData[ 256 ];         formatex( szFile, charsmax( szFile ), "%s/%s", g_szConfigsDir, "ContactSystem_Messages.ini" );         new iFile = fopen( szFile, "rt" );         if( iFile )     {         while( fgets( iFile, szData, charsmax( szData ) ) )         {             trim( szData );                         switch( szData[ 0 ] )             {             case EOS, '#', ';', '/':                 {                     continue;                 }                             default:                 {                     new szId[ 6 ], szTitle[ 64 ], szBody[ 256 ], szSender[ 32 ], szReader[ 32 ], szTo[ 32 ], szTimeStamp[ 20 ], szReadTime[ 20 ], szIndividual[ 2 ], szRead[ 2 ], szRemoved[ 2 ];                                         parse( szData, szId, charsmax( szId ), szTitle, charsmax( szTitle ), szBody, charsmax( szBody ), szSender, charsmax( szSender ), szReader, charsmax( szReader ),                     szTo, charsmax( szTo ), szTimeStamp, charsmax( szTimeStamp ), szReadTime, charsmax( szReadTime ), szIndividual, charsmax( szIndividual ), szRead, charsmax( szRead ),                     szRemoved, charsmax( szRemoved ) );                                         new eData[ MessageStruct ];                                         eData[ Message_Id ] = str_to_num( szId );                                         copy( eData[ Message_Title ], charsmax( eData[ Message_Title ] ), szTitle );                     copy( eData[ Message_Text ], charsmax( eData[ Message_Text ] ), szBody );                     copy( eData[ Message_Sender ], charsmax( eData[ Message_Sender ] ), szSender );                     copy( eData[ Message_Reader ], charsmax( eData[ Message_Reader ] ), szReader );                     copy( eData[ Message_To ], charsmax( eData[ Message_To ] ), szTo );                                         eData[ Message_TimeStamp ] = str_to_num( szTimeStamp );                     eData[ Message_ReadTime ] = str_to_num( szReadTime );                                         eData[ Message_Individual ] = bool:str_to_num( szIndividual );                     eData[ Message_Read ] = bool:str_to_num( szRead );                     eData[ Message_Removed ] = bool:str_to_num( szRemoved );                                         ArrayPushArray( g_aMessages, eData );                                         g_iMessageCount++;                 }             }         }
        fclose( iFile );
    }     return g_iMessageCount; }
__________________

Last edited by edon1337; 07-20-2019 at 07:43.
edon1337 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:47.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode