Jump to content
  • 0

pomoc problem


Twixo

Dotaz

Nazdar,


Proste keď dam /odpočet, tak vše ide ale ten text draw neni tak ako som si ho spravil. Dá mi ho do lavého horného rohu a čierne. Ako opraviť túto chybu?


ps: keď som ten odpočet dal do samostatného pwn, tak to šlo ako má


 


 


//EDIT



new Text:Odpocet0;
new odpocet;
new odpocitavani;
new spusteno;
new hodnota;

forward OdpocetPublic(playerid);

OnGameModeInit

Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
TextDrawBackgroundColor(Odpocet0, 255);
TextDrawFont(Odpocet0, 2);
TextDrawLetterSize(Odpocet0, 0.500000, 2.200000);
TextDrawColor(Odpocet0, -1728052993);
TextDrawSetOutline(Odpocet0, 1);
TextDrawSetProportional(Odpocet0, 1);
TextDrawSetSelectable(Odpocet0, 0);
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);


public OdpocetPublic(playerid)
{
odpocet--;
new string[50];
new str[50];
format(string,sizeof(string),"%d",odpocet);
if(odpocet==0)
{
format(str,sizeof(str),"0");
TextDrawSetString(Odpocet0,str);
KillTimer(odpocitavani);
spusteno=0;
TextDrawHideForAll(Odpocet0);
}else TextDrawSetString(Odpocet0,string);
return 1;
}

dcmd_odpocet(playerid,params[])
{
if(sscanf(params,"d",hodnota)) return SendClientMessage(playerid,0xFFFFFFFF,"Použití: /odpocet [ HODNOTA ]");
if(hodnota>60||hodnota<1) return SendClientMessage(playerid,0xFFFFFFFF,"Rozmezí 1-60!");
if(spusteno==1) return SendClientMessage(playerid,0xFFFFFFFF,"Jiný odpočet právě probíhá!");
else
{
spusteno=1;
TextDrawShowForAll(Odpocet0);
odpocitavani=SetTimer("OdpocetPublic",1000,1);
odpocet=hodnota;
new string[50];
format(string,sizeof(string),"%d",odpocet);
TextDrawSetString(Odpocet0,string);
}
return 1;
}
Edited by Twixo
Link to comment
Share on other sites

20 odpovědí na tuto otázku

Recommended Posts

  • 0

Změnit souřadnice pozice a barvu toho td?

K čomu to bude dobre? Však ja to mam dane na stred tie suradnice a dami to do toho rohu. A farbu mam červenu a dá mi to čiernu

Edited by Twixo
Link to comment
Share on other sites

  • 0

//EDIT

OnGameModeInit 

Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
	TextDrawBackgroundColor(Odpocet0, 255);
	TextDrawFont(Odpocet0, 2);
	TextDrawLetterSize(Odpocet0, 0.500000, 2.200000);
	TextDrawColor(Odpocet0, -1728052993);
	TextDrawSetOutline(Odpocet0, 1);
	TextDrawSetProportional(Odpocet0, 1);
	TextDrawSetSelectable(Odpocet0, 0);
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

 

public OnGameModeInit() 
{
Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
	TextDrawBackgroundColor(Odpocet0, 255);
	TextDrawFont(Odpocet0, 2);
	TextDrawLetterSize(Odpocet0, 0.500000, 2.200000);
	TextDrawColor(Odpocet0, -1728052993);
	TextDrawSetOutline(Odpocet0, 1);
	TextDrawSetProportional(Odpocet0, 1);
	TextDrawSetSelectable(Odpocet0, 0);
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
        return 1;
}
Edited by Carlosoo
Link to comment
Share on other sites

  • 0

Trošku jsem to poupravil, byla blbost volat TextDrawSetString/Show/Hide pokaždé v jinačím callbacku, udělalo ti to v tom bordel a určitě se ti to překrývalo. Možná tam bude nějaká chybka na to přijdeš až to vyzkoušíš...

 

 

new Text:Odpocet0;
new odpocet;
new odpocitavani;

forward OdpocetPublic(playerid);

public OnGameModeInit()
{
	Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
	TextDrawBackgroundColor(Odpocet0, 255);
	TextDrawFont(Odpocet0, 2);
	TextDrawLetterSize(Odpocet0, 0.5, 2.2);
	TextDrawColor(Odpocet0, -1728052993);
	TextDrawSetOutline(Odpocet0, 1);
	TextDrawSetProportional(Odpocet0, 1);
	TextDrawSetSelectable(Odpocet0, 0);
	return 1;
}

public OdpocetPublic(playerid)
{
	new string[3];
	odpocet--;

	format(string,sizeof(string),"%d",odpocet);
	TextDrawHideForAll(Odpocet0);
	TextDrawSetString(Odpocet0,string);
	
	if(odpocet >= 0) TextDrawShowForAll(Odpocet0);// 0 ještě zobrazí
	else KillTimer(odpocitavani);//až bude -1 zastaví se
	return 1;
}

