Da li zna neko kako mogu da onemogucim ESC kada se pokrene ovaj textdraw, jer kad se u toku ovog textdrawa klikne ESC on ostane na ekranu?
[pawn]
KupujeDozvole( playerid, bool: show ) {
if( show == true ) {
PolaganjeBuy[playerid][0] = CreatePlayerTextDraw(playerid,167.066726, 113.103691, "LD_SPAC:white");
PlayerTextDrawLetterSize(playerid, PolaganjeBuy[playerid][0], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, PolaganjeBuy[playerid][0], 298.000000, 187.000000);
PlayerTextDrawAlignment(playerid, PolaganjeBuy[playerid][0], 1);
PlayerTextDrawColor(playerid, PolaganjeBuy[playerid][0], 454761471);
PlayerTextDrawSetShadow(playerid, PolaganjeBuy[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, PolaganjeBuy[playerid][0], 0);
PlayerTextDrawBackgroundColor(playerid, PolaganjeBuy[playerid][0], 255);
PlayerTextDrawFont(playerid, PolaganjeBuy[playerid][0], 4);
PlayerTextDrawSetProportional(playerid, PolaganjeBuy[playerid][0], 0);
PlayerTextDrawSetShadow(playerid, PolaganjeBuy[playerid][0], 0);
PolaganjeBuy[playerid][1] = CreatePlayerTextDraw(playerid,177.999984, 119.740715, "");
PlayerTextDrawLetterSize(playerid, PolaganjeBuy[playerid][1], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, PolaganjeBuy[playerid][1], 90.000000, 90.000000);
PlayerTextDrawAlignment(playerid, PolaganjeBuy[playerid][1], 1);
PlayerTextDrawColor(playerid, PolaganjeBuy[playerid][1], -1);
PlayerTextDrawSetShadow(playerid, PolaganjeBuy[playerid][1], 0);
PlayerTextDrawSetOutline(playerid, PolaganjeBuy[playerid][1], 0);
PlayerTextDrawBackgroundColor(playerid, PolaganjeBuy[playerid][1], 0);
PlayerTextDrawFont(playerid, PolaganjeBuy[playerid][1], 5);
PlayerTextDrawSetProportional(playerid, PolaganjeBuy[playerid][1], 0);
PlayerTextDrawSetShadow(playerid, PolaganjeBuy[playerid][1], 0);
PlayerTextDrawSetSelectable(playerid, PolaganjeBuy[playerid][1], true);
PlayerTextDrawSetPreviewModel(playerid, PolaganjeBuy[playerid][1], 410);
PlayerTextDrawSetPreviewRot(playerid, PolaganjeBuy[playerid][1], 0.000000, 0.000000, -25.000000, 1.000000);
PlayerTextDrawSetPreviewVehCol(playerid, PolaganjeBuy[playerid][1], 1, 1);
// DA NE SALJEM CEO KOD
for( new i = 0; i < 46; i ++) {
PlayerTextDrawShow(playerid, PolaganjeBuy[ playerid ][ i ] );
}
SelectTextDraw(playerid, SERVER_COLOR ) ;
DozvoleKupuje[ playerid ] = true;
}
else if( show == false ) {
for( new i = 0; i < 46; i ++) {
PlayerTextDrawHide(playerid, PolaganjeBuy[ playerid ][ i ] );
PlayerTextDrawDestroy(playerid, PolaganjeBuy[ playerid ][ i ] );
PolaganjeBuy[ playerid ][ i ] = PlayerText: INVALID_TEXT_DRAW;
}
CancelSelectTextDraw( playerid );
DozvoleKupuje[ playerid ] = false;
}
}
[/pawn]
Bilo ko?
Citat: Risticc poslato Februar 10, 2024, 23:48:55 POSLE PODNE
Bilo ko?
Napravis varijablu npr. vozackatd, onda kad mu pokazes taj td, setas mu tu variablu na npr. 1. Onda odes u OnPlayerKeyStateChange, i tamo napravis provjeru ako je kilknuo esc a variabla vozackatd mu je 1, da samo return true ili false;
A kako se definise ESC dugme, posto nisam nasao?
Citat: tyler12
None.
https://sampwiki.blast.hk/wiki/GetPlayerKeys
nema ida za esc :s
Video sam nesto da treba da se koristi INVALID_TEXT_DRAW, ali i kad ga integrisem nece i dalje se isto desava... ne samo za playertextid vec i za clickedid
Neko drugi da pomogne?
Kada igrac klikne ESC da izadje is textdraw select moda, poziva se OnPlayerClickTextDraw i clickedid ce imati INVALID_TEXT_DRAW vrednost.
Napomena, poziva se OnPlayerClickTextDraw, ne OnPlayerClickPlayerTextDraw (on se nikad ne poziva za ESC).
Ti si dao Playe TextDraw-ove gore u kodu, tako da ne pomijesas 2 callback-a.
Evo ti link na wiki https://sampwiki.blast.hk/wiki/OnPlayerClickPlayerTextDraw
To sam uspeo, ali sad imam drugi problem kada upalim neki textdraw koji zelim kasnije da se ugasi nece ni sa CancelSelectTextDraw(playerid); funkcijom da ga ugasi?
Mislim nece da se ugasi taj selectable mod nikako, nigde ne priznaje funkciju CancelSelectTextDraw( playerid );
Probao sam i posebno komandu da napravim medjutim i dalje, uvek ga vraca iz nekog razloga nebitno dal bio clickedid ili playertextid textdraw
Stavio sam
[pawn]public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Text:INVALID_TEXT_DRAW) SelectTextDraw(playerid,SERVER_COLOR);[/pawn]
Ali imam infinite loop, nebitno gde da li to bio OnPlayerClickTextDraw ili OnPlayerClickPlayerTextDraw, a svugde stoji funkcija CancelSelectTextDraw( playerid );
I sad mi nije jasno, kako to da prekinem, samo mi to fali i uspeo sam da resim problem? Cak sam i preko komande to probao medjutim nista, uvek mi vraca selecttextdraw...
Citat: Risticc poslato Februar 13, 2024, 15:19:27 POSLE PODNE
Stavio sam
[pawn]public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Text:INVALID_TEXT_DRAW) SelectTextDraw(playerid,SERVER_COLOR);[/pawn]
Ali imam infinite loop, nebitno gde da li to bio OnPlayerClickTextDraw ili OnPlayerClickPlayerTextDraw, a svugde stoji funkcija CancelSelectTextDraw( playerid );
I sad mi nije jasno, kako to da prekinem, samo mi to fali i uspeo sam da resim problem? Cak sam i preko komande to probao medjutim nista, uvek mi vraca selecttextdraw...
Pa stavi cmd:zatvoritd ili bilo sta i zatvoris mu
Citat: Risticc poslato Februar 13, 2024, 15:19:27 POSLE PODNE
Stavio sam
[pawn]public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Text:INVALID_TEXT_DRAW) SelectTextDraw(playerid,SERVER_COLOR);[/pawn]
Ali imam infinite loop, nebitno gde da li to bio OnPlayerClickTextDraw ili OnPlayerClickPlayerTextDraw, a svugde stoji funkcija CancelSelectTextDraw( playerid );
I sad mi nije jasno, kako to da prekinem, samo mi to fali i uspeo sam da resim problem? Cak sam i preko komande to probao medjutim nista, uvek mi vraca selecttextdraw...
Nisam siguran da te razumem 100%, ali ukoliko ti se desava da kad pozoves CancelSelectTextDraw da ti pozove OnPlayerClickTextDraw sa clickedid = INVALID_PLAYER_TEXTDRAW vrednoscu, onda mozes dodati neku pomocnu promenivu u kombinaciji sa ovim sto sad imas, i da i nju provjeravas pa tako da znas da li da mu dozvolis da izadje ili ne...
Da ali zar se onda necu da onemogucim INVALID_TEXTDRAW funkciju, i ESC ce opet biti odobreno? Objasnicu opet sta je problem.. sa tim INVALID_TEXTDRAW sam uspeo da sprecim ESC koriscenje u toku textdrawselecta, e sad problem je kad se upali taj textdraw select, on ne moze da se ugasi sa funkcijom CancelSelectTextDraw, i ide u infinite loop zbog INVALID_TEXTDRAW, i mis konstantno ostaje na ekranu... Ako bih stavio npr bool: promenjivu od koje bi u zavisnosti od true/false omogucila koriscenje invalid_text_draw, opet bi se svelo na pocetak, a to je da ESC opet moze da se klikne... Valjda si sad razumeo, ako postoji mozda neki drugi nacin da onemogucim ESC slobodno kazi, pa da probam to
Citat: toncikica poslato Februar 13, 2024, 17:46:38 POSLE PODNE
Pa stavi cmd:zatvoritd ili bilo sta i zatvoris mu
Nece uopste da ugasi textdraw sa CancelSelectTextDraw( playerid );
Nebitno dal to bila komanda ili preko neke funkcije
Dodaj funkciju SetPlayerKeySyncEnabled(playerid, enabled)
Zasto bi to radio? Zar nije logicnije da kad koristis ESC da ti zatvori td?
Citat: Risticc poslato Februar 10, 2024, 19:40:38 POSLE PODNE
Da li zna neko kako mogu da onemogucim ESC kada se pokrene ovaj textdraw, jer kad se u toku ovog textdrawa klikne ESC on ostane na ekranu?
Uradio si ono sto si vec postavio i samo dodas ovo
[pawn]KupujeDozvole( playerid, bool: show )
{
//......
SetPVarInt(playerid, KupujeTD, 1);
}
OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Text:INVALID_TEXT_DRAW)
{
GetPVarInt(playerid, "KupujeTD") == 1;
{
PlayerTextDrawDestroy(playerid, PolaganjeBuy[ playerid ][ i ] );
}
return 1;
}
return 0;
}
[/pawn]
Citat: rizla poslato Februar 13, 2024, 21:30:01 POSLE PODNE
Zasto bi to radio? Zar nije logicnije da kad koristis ESC da ti zatvori td?
Uradio si ono sto si vec postavio i samo dodas ovo
[pawn]KupujeDozvole( playerid, bool: show )
{
//......
SetPVarInt(playerid, KupujeTD, 1);
}
OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == Text:INVALID_TEXT_DRAW)
{
GetPVarInt(playerid, "KupujeTD") == 1;
{
PlayerTextDrawDestroy(playerid, PolaganjeBuy[ playerid ][ i ] );
}
return 1;
}
return 0;
}
[/pawn]
Iskoristio sam ovo, reseno je hvala svima! Lock.