Jump to content
  • 0

pomoc Textdraw


tomas150

Dotaz

Zdravím,mám vlastní textdraw na příkaz ale když přes příkaz vytvořím textdraw a připojí se nový hráč nebo se někdo relogne a nebo odhlasí a přihlasí tak potom ten text už nevidí a vidí ho pouze hráči kteří už byli na serveru když jsem ten textdraw napsal a potřebuju aby to vyděli i ty kteří se relognou nebo přijde někdo nový nebo se odhlasí a přihlasí

 

 

Link to comment
Share on other sites

Recommended Posts

  • 0

ak je ten TextDraw (ďalej len TD) len 1, je to jednoduché, a je ich viac, je to komplikovanejšie...

 

hore do módu:

new bool:IsTDDisplay;

 

public OnPlayerConnect:

if(IsTDDisplay){ShowTextDrawForPlayer(playerid, TD);} // soráč fakt si nie som istý ako je ten príkaz na zobrazenie TD, ale to už zvládneš spraviť ;)

 

a posledná vec:

do príkazu si pridaj riadok: IsTDDisplay = true; // false ak chceš TD vypnúť

Link to comment
Share on other sites

  • 0

Ahoj, hele zkoušel jsem nešlo hele nevložil bys mi to tam?

code

 

 

#include <a_samp>
#include <Dini>
#include <zcmd>
#include <sscanf>
#define modra 0xFF0000AA
 
new AdminLevel[MAX_PLAYERS];
 
stock Meno(playerid)
{
new pName[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, pName, sizeof(pName));
  }
  return pName;
}
 
public OnPlayerConnect(playerid)
{
    AdminLevel[playerid] = false;
return 1;
}
 
public OnPlayerRequestSpawn(playerid)
{
AdminLevel[playerid] = 0;
return 1;
}
 
public OnPlayerSpawn(playerid)
{
new file[70];
  format(file,sizeof(file),"%s.dudb.sav",Meno(playerid));
AdminLevel[playerid] = dini_Int(file,"adminlvl");
return 1;
}
new Textdraw2;
public OnFilterScriptInit()
{
Textdraw2 = TextDrawCreate(290.0000, 435.0000, "000000");
TextDrawAlignment(Textdraw2, 2);
TextDrawBackgroundColor(Textdraw2, 255);
TextDrawFont(Textdraw2, 1);
TextDrawLetterSize(Textdraw2, 0.399994, 1.399999);
TextDrawColor(Textdraw2, -1);
TextDrawSetOutline(Textdraw2, 0);
TextDrawSetProportional(Textdraw2, 1);
TextDrawSetShadow(Textdraw2, 1);
return 1;
}
 
COMMAND:setdraw(playerid, params[])
{
    if(AdminLevel[playerid] == 0) return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
    else if(isnull(params)) return SendClientMessage(playerid,-1,"{FF0000}[ ! ] {ffffff}Použití: /setdraw Text");
    TextDrawSetString(Textdraw2,params);
    TextDrawShowForAll(Textdraw2);
    return 1;
}
COMMAND:deldraw(playerid, params[])
{
    if(AdminLevel[playerid] == 0) return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
    else if(isnull(params)) return SendClientMessage(playerid,-1,"{FF0000}[ ! ] {ffffff}Použití: /deldraw Text");
    TextDrawHideForAll(Textdraw2);
    return 1;
}

Link to comment
Share on other sites

  • 0

Tady to máš zpackané všechno dohromady:

 

 

#include <a_samp>
#include <Dini>
#include <zcmd>
#include <sscanf>
#define modra 0xFF0000AA

new AdminLevel[MAX_PLAYERS];
new bool:IsTDDisplay; //bool vrací pouze hodnotu true a false, mohl by jsi vytvořit standartní proměnnou, ale bool ti ušetří mnohem více paměti
new Textdraw2;


public OnFilterScriptInit()
{
	Textdraw2 = TextDrawCreate(290.0000, 435.0000, "000000");
	TextDrawAlignment(Textdraw2, 2);
	TextDrawBackgroundColor(Textdraw2, 255);
	TextDrawFont(Textdraw2, 1);
	TextDrawLetterSize(Textdraw2, 0.399994, 1.399999);
	TextDrawColor(Textdraw2, -1);
	TextDrawSetOutline(Textdraw2, 0);
	TextDrawSetProportional(Textdraw2, 1);
	TextDrawSetShadow(Textdraw2, 1);
	return 1;
}

public OnPlayerConnect(playerid)
{
    AdminLevel[playerid] = false;
    if(IsTDDisplay)
		ShowTextDrawForPlayer(playerid, Textdraw2);
    
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	AdminLevel[playerid] = 0;
	return 1;
}

public OnPlayerSpawn(playerid)
{
	new file[70];
  	format(file,sizeof(file),"%s.dudb.sav",Meno(playerid));
	AdminLevel[playerid] = dini_Int(file,"adminlvl");
	return 1;
}


COMMAND:setdraw(playerid, params[])
{
    if(AdminLevel[playerid] == 0) return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
    else if(isnull(params)) return SendClientMessage(playerid,-1,"{FF0000}[ ! ] {ffffff}Použití: /setdraw Text");

    IsTDDisplay = true;
    TextDrawSetString(Textdraw2,params);
    TextDrawShowForAll(Textdraw2);
    return 1;
}
COMMAND:deldraw(playerid, params[])
{
    if(AdminLevel[playerid] == 0) return SendClientMessage(playerid, 0xFF0000AA,"[ ! ] {ffffff}Nemáte administrátorská práva");
    else if(isnull(params)) return SendClientMessage(playerid,-1,"{FF0000}[ ! ] {ffffff}Použití: /deldraw Text");

    IsTDDisplay = false;
    TextDrawHideForAll(Textdraw2);
    return 1;
}

stock Meno(playerid)
{
	new pName[MAX_PLAYER_NAME];
	if(IsPlayerConnected(playerid))
	{
		GetPlayerName(playerid, pName, sizeof(pName));
  	}
  	return pName;
}

 

 

Edited by D@ndys
Link to comment
Share on other sites

  • 0

Funguje děkuji


Ještě jedna věc hele danyas neudělal bys mi příkaz /vyhra na admin level podminku si dodělám jen ten příkaz že když napíše admin

/vyhra ID ČÁSTKA DŮVOD

Tak to v chatu napíše Administrátor tomas150 udělil výhru hráči tomas150 [ Důvod: Výhra] 

a tomu hráči kterému tu výhru dal tak by dostal tolik peněz kolik tam napsal jako částku

Edited by tomas150
Link to comment
Share on other sites

  • 0
#include <a_samp>
#include <zcmd>
#include <sscanf2>
CMD:vyhra(playerid, params[])

{
	new id,
	    money,
	    duvod[140],
	    string[140],
	    nick[MAX_PLAYER_NAME],
	    admin[MAX_PLAYER_NAME];
	if (sscanf(params, "iis", id, money, duvod)) return SendClientMessage(playerid, -1, "{ff0000}Použití: /vyhra ID ČÁSTKA DŮVOD");
	if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{ff0000}[ ! ] Hráč není připojený !");
	if (money < 1 || money > 99999999) return SendClientMessage(playerid, -1, "{ff0000}[ ! ] Špatné zadané peníze !");
	GetPlayerName(id, nick, MAX_PLAYER_NAME);
	GetPlayerName(playerid, admin, MAX_PLAYER_NAME);
	format(string, 140, "{ff0000}Administrátor %s dal hráčovi %s %s dolarů [Důvod: %s]", admin, nick, money, duvod);
	SendClientMessageToAll(-1, string);
	GivePlayerMoney(playerid, money);
	return 1;
}

Rychle jsem něco splácal snad to pomůže :)

Edited by PetrPaulik
Link to comment
Share on other sites

  • 0

GivePlayerMoney(playerid, money);

Zkus místo tohodle tam dát tohle:

GivePlayerMoney(id, money);

 

Takhle by to už mohlo být. btw to "id" je ID které zadáš, tak asi v tom byla chybička :d

Edited by PetrPaulik
Link to comment
Share on other sites

  • 0
#include <a_samp>
#include <zcmd>
#include <sscanf2>
CMD:vyhra(playerid, params[])

{
	new id,
	    money,
	    duvod[140],
	    string[140],
	    nick[MAX_PLAYER_NAME],
	    admin[MAX_PLAYER_NAME];
	if (sscanf(params, "iis", id, money, duvod)) return SendClientMessage(playerid, -1, "{ff0000}Použití: /vyhra ID ČÁSTKA DŮVOD");
	if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{ff0000}[ ! ] Hráč není připojený !");
	if (money < 1 || money > 99999999) return SendClientMessage(playerid, -1, "{ff0000}[ ! ] Špatné zadané peníze !");
	GetPlayerName(id, nick, MAX_PLAYER_NAME);
	GetPlayerName(playerid, admin, MAX_PLAYER_NAME);
	format(string, 140, "{ff0000}Administrátor %s dal hráčovi %s %s dolarů [Důvod: %s]", admin, nick, money, duvod);
	SendClientMessageToAll(-1, string);
	GivePlayerMoney(id, money);
	return 1;
}

Takhle by to mělo jít. Mě to píše bez errorů.

Edited by PetrPaulik
Link to comment
Share on other sites

  • 0
#include <a_samp>
#include <zcmd>
#include <sscanf2>
CMD:vyhra(playerid, params[])

{
	new id,
	    penize,
	    duvod[140],
	    string[140],
	    nick[MAX_PLAYER_NAME],
	    admin[MAX_PLAYER_NAME];
	if (sscanf(params, "iis", id, penize, duvod)) return SendClientMessage(playerid, -1, "{ff0000}Použití: /vyhra ID ČÁSTKA DŮVOD");
	if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{ff0000}[ ! ] Hráč není připojený !");
	if (penize < 1 || penize > 99999999) return SendClientMessage(playerid, -1, "{ff0000}[ ! ] Špatné zadané peníze !");
	GetPlayerName(id, nick, MAX_PLAYER_NAME);
	GetPlayerName(playerid, admin, MAX_PLAYER_NAME);
	format(string, 140, "{ff0000}Administrátor %s dal hráčovi %s %s dolarů [Důvod: %s]", admin, nick, penize, duvod);
	SendClientMessageToAll(-1, string);
	GivePlayerMoney(id, penize);
	return 1;
}

Zkus tohle, možná že byla špatná proměnná...

Link to comment
Share on other sites

  • 0

Pořád to nejde

~> Protože máš stažený mód, a všichni tady víme jaký. Takže nějaké výmluvy jsou zbytečné. Buď si udělej vlastní, nebo je přičítej pomocí callbacku.

Link to comment
Share on other sites

  • 0

Ježiš zase ty tu píšeš a tvoje "rady" -_-

~> To tady teď momentálně nikoho nezajímá. Spíše více nás teď bude zajímat, jestli ti to už jde?

Link to comment
Share on other sites

  • 0

Jak už psal SkiBig máš stažený mod, kde může být nějaký antihack na peníze a blokuje to... Udělej si vlastní mod, nebo si tam dej aspon ten úplně základní...

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...