Jump to content
  • 0

pomoc TextDraw


Twixo

Dotaz

čaute, mam jail, keď zatkne admin hráča da proste /jail ID min. dôvod, vše ide ako ma okrem text drawu. Problem je ten, že na miesto čas: 120 to dáva cas: x jail 0 1 test (to jail 0 1 test je to čo som dal ako prikaz) a to x, tak tam sa menia rôzne znaky $ /,.. ale čas ide ako ma aj ostatne aj sa schova a ukaže ten textdraw ako má. Posielam code kde sa vyskytuje ten textdraw

//horok modu

new Text:jail0;
new Text:jail1;

// OnGameModeInit

jail0 = TextDrawCreate(572.000000, 226.000000, "120");
	TextDrawBackgroundColor(jail0, 255);
	TextDrawFont(jail0, 2);
	TextDrawLetterSize(jail0, 0.330000, 1.000000);
	TextDrawColor(jail0, -1);
	TextDrawSetOutline(jail0, 1);
	TextDrawSetProportional(jail0, 1);
	TextDrawSetSelectable(jail0, 0);

	jail1 = TextDrawCreate(532.000000, 226.000000, "cas:");
	TextDrawBackgroundColor(jail1, 255);
	TextDrawFont(jail1, 2);
	TextDrawLetterSize(jail1, 0.330000, 1.000000);
	TextDrawColor(jail1, -1);
	TextDrawSetOutline(jail1, 1);
	TextDrawSetProportional(jail1, 1);
	TextDrawSetSelectable(jail1, 0);

// Public Jail

public Jail(playerid)
{
SetPVarInt(playerid, "JailSeconds", GetPVarInt(playerid, "JailSeconds") - 1);
if(GetPVarInt(playerid, "JailSeconds") == 0)
{
	SetPVarInt(playerid,"Jail",0);
	SendClientMessage(playerid,-1,"Odpykal si si trest");
	SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746);
	SetPlayerInterior(playerid,0);
	Basa[playerid] = 0;
	TextDrawHideForPlayer(playerid, jail0);
	TextDrawHideForPlayer(playerid, jail1);
	KillTimer(jailTimers[playerid]);
}
else
{
new str[128]; format(str, 128, "%s", GetPVarInt(playerid, "JailSeconds"));
TextDrawSetString(jail0,str);
TextDrawShowForPlayer(playerid, jail0);
TextDrawShowForPlayer(playerid, jail1);
}
	return 1;
}


// dcmd jail

... error spravy


      SetPVarInt(id,"Jail",1);
      jailTimers[id] = SetTimerEx("Jail",1000,true,"i",id);
      SetPVarInt(id, "JailSeconds", minuty * 60);

...nastavenie interieru, pozicia, že je v base atd


Edited by Twixo
Link to comment
Share on other sites

12 odpovědí na tuto otázku

Recommended Posts

  • 0

Zkus toto - místo textdrawu pro každého hráče si vytvářel globální textdraw:

//horok modu

new PlayerText:jail0[MAX_PLAYERS];//textdraw pro každého hráče
new Text:jail1;

// OnGameModeInit

        jail0 = CreatePlayerTextDraw(572.000000, 226.000000, "120"); //každý hráč potřebuje svůj textdraw, proto nemůžeš vytvářet globální páč, když skrz nějakého hráče nastavíš nějaký čas, ten samý čas se bude zobrazovat i ostatním.  (bude ti to zkrátka blbnout...
	PlayerTextDrawBackgroundColor(jail0, 255);
	PlayerTextDrawFont(jail0, 2);
	PlayerTextDrawLetterSize(jail0, 0.330000, 1.000000);
	PlayerTextDrawColor(jail0, -1);
	PlayerTextDrawSetOutline(jail0, 1);
	PlayerTextDrawSetProportional(jail0, 1);
	PlayerTextDrawSetSelectable(jail0, 0);

	jail1 = TextDrawCreate(532.000000, 226.000000, "cas:"); //tento texdraw bude pro všechny stejný, takže může zůstat globálním
	TextDrawBackgroundColor(jail1, 255);
	TextDrawFont(jail1, 2);
	TextDrawLetterSize(jail1, 0.330000, 1.000000);
	TextDrawColor(jail1, -1);
	TextDrawSetOutline(jail1, 1);
	TextDrawSetProportional(jail1, 1);
	TextDrawSetSelectable(jail1, 0);

// Public Jail