dcmd_odpocet(playerid,params[])
{
	new hodnota;
	if(sscanf(params,"d",hodnota)) return SendClientMessage(playerid,0xFFFFFFFF,"Použití: /odpocet [ HODNOTA ]");
	if(hodnota>60||hodnota<1) return SendClientMessage(playerid,0xFFFFFFFF,"Rozmezí 1-60!");
	if(odpocet != -1) return SendClientMessage(playerid,0xFFFFFFFF,"Jiný odpočet právě probíhá!");//-1 jedna je konečná, ušetřil jsem ti jednu zbytečnou proměnnou 

	odpocet = hodnota + 1;//přičte jedničku, aby ti callback OdpocetPublic ukázal ještě to poslední číslo
	odpocitavani = SetTimer("OdpocetPublic", 1000, true);
	return 1;
} 

 

 

Link to comment
Share on other sites

  • 0
public OnGameModeInit() 
{
Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
	TextDrawBackgroundColor(Odpocet0, 255);
	TextDrawFont(Odpocet0, 2);
	TextDrawLetterSize(Odpocet0, 0.500000, 2.200000);
	TextDrawColor(Odpocet0, -1728052993);
	TextDrawSetOutline(Odpocet0, 1);
	TextDrawSetProportional(Odpocet0, 1);
	TextDrawSetSelectable(Odpocet0, 0);
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
        return 1;
}

Ako fakt dk, neebudem ti asi písať cely Gamemodeinit :)

 

Trošku jsem to poupravil, byla blbost volat TextDrawSetString/Show/Hide pokaždé v jinačím callbacku, udělalo ti to v tom bordel a určitě se ti to překrývalo. Možná tam bude nějaká chybka na to přijdeš až to vyzkoušíš...

 

 

new Text:Odpocet0;
new odpocet;
new odpocitavani;

forward OdpocetPublic(playerid);

public OnGameModeInit()
{
	Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
	TextDrawBackgroundColor(Odpocet0, 255);
	TextDrawFont(Odpocet0, 2);
	TextDrawLetterSize(Odpocet0, 0.5, 2.2);
	TextDrawColor(Odpocet0, -1728052993);
	TextDrawSetOutline(Odpocet0, 1);
	TextDrawSetProportional(Odpocet0, 1);
	TextDrawSetSelectable(Odpocet0, 0);
	return 1;
}

public OdpocetPublic(playerid)
{
	new string[3];
	odpocet--;

	format(string,sizeof(string),"%d",odpocet);
	TextDrawHideForAll(Odpocet0);
	TextDrawSetString(Odpocet0,string);
	
	if(odpocet >= 0) TextDrawShowForAll(Odpocet0);// 0 ještě zobrazí
	else KillTimer(odpocitavani);//až bude -1 zastaví se
	return 1;
}

dcmd_odpocet(playerid,params[])
{
	new hodnota;
	if(sscanf(params,"d",hodnota)) return SendClientMessage(playerid,0xFFFFFFFF,"Použití: /odpocet [ HODNOTA ]");
	if(hodnota>60||hodnota<1) return SendClientMessage(playerid,0xFFFFFFFF,"Rozmezí 1-60!");
	if(odpocet != -1) return SendClientMessage(playerid,0xFFFFFFFF,"Jiný odpočet právě probíhá!");//-1 jedna je konečná, ušetřil jsem ti jednu zbytečnou proměnnou 

	odpocet = hodnota + 1;//přičte jedničku, aby ti callback OdpocetPublic ukázal ještě to poslední číslo
	odpocitavani = SetTimer("OdpocetPublic", 1000, true);
	return 1;
} 

 

 

a toto nebude riešiť môj problem. Lebo nič si nerobil s text draw.

Link to comment
Share on other sites

  • 0

a toto nebude riešiť môj problem. Lebo nič si nerobil s text draw.

Ja som to šiel vyskúšať, hore si písal, že ti to dá niekde do rohu, a ja som zobral to od GarGosa a..

fc62cc662a5e4705b573e2a10bbbdee8.png

Ja vidím všetko správne :)

Edited by Carlosoo
Link to comment
Share on other sites

  • 0
K čomu to bude dobre?

 

 

  

 

a toto nebude riešiť môj problem. Lebo nič si nerobil s text draw.

 

A k čemu tady zveřejňuješ topic, když skoro každou pomocí pohrdáš? Když si myslíš, že tak o tak zrozně umíš pawn lépe, kčemu tady ten topic zakládáš? Další copy, co nechceš, abychom viděli? Tady už bylo kódů a scriptů, že jediný, kdo ti to čorne jsou "pawneři" serverů, kam chodí 2 noví hráči za mésíc a ještě náhodou....

Link to comment
Share on other sites

  • 0

  

 

 

