Skocz do zawartości
EskeL

Nie pokazuje sie TextDraw "Polecamy"

Rekomendowane odpowiedzi

if(PolecamyInfoX >= sizeof(PolecamyX)) PolecamyInfoX = 0;
TextDrawSetString(PolecamyTD, PolecamyX[PolecamyInfoX]);
TextDrawShowForAll(PolecamyTD);
PolecamyInfoX++;

Spróbuj.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Możliwe, że się pokazuje ale na sekundę bądź jeszcze krócej. Dlaczego? Wycinek kodu zapewne znajduje się w jakiejś powtarzającej się pętli, co za tym idzie, skrypt sprawdził, że jakiś gracz znajduje się w strefie bez DM, zabiera mu bronie, pokazuje textdraw, lecz sprawdzając jeszcze raz (powtarzająca się pętla) gracz już nie ma broni, dlatego chowany jest textdraw. To są moje domyślenia dlaczego mógłby się nie pokazać, nie wiem w jakim publicu znajduje się kod dlatego Ci nie pomogę.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

mam to w timerze

SetTimer("PlayerUpdate",6500,true);

 

forward PlayerUpdate(playerid);
public PlayerUpdate(playerid)
{
    new playeronl[1000];
    format(playeronl, sizeof(playeronl), "/ONEDE [%d]_______/SNIPER [%d]", GetLiczOECount(), GetLiczSnip());
    TextDrawSetString(Arenki2, playeronl);
    format(playeronl, sizeof(playeronl), "~w~/WAR [%d]__/RPG [%d]__/SH [%d]", GetLiczWACount(), GetLiczRPG(), GetLiczSO());
    TextDrawSetString(Arenki3, playeronl);

   if(IsPlayerInNoDm(playerid))
    {
         new nodm[300];
        format(nodm, sizeof(nodm), "Strefa~n~No-Dm");
        TextDrawSetString(NoDm, nodm);
        TextDrawShowForPlayer(playerid,NoDm);
         SetPlayerArmedWeapon(playerid, 0); // pięści
    }
    else
    {
        TextDrawHideForPlayer(playerid,NoDm);
    }
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

stock IsPlayerInNoDm(playerid)
{
    if(PlayerToPoint(50,playerid, 2753.7808,-2453.1340,13.2022)) return 1; //Doki
    if(PlayerToPoint(50,playerid, 1676.7640,744.8915,10.3958)) return 1; //zlot
    if(PlayerToPoint(50,playerid, 1864.2445,-3213.0889,1.7391)) return 1; //stuntls
    if(PlayerToPoint(50,playerid, -1166.2317,734.1201,1.0360)) return 1; //stuntsf
    if(PlayerToPoint(50,playerid, 3098.3699,1444.6019,5.9805)) return 1; //stuntlv
    if(PlayerToPoint(50,playerid, 94.4649,-1828.5155,0.8101)) return 1; //stuntplaza
    if(PlayerToPoint(50,playerid, -775.6173,-1976.5349,6.0634)) return 1; //bagno
    if(PlayerToPoint(50,playerid, -919.9608,2017.3785,60.5726)) return 1; //tama
    if(PlayerToPoint(50,playerid, 1919.7606,-409.1007,21.5512)) return 1; //tereno
    return 0;
}

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Daj TextDrawShowForPlayer w OnPlayerSpawn i sprawdź czy w ogóle on się wyświetli. Czasem, gdy textdraw ma dużą czcionkę i jest po lewej stronie ekranu to go nie widać.
Druga opcja - zamień PointToPlayer na IsPlayerInRangeOfPoint - po co używać dodatkowych funkcji, skoro mamy natywne?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ze strefami sobie poradziłem teraz mam problem przy logowaniu rejestracji i wybierałce pojawiają się textdrawy "Polecamy,,," oraz "Strefa No-DM"

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

	
		stock IsPlayerInNoDm(playerid)
	{
	    if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT && GetPlayerState(playerid) != PLAYER_STATE_DRIVER && GetPlayerState(playerid) != PLAYER_STATE_PASSENGER) return 0;  //sprawdza tylko gdy gracz jest zespawnowany

	    if(PlayerToPoint(50,playerid, 2753.7808,-2453.1340,13.2022)) return 1; //Doki
	    if(PlayerToPoint(50,playerid, 1676.7640,744.8915,10.3958)) return 1; //zlot
	    if(PlayerToPoint(50,playerid, 1864.2445,-3213.0889,1.7391)) return 1; //stuntls
	    if(PlayerToPoint(50,playerid, -1166.2317,734.1201,1.0360)) return 1; //stuntsf
	    if(PlayerToPoint(50,playerid, 3098.3699,1444.6019,5.9805)) return 1; //stuntlv
	    if(PlayerToPoint(50,playerid, 94.4649,-1828.5155,0.8101)) return 1; //stuntplaza
	    if(PlayerToPoint(50,playerid, -775.6173,-1976.5349,6.0634)) return 1; //bagno
	    if(PlayerToPoint(50,playerid, -919.9608,2017.3785,60.5726)) return 1; //tama
	    if(PlayerToPoint(50,playerid, 1919.7606,-409.1007,21.5512)) return 1; //tereno
	    return 0;
	}	
	

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
NazwaTD = TextDrawCreate(X,Y, "Tresc");//tworzymy TextDraw, w miejsce X,Y podajemy położenie TextDraw'u w pixelach
TextDrawColor(NazwaTD, Kolor);//ustawiamy jego kolor
i opcjonalnie:
TextDrawLetterSize(NazwaTD, X,Y);//ustawiamy szerokosc i wysokosc liter
Mozna tez dac duzo innych funkcji TextDraw'u ale nie bede o nich pisal

no i wyświetlenie ;) 

TextDrawShowForPlayer(playerid, NazwaTD);//pokazujemy graczowi TextDraw

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×