public Jail(playerid)
{
    SetPVarInt(playerid, "JailSeconds", GetPVarInt(playerid, "JailSeconds") - 1);
    PlayerTextDrawHide(playerid, jail0);// Předtím než textdrawy znovu zobrazíš by si je měl skrýt
    TextDrawHideForPlayer(playerid, jail1);//-||-
    if(GetPVarInt(playerid, "JailSeconds") == 0)
    {
        SetPVarInt(playerid,"Jail",0);
	SendClientMessage(playerid,-1,"Odpykal si si trest");
	SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746);
	SetPlayerInterior(playerid,0);
	Basa[playerid] = 0;
	KillTimer(jailTimers[playerid]);
    }
    else
   {
       new str[10]; format(str, 10, "%s", GetPVarInt(playerid, "JailSeconds"));//proč 128 znaků, i těch 10 je zbytečně moc, protože nepředpokládám, že budeš někoho takhle dlouho věznit
       PlayerTextDrawSetString(jail0,str);
       PlayerTextDrawShow(playerid, jail0);
       TextDrawShowForPlayer(playerid, jail1);
   }
   return 1;
}


// dcmd jail

... error spravy


      SetPVarInt(id,"Jail",1);
      jailTimers[id] = SetTimerEx("Jail",1000,true,"i",id);
      SetPVarInt(id, "JailSeconds", minuty * 60);

...nastavenie interieru, pozicia, že je v base atd

Edited by GaRGoyLeS
Link to comment
Share on other sites

  • 0

PlayerTextDraw ma jako prvni parametr hracovo id a to vam tam oboum chybi (proste tam pripis playerid vsude).

 

 

Jinak ti to nefunguje, protoze mas spatny specifikator u formatu. Mas tam pro string ale potrebujes integer.

Edited by Lukasz
Link to comment
Share on other sites

  • 0

Tam kde je použiti PlayerText mi dáva nezhodu (tag mismatch, argument type mismatch).

 

Promiň moje blbost:

//OnPlayerConnect
        jail0[playerid] = CreatePlayerTextDraw(playerid, 572.000000, 226.000000, "120"); //každý hráč potřebuje svůj textdraw, proto nemůžeš vytvářet globální páč, když skrz nějakého hráče nastavíš nějaký čas, ten samý čas se bude zobrazovat i ostatním.  (bude ti to zkrátka blbnout...
	PlayerTextDrawBackgroundColor(playerid, jail0[playerid], 255);
	PlayerTextDrawFont(playerid,jail0[playerid], 2);
	PlayerTextDrawLetterSize(playerid,jail0[playerid], 0.330000, 1.000000);
	PlayerTextDrawColor(playerid,jail0[playerid], -1);
	PlayerTextDrawSetOutline(playerid,jail0[playerid], 1);
	PlayerTextDrawSetProportional(playerid,jail0[playerid], 1);
	PlayerTextDrawSetSelectable(playerid,jail0[playerid], 0);

A na zobrazení a skyrtí:

PlayerTextDrawShow(playerid, jail0[playerid]);
PlayerTextDrawHide(playerid, jail0[playerid]);
PlayerTextDrawSetString(playerid, jail0[playerid], str);

//Edit: Teď už to je snad kompletní :d

Edited by GaRGoyLeS
Link to comment
Share on other sites

  • 0

Promiň moje blbost:

//OnPlayerConnect
        jail0[playerid] = CreatePlayerTextDraw(playerid, 572.000000, 226.000000, "120"); //každý hráč potřebuje svůj textdraw, proto nemůžeš vytvářet globální páč, když skrz nějakého hráče nastavíš nějaký čas, ten samý čas se bude zobrazovat i ostatním.  (bude ti to zkrátka blbnout...
	PlayerTextDrawBackgroundColor(playerid, jail0[playerid], 255);
	PlayerTextDrawFont(playerid,jail0[playerid], 2);
	PlayerTextDrawLetterSize(playerid,jail0[playerid], 0.330000, 1.000000);
	PlayerTextDrawColor(playerid,jail0[playerid], -1);
	PlayerTextDrawSetOutline(playerid,jail0[playerid], 1);
	PlayerTextDrawSetProportional(playerid,jail0[playerid], 1);
	PlayerTextDrawSetSelectable(playerid,jail0[playerid], 0);

A na zobrazení a skyrtí:

PlayerTextDrawShow(playerid, jail0[playerid]);
PlayerTextDrawHide(playerid, jail0[playerid]);
PlayerTextDrawSetString(playerid, jail0[playerid], str);

//Edit: Teď už to je snad kompletní :d

Stále mi robí to čo predtým.

Link to comment
Share on other sites

  • 0
PlayerTextDraw ma jako prvni parametr hracovo id a to vam tam oboum chybi (proste tam pripis playerid vsude).

Jinak ti to nefunguje, protoze mas spatny specifikator u formatu. Mas tam pro string ale potrebujes integer.

 

Toto jsi opravil?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...