Jump to content

návod Jak si vytvořit pomocí TD informační zprávu nebo box atd...


rEf

Recommended Posts

Viděl jsem tu případy kdy někteří vytváří pro každou zprávu textdraw... 

Ale na co? Stačí vám jeden textdraw na kolik zpráv chcete.

Ukážu vám teď jak na to v klasickém pawnu bez použití YSI a podobně to si potom každý může udělat sám.

 

1. Vytvoříme si textdraw.

( já si udělal klasický text s použitím fontu 2 )

textdraw = TextDrawCreate(188.000000, 384.000000, "~n~");
TextDrawBackgroundColor(textdraw, 255);
TextDrawFont(textdraw, 2);
TextDrawLetterSize(textdraw, 0.270000, 1.000000);
TextDrawColor(textdraw, -1);
TextDrawSetOutline(textdraw, 1);
TextDrawSetProportional(textdraw, 1);

2. Otevřeme si .pwn

3. Někam nahoru vložíme:

new Text:Textdraw[MAX_PLAYERS];

4. Do OnGameModeInit vložíme náš textdraw tímto stylem:

for(new i = 0; i < MAX_PLAYERS; i++){
    Textdraw[i] = TextDrawCreate(188.000000, 384.000000, "~n~");
    TextDrawBackgroundColor(Textdraw[i], 255);
    TextDrawFont(Textdraw[i], 2);
    TextDrawLetterSize(Textdraw[i], 0.270000, 1.000000);
    TextDrawColor(Textdraw[i], -1);
    TextDrawSetOutline(Textdraw[i], 1);
    TextDrawSetProportional(Textdraw[i], 1);
}

5. Vytvoříme si stock pro zprávu.

stock InfoMessage(playerid, time, text[]){ // time nastavíte sekundy například 2 a samozřejmě "text"
    TextDrawHideForPlayer(playerid, Textdraw[playerid]); // schová v případě zprávu která už je vytvořená
    TextDrawSetString(Textdraw[playerid], text); // nastaví text zprávy
    TextDrawShowForPlayer(playerid, Textdraw[playerid]); // zobrazí zprávu
    SetTimerEx("InfoMessageHide", time*1000, false, "i", playerid); // skryje informační zprávu
    return true;
}

6. Vytvoříme si public pro schování zprávy.

forward InfoMessageHide(playerid);
public InfoMessageHide(playerid){
    return TextDrawHideForPlayer(playerid,Textdraw[playerid]);
}

A máme hotovo... Zprávy potom vytváříte takto:

InfoMessage(playerid, 3, "zprava"); // protože se jedná o textdraw nepište do zprávy háčky, čárky a podobně... 3 je počet sekund

To je vše...

Edited by rEf
Link to comment
Share on other sites

takovej dotaz... proc vytvaris pro kazdyho hrace novej TD, kdyz vsem pak stejne ukazes  tu samou zpravu?

 

a kdyz uz ma mit kazdej vlastni TD tak proc nepouzit PlayerTD?

Link to comment
Share on other sites

1. Nejspíš proto že to je zpráva pro určitého hráče ne pro všechny (i když něco na tom bude jenom mi to teď bud nemyslí nebo nevím).

2. Nj

 

Je to starší způsob který se používal/používá. :'(

Edited by rEf
Link to comment
Share on other sites

sorry, predtim sem si code precetl hodne zbezne a myslel sem ze to pak posilas vsem :d

 

ale i tak. je to dost zastaralej, dost neoptimalizovanej a zbytecne slozitej postup. prijde mi zbytecny nesnazit se to posunout nekam dal a nezkouset to updelat lip. uz tim ze tyhle veci chces delat stale takhle mrhas svuj cas.

  • Líbí se mi to! (+1) 2
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...