Nuklearna Boma sa Textdraw.

Započeo Plen Ki Mun
5. Jul 2018. Zaključano
480
pregleda
4
postova
Mate
5
Underboss
5. Jul 2018.
Problem(error/warning): Koristim sistem nuklearne bombe putem dialoga, ali ja hoću da to uradim putem textdrawa to jest da mijenjam između baza sa lijevim/desnim textdraw i ispaljivanje bombe, ali ja pojma nemam kako da to napravim, to jest pojma nemam kako da uradim kada stisnem lijevi/desni da mi lista između baza.

@Ino42O
@Bolex_
@Bašovski

Dio skripte:

Ovo su pozicije kamera za taj textdraw biranje.

1. 2730.4636,-2033.5076,52.0236,135.2458
2. 2431.8169,-1644.3945,56.7583,135.2458

Ovu su lijevi/desni i textdraw za bacit bombu to jest da izaberem tu bazu

new PlayerText:NukeLeftButton;
new PlayerText:NukeRightButton;
new PlayerText:SelectBase;

NukeLeftButton = CreatePlayerTextDraw(playerid, 236.000000, 291.812500, "ld_beat:left");
PlayerTextDrawLetterSize(playerid, NukeLeftButton, 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, NukeLeftButton, 26.500000, 17.937500);
PlayerTextDrawAlignment(playerid, NukeLeftButton, 1);
PlayerTextDrawColor(playerid, NukeLeftButton, -1523963137);
PlayerTextDrawSetShadow(playerid, NukeLeftButton, 0);
PlayerTextDrawSetOutline(playerid, NukeLeftButton, 0);
PlayerTextDrawFont(playerid, NukeLeftButton, 4);
PlayerTextDrawSetSelectable(playerid, NukeLeftButton, true);

NukeRightButton = CreatePlayerTextDraw(playerid, 362.500000, 293.125000, "ld_beat:right");
PlayerTextDrawLetterSize(playerid, NukeRightButton, 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, NukeRightButton, 24.500000, 17.500000);
PlayerTextDrawAlignment(playerid, NukeRightButton, 1);
PlayerTextDrawColor(playerid, NukeRightButton, -1523963137);
PlayerTextDrawSetShadow(playerid, NukeRightButton, 0);
PlayerTextDrawSetOutline(playerid, NukeRightButton, 0);
PlayerTextDrawFont(playerid, NukeRightButton, 4);
PlayerTextDrawSetSelectable(playerid, NukeRightButton, true);

SelectBase = CreatePlayerTextDraw(playerid, 297.000000, 295.312500, "IZABERI");
PlayerTextDrawLetterSize(playerid, SelectBase, 0.204999, 1.070625);
PlayerTextDrawAlignment(playerid, SelectBase, 1);
PlayerTextDrawColor(playerid, SelectBase, -1);
PlayerTextDrawSetShadow(playerid, SelectBase, 0);
PlayerTextDrawSetOutline(playerid, SelectBase, 1);
PlayerTextDrawBackgroundColor(playerid, SelectBase, 51);
PlayerTextDrawFont(playerid, SelectBase, 2);
PlayerTextDrawSetProportional(playerid, SelectBase, 1);
PlayerTextDrawSetSelectable(playerid, SelectBase, true);


A ovo je kod nuklearne bombe sa dialogom.

case DIALOG_NUKE:
{
    if(! response) return cmd_nuke(playerid);
    if(response)
    {
        if(!IsPlayerInRangeOfPoint(playerid, 3.0, 283.1531, 475.3052, 30.3334))
{
return SCM(playerid, COLOR_ORANGE_RED, "* Nisi na mjestu.");
}
new string;

      if(GetPlayerTeam(playerid) == listitem)
        {
                return SCM(playerid, COLOR_ORANGE_RED, "*Ne mozes bacit bombu na svoju bazu");
        }

    if(GetPlayerCash(playerid) < NUKE_COST)
{
    return SCM(playerid, COLOR_ORANGE_RED, "** Nemas dovoljno novaca.");
}

    GivePlayerCash(playerid, - NUKE_COST);

    gNuke = listitem;

        format(string, sizeof(string), "Nuklearna bomba ce biti bacena na %s.", gTeamBase[gNuke]);
        SCMToAll(COLOR_LIGHTBLUE, string);

        SetTimerEx("OnPlayerLaunchNuke", (6 * 1000), false, "ii", playerid, gNuke);
        gNuke = NUKE_INTERVAL;
    }
}


