Jump to content

Intrebare despre limite textdraw( PlayerText vs Text)


salexm93

Recommended Posts

Salutare 

Poate nu inteleg eu bine , pe wiki scrie max 2048 globale si 256 per player .

Sa luam cazul ipotetic al unui server cu 1000 de playeri online .

new Text:xpbar[MAX_PLAYERS];
new Text:playername[MAX_PLAYERS];

Aici vor fi 2000 create ? Adica destul de aproape de limita

 

new PlayerText:xpbar[MAX_PLAYERS];
new PlayerText:playername[MAX_PLAYERS];

Iar Aici vor fi doar 2 ?

Totodata , PlayerTextDrawDestroy ,la onplayerdisconnect ?

Edited by salexm93
Link to comment
Share on other sites

Conceptul de textdraw global și textdraw per player este foarte ambiguu, pentru că pentru ambele cazuri, acestea sunt create per player (în clientul jucătorului). Inițial a existat conceptul de textdraw global cu o anumită limită impusă. Problema apare când ai număr mare de jucători, iar fiecare jucător are niște textdraw-uri personalizate (de exemplu cu numele său sau alte caracteristici). Să zicem că fiecare jucător are 5 textdraw-uri personalizate pentru el, iar aceste 5 textdraw-uri sunt afișate simultan pentru toți cei conectați, avem în total 5,000 de textdraw-uri, ceea ce depăsește limita impusă. Textdraw-ul per player a venit ca o soluție pentru aceste textdraw-uri personalizate.

În teorie textdraw-urile globale și cele per player nu sunt strâns-legate, adică dacă adaugi 256 de textdraw-uri pentru în jucător, în teorie mai poți adăuga alte 2048 globale. Probabil te întrebi de ce există conceptul de textdraw global și de textdraw per player în condițiile în care, oricum o dai, acel textdraw tot pe client-ul jucătorului ajunge să fie. Cred că a fost o greșeală de proiectare și faptul că s-a dorit un backward compatibility, pentru a nu forța serverele să-și actualizeze tot codul și eventual să apară probleme/bug-uri din cauza unui update.

Link to comment
Share on other sites

20 minutes ago, salexm93 said:

Am inteles . Multumesc pentru informatie .

Vroiam sa fac un gm unde interactiunea sa se faca prin textdraws pe cat posibil. Va fi cam dificil dar nu imposibil

Oare daca folosesc PlayerTextDrawDestroy dupa fiecare folosire va scade din limita de 256 ?

Yeap. Imaginează-ți o piscină, iar fiecare jucător are piscina lui. Imaginează-ți că fiecare textdraw per player este o minge. Funcția de create va adăuga acea minge în piscină, iar destroy o va scoate, atâta timp cât in piscină menții numărul de mingi mai mic sau egal decât 256 o să funcționeze totul ok.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.