A k čemu tady zveřejňuješ topic, když skoro každou pomocí pohrdáš? Když si myslíš, že tak o tak zrozně umíš pawn lépe, kčemu tady ten topic zakládáš? Další copy, co nechceš, abychom viděli? Tady už bylo kódů a scriptů, že jediný, kdo ti to čorne jsou "pawneři" serverů, kam chodí 2 noví hráči za mésíc a ještě náhodou....

 

yy mam topic na text draw problem a nie na prikaz. takže neviem čo riešiš. 

Link to comment
Share on other sites

  • 0

yy mam topic na text draw problem a nie na prikaz. takže neviem čo riešiš. 

 

Asi by tě vážně zabilo to vyzkoušet.... Neupravil jsem jen příkaz, ale i ten tvůj calback. Měl jsi to tak zmatlaný, že se textdrawy nejspíše překrývaly a prostě to blblo, což není u textdrawu nic neobvyklého. Příště se na pomoc tobě rovnou vykašlu, protože lidem, kterým se ničím nazavděčíš mám opravdu nejradši. ;)

 

 

Zrejme to myslel tak, že jeho problém je v zobrazovaní TD a nie v príkaze.

 

Jak píši výše - ono to spolu tak nějak souvisí...

Edited by GaRGoyLeS
Link to comment
Share on other sites

  • 0
Zrejme to myslel tak, že jeho problém je v zobrazovaní TD a nie v príkaze.

 

Ano, to mi z popisu došlo... Nk!

 

Taky jsem mu na to napsal jedno z řešení, ale nikde tu nepíšu nic s příkazem, jak on zde tvrdí...

Link to comment
Share on other sites

  • 0

Příště se na pomoc tobě rovnou vykašlu, protože lidem, kterým se ničím nazavděčíš mám opravdu nejradši. ;)

Popritom tvoj kód je správy, sám som to vyskúšal lebo ja som si pozrel tie pozície a sú v strede, tak jak som to vyskúšal, a:

 

PS: Som trošku splietol tvoje meno :d

 

 

 

7926d9cef7a348afb82c2ead0f842bb2.png

 

 

Edited by Carlosoo
Link to comment
Share on other sites

  • 0

Nevim, jak by se mu to mohlo prekryvat.

Jedno me ale zajima. Tvrdis, ze ti to samostatne jde, ale jakmile to das do jineho scriptu, tak ti to nejde. Proc nam sem tedy davas neco, co ti jde? To si mame zbytek kodu, ktery ovlivnuje tento (funkcni) kod, domyslet? Priste premyslej, co vubec delas, kdyz zakladas topic, protoze jsi zprvu nebyl schopny sem dat kod a nakonec sem nedas ten problemovy.

Link to comment
Share on other sites

  • 0

Trošku jsem to poupravil, byla blbost volat TextDrawSetString/Show/Hide pokaždé v jinačím callbacku, udělalo ti to v tom bordel a určitě se ti to překrývalo. Možná tam bude nějaká chybka na to přijdeš až to vyzkoušíš...

 

 

new Text:Odpocet0;
new odpocet;
new odpocitavani;

forward OdpocetPublic(playerid);

public OnGameModeInit()
{
	Odpocet0 = TextDrawCreate(305.000000, 121.000000, "60");
	TextDrawBackgroundColor(Odpocet0, 255);
	TextDrawFont(Odpocet0, 2);
	TextDrawLetterSize(Odpocet0, 0.5, 2.2);
	TextDrawColor(Odpocet0, -1728052993);
	TextDrawSetOutline(Odpocet0, 1);
	TextDrawSetProportional(Odpocet0, 1);
	TextDrawSetSelectable(Odpocet0, 0);
	return 1;
}

public OdpocetPublic(playerid)
{
	new string[3];
	odpocet--;

	format(string,sizeof(string),"%d",odpocet);
	TextDrawHideForAll(Odpocet0);
	TextDrawSetString(Odpocet0,string);
	
	if(odpocet >= 0) TextDrawShowForAll(Odpocet0);// 0 ještě zobrazí
	else KillTimer(odpocitavani);//až bude -1 zastaví se
	return 1;
}

dcmd_odpocet(playerid,params[])
{
	new hodnota;
	if(sscanf(params,"d",hodnota)) return SendClientMessage(playerid,0xFFFFFFFF,"Použití: /odpocet [ HODNOTA ]");
	if(hodnota>60||hodnota<1) return SendClientMessage(playerid,0xFFFFFFFF,"Rozmezí 1-60!");
	if(odpocet != -1) return SendClientMessage(playerid,0xFFFFFFFF,"Jiný odpočet právě probíhá!");//-1 jedna je konečná, ušetřil jsem ti jednu zbytečnou proměnnou 

	odpocet = hodnota + 1;//přičte jedničku, aby ti callback OdpocetPublic ukázal ještě to poslední číslo
	odpocitavani = SetTimer("OdpocetPublic", 1000, true);
	return 1;
} 

 

 

Máš to zle.

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...