public OnPlayerLaunchNuke(playerid, baseid)
{
gNuke = -1;

new kills;
new string;
new Float:pos;
foreach(new i : Player)
{
if( i != playerid &&
  IsPlayerInGangZone(i, gTeamBase) &&
GetPlayerTeam(i) != GetPlayerTeam(playerid) &&
! GetPlayerVirtualWorld(i) &&
! GetPlayerInterior(i) &&
IsPlayerSpawned(i) &&
(GetPlayerTeam(i) < sizeof(TEAM) || GetPlayerTeam(i) == NO_TEAM))
{
  GetPlayerPos(i, pos, pos, pos);
    CreateExplosion(pos + 2, pos, pos, 6, 5);
    CreateExplosion(pos - 2, pos, pos, 6, 5);

SetCustomHealth(i, 0.0);

format(string, sizeof(string), "Ubio si %s(%i) sa nuklearnom bombom", GetName(i), i);
SCM(playerid, COLOR_ORANGE_RED, string);

GivePlayerCash(playerid, 115);

CallLocalFunction("OnPlayerCustomDeath", "iii", i, playerid, 51);

kills += 1;
}
}
return 1;
}


CMD:nuke(playerid)
{
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, 283.1531, 475.3052, 30.3334))
{
return SCM(playerid, COLOR_ORANGE_RED, "* Nisi na mjestu..");
}

    new string;

    new dialogstr;
    for(new i; i < sizeof(gTeamBase); i++)
    {
    format(string, sizeof(string), "%s\n", gTeamBase);
    strcat(dialogstr, string);
    }

if(GetPlayerDialogID(playerid) != INVALID_DIALOG_ID) return 1;

return ShowPlayerDialog(playerid, DIALOG_NUKE, DIALOG_STYLE_LIST, "Bomba", dialogstr, "Izaberi", "Zatvori");
}


Ako još nešto treba recite.

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]//[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): //
David||BM
5
Made Man
🔥13
5. Jul 2018.
stavis da ti na cmd PlayerTextDrawShow(playerid, tdove); pa isto OnPlayerClick.!!!
Mate
5
Underboss
5. Jul 2018.
Skorpija wrote on July 5, 2018, 5:56 pm:
stavis da ti na cmd PlayerTextDrawShow(playerid, tdove); pa isto OnPlayerClick.!!!


Bravo kolumbo za to sam i sam znao, čitaj gore Å¡to sam napisao  😄
RahimPAWNO
5
OG Legend
5. Jul 2018.
Jednostavno smjestis u varijablu koju je stranu igrac odabrao. Pisao sam preko mobitela, trebalo bi raditi...
Takodje na connectu igraca postavi vrijednost varijable NuklearkaTD na -1.
new 
    NuklearkaTD[ MAX_PLAYERS ] = { -1, ... };
#define nuke_DESNA 1
#define nuke_LIJEVA 2

public OnPlayerClickPlayerTextDraw( playerid, PlayerText:playertextid ) {
    if( NuklearkaTD[ playerid ] != -1 ) {
        if( playertextid == SelectBase ) {
            if( NuklearkaTD[ playerid ] == nuke_DESNA ) {
                // ovdje ide kod za aktiviranje desne nuklearke
            }
            else {
                // ovdje ide kod za aktiviranje lijeve nuklearke
            }
        }
        else if( playertextid == NukeLeftButton[ playerid ] ) NuklearkaTD[ playerid ] = nuke_LIJEVA;
        else NuklearkaTD[ playerid ] = nuke_DESNA;
    }
    return (true);
}

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha