AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Solved fprintf not working (https://forums.alliedmods.net/showthread.php?t=317573)

edon1337 07-19-2019 17:46

fprintf not working
 
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( );



Relaxing 07-19-2019 18:23

Re: fprintf not working
 
Is fprintf mandatory? You got other alternatives.

edon1337 07-19-2019 18:28

Re: fprintf not working
 
Quote:

Originally Posted by Relaxing (Post 2659817)
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.

thEsp 07-19-2019 18:29

Re: fprintf not working
 
Quote:

Originally Posted by edon1337 (Post 2659818)
fputs would be the same.

Except no direct formatting.

edon1337 07-19-2019 18:31

Re: fprintf not working
 
Quote:

Originally Posted by thEsp (Post 2659819)
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.

Natsheh 07-19-2019 21:23

Re: fprintf not working
 
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.

edon1337 07-20-2019 06:25

Re: fprintf not working
 
Quote:

Originally Posted by Natsheh (Post 2659831)
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 07-20-2019 07:42

Re: fprintf not working
 
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; }


All times are GMT -4. The time now is 17:27.

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