[POMOC]TextBOx

Započeo Welcome
13. Avg. 2012.
525
pregleda
4
postova
DDaanniieell
3
Hustler
13. Avg. 2012.
Skripta koju koristim:Moja
Detaljan opis problema😛a Probao sam da Napravim Ovakav TextBox ali ne mi uspeje , daj molim vas napravite mi i stavita u temu li PM Mi pratite !!! TEXTBOX JE POD PARE

Dio skripte: TextDraw
Neke slike/video za lakse dobivanje pomoci(neobavezno):
DDaanniieell
3
Hustler
14. Avg. 2012.
Refresh
DDaanniieell
3
Hustler
14. Avg. 2012.
Carlito wrote on August 14, 2012, 12:35 pm:
Refresh
Chris Martin
5
Underboss
15. Avg. 2012.
To mozes napraviti pomoću inc. ''progress'' bara.... Evo ti ovdje inc. ali dalje neznam sto trebas, raspitaj se 😄
/**
*  Progress Bar Creator
*  Copyright 2007-2010 Infernus' Group,
*  Flávio Toribio (flavio_toribio@hotmail.com)
*
*  This is an add-on for the include Progress Bar
http://forum.sa-mp.com/index.php?topic=138556
*/

#include
#include

#if !defined SetPVarInt
    #error Version 0.3 R7 or higher of SA:MP Server requiered
#endif

#if _progress_version < 0x1310
    #error Version 1.3.1 or higher of progress.inc required
#endif

#define DIALOG_BAR      1834
#define DIALOG_COLOR    1835
#define DIALOG_DONE    1836

#define ITEM_MOVE      0
#define ITEM_RESIZE    1
#define ITEM_COLOR      2
#define ITEM_DONE      3

#define MOVE_NONE      0
#define MOVE_POSITION  1
#define MOVE_SIZE      2

static Bars;

public OnFilterScriptInit()
{
    for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i))
    {
        OnPlayerSpawn(i);
    }
    print("Progress Bar Creator by Flavio Toribio loaded");
    return 1;
}

public OnFilterScriptExit()
{
    for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i))
    {
        OnPlayerDisconnect(i, 0);
        if(GetPVarInt(i, "MovingBar"))
        {
            TogglePlayerControllable(i, true);
        }
        if(GetPVarInt(i, "CreatingBar"))
        {
            DeletePVar(i, "BarID");
            DeletePVar(i, "MovingBar");
            DeletePVar(i, "CreatingBar");
        }
    }
    print("Progress Bar Creator by Flavio Toribio unloaded");
    return 1;
}

public OnPlayerSpawn(playerid)
{
    SendClientMessage(playerid, 0xFFF000AA, "Use /bar to start making a progress bar!");
    return 1;
}

GetVars(index, &Float:x, &Float:y, &Float:w, &Float:h, &color)
{
    x = Bars;
    y = Bars;
    w = Bars;
    h = Bars;
    color = Bars;
}

UpdateVars(index, Float:x, Float:y, Float:w, Float:h, color)
{
    Bars = x;
    Bars = y;
    Bars = w;
    Bars = h;
    Bars = color;
}

DeleteVars(index)
{
    Bars = 0.0;
    Bars = 0.0;
    Bars = 0.0;
    Bars = 0.0;
    Bars = 0;
}

public OnPlayerUpdate(playerid)
{
    if(GetPVarInt(playerid, "MovingBar"))
    {
        new keys, ud, lr;
        GetPlayerKeys(playerid, keys, ud, lr);

        new Bar:barid = Bar:GetPVarInt(playerid, "BarID");
        new Float:x, Float:y, Float:w, Float:h, color;

        if(ud || lr)
        {
            DestroyProgressBar(barid);
            GetVars(_:barid, x, y, w, h, color);
            DeleteVars(_:barid);
            if(ud == KEY_UP)
            {
                if(GetPVarInt(playerid, "MovingBar") == MOVE_POSITION)
                {
                    y -= keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(y < 0.0) y = 0.0;
                }
                else if(GetPVarInt(playerid, "MovingBar") == MOVE_SIZE)
                {
                    h -= keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(h < 1.5) h = 1.5;
                }
            }
            else if(ud == KEY_DOWN)
            {
                if(GetPVarInt(playerid, "MovingBar") == MOVE_POSITION)
                {
                    y += keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(y > 480.0) y = 480.0;
                }
                else if(GetPVarInt(playerid, "MovingBar") == MOVE_SIZE)
                {
                    h += keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(h > 480.0) h = 480.0;
                }
            }
            if(lr == KEY_LEFT)
            {
                if(GetPVarInt(playerid, "MovingBar") == MOVE_POSITION)
                {
                    x -= keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(x < 0.0) x = 0.0;
                }
                else if(GetPVarInt(playerid, "MovingBar") == MOVE_SIZE)
                {
                    w -= keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(w < 1.5) w = 1.5;
                }
            }
            else if(lr == KEY_RIGHT)
            {
                if(GetPVarInt(playerid, "MovingBar") == MOVE_POSITION)
                {
                    x += keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(x > 640.0) x = 640.0;
                }
                else if(GetPVarInt(playerid, "MovingBar") == MOVE_SIZE)
                {
                    w += keys & KEY_SPRINT ? 2.0 : 1.0;
                    if(w > 640.0) w = 640.0;
                }
            }
            barid = CreateProgressBar(x, y, w, h, color, 100.0);
            SetProgressBarValue(barid, 50.0);
            ShowProgressBarForPlayer(playerid, barid);
            UpdateVars(_:barid, x, y, w, h, color);
            SetPVarInt(playerid, "BarID", _:barid);
        }
    }
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
        if(GetPVarInt(playerid, "MovingBar"))
        {
            TogglePlayerControllable(playerid, true);
            SetPVarInt(playerid, "MovingBar", MOVE_NONE);
            SendClientMessage(playerid, 0xFFF000AA, "Now you can use /bar again to modify or finalize it.");
        }
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(GetPVarInt(playerid, "MovingBar"))
    {
        TogglePlayerControllable(playerid, true);
        SetPVarInt(playerid, "MovingBar", MOVE_NONE);
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(GetPVarInt(playerid, "CreatingBar") == 1)
    {
        DestroyProgressBar(Bar:GetPVarInt(playerid, "BarID"));
        DeleteVars(GetPVarInt(playerid, "BarID"));
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/bar", true))
    {
        if(GetPVarInt(playerid, "CreatingBar") == 0)
        {
            new Bar:barid;
            if((barid = CreateProgressBar(320.0, 240.0, 56.50, 3.39, 0xFF0000FF, 100.0)) == INVALID_BAR_ID)
            {
                SendClientMessage(playerid, 0xFF0000AA, "Internal error occurred when creating progress bar.");
                return 1;
            }
            SetProgressBarValue(barid, 50.0);
            ShowProgressBarForPlayer(playerid, barid);
            TogglePlayerControllable(playerid, false);
            UpdateVars(_:barid, 320.0, 240.0, 55.5, 3.2, 0xFF0000FF);

            SetPVarInt(playerid, "MovingBar", MOVE_POSITION);
            SetPVarInt(playerid, "CreatingBar", 1);
            SetPVarInt(playerid, "BarID", _:barid);

            SendClientMessage(playerid, 0xFFF000AA, "Use the arrow keys to move the bar arround the screen.");
            SendClientMessage(playerid, 0xFFF000AA, "Keep pressing 'Sprint' key to move faster.");
            SendClientMessage(playerid, 0xFFF000AA, "Press the 'Enter car' key when done.");
        }
        else
        {
            ShowPlayerDialog(playerid, DIALOG_BAR, DIALOG_STYLE_LIST, "Progress Bar", "Change Position\nChange Size\nChange Color\nI'm done, save bar!", "OK", "Cancel");
        }
        return 1;
    }
    return 0;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_BAR)
    {
        if(response)
        {
            if(listitem == ITEM_MOVE)
            {
                SetPVarInt(playerid, "MovingBar", MOVE_POSITION);
                TogglePlayerControllable(playerid, false);
                SendClientMessage(playerid, 0xFFF000AA, "Use the arrow keys to move the bar arround the screen.");
                SendClientMessage(playerid, 0xFFF000AA, "Keep pressing 'Sprint' key to move faster.");
                SendClientMessage(playerid, 0xFFF000AA, "Press the 'Enter car' key when done.");
            }
            else if(listitem == ITEM_RESIZE)
            {
                SetPVarInt(playerid, "MovingBar", MOVE_SIZE);
                TogglePlayerControllable(playerid, false);
                SendClientMessage(playerid, 0xFFF000AA, "Use the arrow keys to resize the bar.");
                SendClientMessage(playerid, 0xFFF000AA, "Keep pressing 'Sprint' key to resize faster.");
                SendClientMessage(playerid, 0xFFF000AA, "Press the 'Enter car' key when done.");
            }
            else if(listitem == ITEM_COLOR)
            {
                ShowPlayerDialog(playerid, DIALOG_COLOR, DIALOG_STYLE_INPUT, "Change Color", "Type the color in hexadecimal format.\nExample: 0xFFF000FF\nRemember the alpha parameter (the last 2 numbers),\nthey define the transparency.\nIf you have doubts, use an external Color Picker.", "OK", "Cancel");
            }
            else if(listitem == ITEM_DONE)
            {
                ShowPlayerDialog(playerid, DIALOG_DONE, DIALOG_STYLE_INPUT, "Saving Bar", "Type the file name which you want to save the bar;\nYou don't need to specify the extension;\nThe default one is .txt;\nThe file will be created in the scriptfiles folder;\nAny file with the same name will be replaced automatically.", "Save", "Cancel");
            }
        }
    }
    else if(dialogid == DIALOG_COLOR)
    {
        SetProgressBarColor(Bar:GetPVarInt(playerid, "BarID"), hexstr(inputtext));
        UpdateProgressBar(Bar:GetPVarInt(playerid, "BarID"), playerid);
        Bars[GetPVarInt(playerid, "BarID")] = hexstr(inputtext);
    }
    else if(dialogid == DIALOG_DONE)
    {
        new File:file, name, line, barid;

        if(strlen(inputtext) > 32 - 4)
        {
            strdel(inputtext, 32 - 4, strlen(inputtext));
        }
        format(name, sizeof name, "%s.txt", inputtext);

        if(!(file = fopen(name, io_write)))
        {
            SendClientMessage(playerid, 0xFF0000AA, "There was an error on file writing, try again.");
            ShowPlayerDialog(playerid, DIALOG_DONE, DIALOG_STYLE_INPUT, "Saving Bar", "Type the file name which you want to save the bar;\nYou don't need to specify the extension;\nThe default one is .txt;\nThe file will be created in the scriptfiles folder;\nAny file with the same name will be replaced automatically.", "Save", "Cancel");
            return 1;
        }
        barid = GetPVarInt(playerid, "BarID");
        format(line, sizeof line, "new Bar:bar = CreateProgressBar(%.2f, %.2f, %.2f, %.2f, %d, 100.0);\r\n",
            Bars, Bars, Bars, Bars, Bars);

        fwrite(file, line);
        fwrite(file, "ShowProgressBarForAll(bar);\r\n");
        fwrite(file, "\r\nNow, take a look at the official SA:MP forum topic to know how to use this:\r\n\r\nhttp://forum.sa-mp.com/index.php?topic=138556\r\n");
        fclose(file);

        DeleteVars(barid);
        DestroyProgressBar(Bar:barid);
        DeletePVar(playerid, "BarID");
        DeletePVar(playerid, "MovingBar");
        DeletePVar(playerid, "CreatingBar");

        SendClientMessage(playerid, 0xFFFF00AA, "All done! Now take a look at your file to see the result!");
        SendClientMessage(playerid, 0xFFFFFFAA, "You can create another progress bar now.");
    }
    return 1;
}

stock hexstr(string[])
{
new ret, val, i;
if(string == '0' && (string == 'x' || string == 'X')) i = 2;
while(string)
{
ret <<= 4;
val = string[i++] - '0';
if(val > 0x09) val -= 0x07;
if(val > 0x0F) val -= 0x20;
if(val < 0x01) continue;
if(val < 0x10) ret += val;
}
return ret;
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha