Messages System.
#1

pawn Код:
#include <a_samp>
#include <zcmd>

#define DIALOG_CREATE 9000

new Text:Box;
new Text:AnotherBox;
new Text:Message;
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
new Text:Textdraw5;

public OnFilterScriptInit()
{
    Box = TextDrawCreate(638.799987, 434.566650, "usebox");
    TextDrawLetterSize(Box, 0.000000, 1.259630);
    TextDrawTextSize(Box, -4.399999, 0.000000);
    TextDrawAlignment(Box, 1);
    TextDrawColor(Box, 0);
    TextDrawUseBox(Box, true);
    TextDrawBoxColor(Box, 255);
    TextDrawSetShadow(Box, 0);
    TextDrawSetOutline(Box, 0);
    TextDrawFont(Box, 0);

    AnotherBox = TextDrawCreate(644.399902, 434.566650, "usebox");
    TextDrawLetterSize(AnotherBox, 0.000000, 1.259630);
    TextDrawTextSize(AnotherBox, 623.599975, 0.000000);
    TextDrawAlignment(AnotherBox, 1);
    TextDrawColor(AnotherBox, 0);
    TextDrawUseBox(AnotherBox, true);
    TextDrawBoxColor(AnotherBox, 255);
    TextDrawSetShadow(AnotherBox, 0);
    TextDrawSetOutline(AnotherBox, 0);
    TextDrawFont(AnotherBox, 0);

    Message = TextDrawCreate(4.799987, 432.320098, "Nothing");
    TextDrawLetterSize(Message, 0.449999, 1.600000);
    TextDrawAlignment(Message, 1);
    TextDrawColor(Message, -1);
    TextDrawSetShadow(Message, 0);
    TextDrawSetOutline(Message, 1);
    TextDrawBackgroundColor(Message, 51);
    TextDrawFont(Message, 1);
    TextDrawSetProportional(Message, 1);
   
    Textdraw0 = TextDrawCreate(644.399902, 175.473373, "usebox");
    TextDrawLetterSize(Textdraw0, 0.000000, 17.271482);
    TextDrawTextSize(Textdraw0, 377.199981, 0.000000);
    TextDrawAlignment(Textdraw0, 1);
    TextDrawColor(Textdraw0, 0);
    TextDrawUseBox(Textdraw0, true);
    TextDrawBoxColor(Textdraw0, 102);
    TextDrawSetShadow(Textdraw0, 0);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawFont(Textdraw0, 0);

    Textdraw1 = TextDrawCreate(424.000061, 173.973266, "Messages Panel");
    TextDrawLetterSize(Textdraw1, 0.554799, 2.891732);
    TextDrawAlignment(Textdraw1, 1);
    TextDrawColor(Textdraw1, 16777215);
    TextDrawSetShadow(Textdraw1, 0);
    TextDrawSetOutline(Textdraw1, 1);
    TextDrawBackgroundColor(Textdraw1, 51);
    TextDrawFont(Textdraw1, 2);
    TextDrawSetProportional(Textdraw1, 1);

    Textdraw2 = TextDrawCreate(394.399932, 229.973342, "- Create new message.");
    TextDrawLetterSize(Textdraw2, 0.458799, 2.077866);
    TextDrawAlignment(Textdraw2, 1);
    TextDrawColor(Textdraw2, -1);
    TextDrawSetShadow(Textdraw2, 0);
    TextDrawSetOutline(Textdraw2, 1);
    TextDrawBackgroundColor(Textdraw2, 51);
    TextDrawFont(Textdraw2, 2);
    TextDrawSetProportional(Textdraw2, 1);
    TextDrawSetSelectable(Textdraw2, true);

    Textdraw3 = TextDrawCreate(395.199920, 268.800018, "- Remove messages.");
    TextDrawLetterSize(Textdraw3, 0.503600, 2.272000);
    TextDrawAlignment(Textdraw3, 1);
    TextDrawColor(Textdraw3, -1);
    TextDrawSetShadow(Textdraw3, 0);
    TextDrawSetOutline(Textdraw3, 1);
    TextDrawBackgroundColor(Textdraw3, 51);
    TextDrawFont(Textdraw3, 2);
    TextDrawSetProportional(Textdraw3, 1);
    TextDrawSetSelectable(Textdraw3, true);

    Textdraw4 = TextDrawCreate(643.599914, 316.593322, "usebox");
    TextDrawLetterSize(Textdraw4, 0.000000, 1.591482);
    TextDrawTextSize(Textdraw4, 575.599975, 0.000000);
    TextDrawAlignment(Textdraw4, 1);
    TextDrawColor(Textdraw4, 0);
    TextDrawUseBox(Textdraw4, true);
    TextDrawBoxColor(Textdraw4, 255);
    TextDrawSetShadow(Textdraw4, 0);
    TextDrawSetOutline(Textdraw4, 0);
    TextDrawFont(Textdraw4, 0);

    Textdraw5 = TextDrawCreate(582.399963, 315.093292, "Close");
    TextDrawLetterSize(Textdraw5, 0.449999, 1.600000);
    TextDrawAlignment(Textdraw5, 1);
    TextDrawColor(Textdraw5, -5963521);
    TextDrawSetShadow(Textdraw5, 0);
    TextDrawSetOutline(Textdraw5, 1);
    TextDrawBackgroundColor(Textdraw5, 51);
    TextDrawFont(Textdraw5, 2);
    TextDrawSetProportional(Textdraw5, 1);
    TextDrawSetSelectable(Textdraw5, true);
    return 1;
}

CMD:messages(playerid, params[])
{
    if(IsPlayerAdmin(playerid))
    {
        ShowForRCON(playerid);
        SelectTextDraw(playerid, 0xFFFFFFFF);
    }
    else
    {
        SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You are not authorized to use this command.");
    }
    return 1;
}

public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    if(clickedid == Textdraw2)
    {
        ShowPlayerDialog(playerid, DIALOG_CREATE, DIALOG_STYLE_INPUT, "Create new message:", "{FFFFFF}Please, enter below your text, which will appear on all player's screen below:", "Continue", "Exit");
    }
    else if(clickedid == Textdraw3)
    {
        Hide();
        SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}You removed current messages from all player's screen!");
    }
    else if(clickedid == Textdraw5)
    {
        HideForRCON(playerid);
        SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}You closed {FF0000}Messages's Panel{FFFFFF}.");
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_CREATE)
    {
        if(!response)
        {
            SendClientMessage(playerid, -1, "{FF0000}[INFO]: {FFFFFF}You don't want to write any messages, so your textdraw's has been hided.");
            HideForRCON(playerid);
        }
        else
        {
            new string[128];
            if(!strlen(inputtext)) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You didn't write anything in box.");
            if(strval(inputtext) > 75) return SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}Your text it's longer that limit.");
            Show();
            format(string, sizeof(string), "%s", strval(inputtext));
            TextDrawSetString(Message, string);
            SendClientMessageToAll(-1, "{FF0000}[INFO]: {FFFFFF}An Admin has made a new announce.");
        }
    }
    return 1;
}

stock Show()
{
    TextDrawShowForAll(Box);
    TextDrawShowForAll(AnotherBox);
    TextDrawShowForAll(Message);
}

stock Hide()
{
    TextDrawHideForAll(Box);
    TextDrawHideForAll(AnotherBox);
    TextDrawHideForAll(Message);
}

stock ShowForRCON(playerid)
{
    TextDrawShowForPlayer(playerid, Textdraw0);
    TextDrawShowForPlayer(playerid, Textdraw1);
    TextDrawShowForPlayer(playerid, Textdraw2);
    TextDrawShowForPlayer(playerid, Textdraw3);
    TextDrawShowForPlayer(playerid, Textdraw4);
    TextDrawShowForPlayer(playerid, Textdraw5);
}

stock HideForRCON(playerid)
{
    TextDrawHideForPlayer(playerid, Textdraw0);
    TextDrawHideForPlayer(playerid, Textdraw1);
    TextDrawHideForPlayer(playerid, Textdraw2);
    TextDrawHideForPlayer(playerid, Textdraw3);
    TextDrawHideForPlayer(playerid, Textdraw4);
    TextDrawHideForPlayer(playerid, Textdraw5);
}
So, I made above system, wich, an Admin type /messages, remove messages, close that textdraw. When I click on "Create new message", it's shows me dialog, then after dialog doesn't happen' nothing. Shows only boxs, but string of message doesn't work. What's wrong in my code. +rep.
Reply
#2

Put 'Show()' AFTER TextDrawSetString.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)