Guida Creare un testo sotto il radar che mostra il nome della città

Syncro

Utente Esperto
Autore del topic
8 Settembre 2010
1.250
22
Miglior risposta
0
Introduzione
Spesso per abbellire o per informare i nuovi players del nome del luogo in cui si trovano, si ricorre all'uso di una textdraw che ci indica sulla nostra posizione, in parole più povere se ci troviamo a Los Santos ci apparirà il testo nella posizione da noi scelta: "Los Santos". Appena entreremo a Las Venturas, il testo cambierà in automatico.

Per fare tutto ciò, dovete seguirmi nel procedimento che vi mostrerò.

Sopra a OnGameModeInit (fuori)
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Questo codice qui serve a creare una nuova variabile di tipo 'TextDraw', quindi questa variabile potrà essere usata per indicare una TextDraw su SA-MP. In seguito a new Text: troviamo il nome della variabile ovvero "Posizione" e dopo il nome troviamo l'Array ovvero MAX_PLAYERS che indica il massimo dei giocatori che possono entrare nel vostro server. Il codice va piazzato al di fuori di OnGameModeInit (esattamente sopra a public OnGameModeInit)

Tra le parentesi di OnGameModeInit (dentro)
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Bene, iniziamo a lavoricchiare! Abbiamo aggiunto varie funzioni ma sono tutte tra due parentesi che vengono aperte con una funzione "for". Il for è una funzione (loop) che si ripete più volte fino a che la condizione (i < MAX_PLAYERS) non risulta falsa. In questo for notiamo la fase iniziale (new i=0) dove viene creata una variabile (i) e gli viene assegnato un valore (0), in seguito si passa alla condizione ovvero i < MAX_PLAYERS, quindi per proseguire i deve essere minore del numero di Players massimo, infine si aggiunge il valore 1 ad i (quindi aumenta). Tutto ciò che ho detto si ripeterà sempre (quindi i aumenterà sempre di più) fino a che non arriverà a MAX PLAYERS. Ma cosa si ripeterà? Ciò che sta tra le parentesi graffe.
Posizione è il nome della TextDraw che stiamo creando. In TextDrawCreate troviamo 85 e 425 che sono rispettivamente le posizioni X e Y dello schermo basato su una risoluzione 640x480, in seguito troviamo uno spazio (" ") che praticamente indica un testo assente (lo spazio mettetelo sempre perché sennò crasha il server).
In seguito inseriamo un carattere specifico e modifichiamo le ombre del testo e l'allineamento, potete farlo anche voi a vostro piacimento.

Sotto a OnPlayerSpawn (dentro)
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Con questa funzione mostriamo la TextDraw da noi creata ad ogni utente, ciò viene eseguito quando l'utente spawna.

Sotto a OnPlayerUpdate (dentro)
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Passiamo alla sostanza di tutto ciò, alla parte più difficile e complessa. Qui vengono creati 3 float e viene gettata la posizione di ogni player sui 3 float, ciò che vi ho detto viene fatto sempre, ad ogni minimo update del player.
In seguito viene applicata una piccola esame sulle variabili da noi create (X e Y), quindi se X è maggiore di ... e minore di ..., e allo stesso tempo Y è maggiore di ... e minore di ... significherà che ci troviamo a LOS SANTOS! L'importante sta nel trovare le coordinate, con un po' di logica è possibile arrivarci facilmente. Basta considerare che:
West -> X = Valore minimo.
Est -> X = Valore massimo.
Sud -> Y = Valore minimo.
Nord -> Y = Valore massimo.
Le coordinate è possibile prenderle con il comando /save direttamente dall'interno del gioco.
Passando alla fase successiva, viene modificato il testo a seconda di dove ci si trova, e se non ci si trova all'interno di quelle aree il testo diventa assente (diventa uno spazio " ").

Risultato:
i5zGaQn.jpg


Fonte: My Brain.

Creditz: Syncro [Vietata la riproduzione su altri forum senza inserimento dei crediti]