Jump to content

[TUT]3D Text Labels


Megadreams

Recommended Posts

Tutorial word zo snel mogelijk hersteld.

Tutorial: 3D Text Labels





Wat is een 3D Text Label?

3D Text Labels is tekst die je waar dan ook op de map kan plaatsen en die de spelers kunnen zien,

een 3D Text Label kan ook vastgehecht worden aan een speler en een voertuig.



Screenshots

Voorzien voor screenshots.



Waarvoor is het handig?

Dit is een heel handige toevoeging van SA-MP 0.3a omdat je bijvoorbeeld boven pick-ups voor gebouwen

kan zetten hoe het gebouw noemt, of bij een business systeem hoe het bedrijf heet, of van wie het is.



Heb ik het al eens gezien?

Waarschijnlijk wel, heel veel servers gebruiken de functie van 3D Text Labels.



Functies

Even alle functies van 3D Labels:



Attach3DTextLabelToPlayer(Text3D:id, playerid, Float:OffsetX, Float:OffsetY, Float:OffsetZ);

Dit zal een 3D Text Label vasthechten aan een speler.

Text3D:id: De id van de 3D Text Label die je wil vasthechten.

Playerid: Aan welke speler dat de label moet vastgehecht worden.

Float:OffsetX: Hoeveel x-coord moet de label van het midden van de speler verwijderd zijn.

Float:OffsetY: Hoeveel Y-coord moet de label van het midden van de speler verwijderd zijn.

Float:OffsetZ: Hoeveel Y-coord moet de label van het midden van de speler verwijderd zijn.

Attach3DTextLabelToVehicle(Text3D:id, vehicleid, Float:OffsetX, Float:OffsetY, Float:OffsetZ);

Dit zal een 3D Text Label vasthechten aan een voertuig.

Text3D:id: De id van de 3D Text Label die je wil vasthechten.

Vehicleid: Aan welk voertuig dat de label moet vastgehecht worden.

Float:OffsetX: Hoeveel x-coord moet de label van het midden van het voertuig verwijderd zijn.

Float:OffsetY: Hoeveel Y-coord moet de label van het midden van het voertuig verwijderd zijn.

Float:OffsetZ: Hoeveel Y-coord moet de label van het midden van het voertuig verwijderd zijn.

Create3DTextLabel(text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, virtualworld, testLOS);

Deze functie maakt een 3D Text Label aan.

Text[]: De tekst.

Color: De kleur van de tekst (op dezelfde manier als in SendClientMessage).

Float:X: De x-coord waar de label moet staan.

Float:Y: De y-coord waar de label moet staan.

Float:Z: De z-coord waar de label moet staan.

Float:DrawDistance: Van hoe ver zie je de label?

Virtualworld: De virtualworld waar de label te zien is.

TestLOS: Is het label te zien door objecten of niet, (0/1)

Delete3DTextLabel(Text3D:id);

Verwijderd een 3D Text Label.

Text3D:id: Label id.

Update3DTextLabel(Text3D:id, color, text[]);

Wijzigt de tekst in een 3D Text Label.

Text3D:id: Label id.

Color: De kleur van de tekst (op dezelfde manier als in SendClientMessage).

Text[]: De tekst.

CreatePlayer3DTextLabel(playerid, text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, attachedplayer, attachedvehicle, testLOS);

Deze functie maakt een 3D Text Label aan voor een specifieke speler.

Playerid: ID van de speler waarvoor de label moet weergeven worden.

Text[]: De tekst.

Color: De kleur van de tekst (op dezelfde manier als in SendClientMessage).

Float:X: De x-coord waar de label moet staan.

Float:Y: De y-coord waar de label moet staan.

Float:Z: De z-coord waar de label moet staan.

Float:DrawDistance: Van hoe ver zie je de label?

Attachedplayer: Aan welke speler moet de label vastgehecht worden? (indien niemand: INVALID_PLAYER_ID)

Attachedvehicle: Aan welk voertuig moet de label vastgehecht worden? (indien geen: INVALID_VEHICLE_ID)

TestLOS: Is het label te zien door objecten of niet, (0/1)

DeletePlayer3DTextLabel(playerid, PlayerText3D:id);

Verwijderd een 3D Text Label specifiek voor een speler.

Playerid: Voor welke speler moet de label verwijderd worden.

PlayerText3D:id: Label id.

UpdatePlayer3DTextLabel(playerid, PlayerText3D:id, color, text[]);

Wijzigt de tekst in een 3D Text Label specifiek voor een speler.

Playerid: Voor welke speler moet de label gewijzigd worden.

PlayerText3D:id: Label id.

Color: De kleur van de tekst (op dezelfde manier als in SendClientMessage).

Bewerkt: door megadreams
Link to comment
Delen op andere websites

Ook weer typisch, word gerepareerd ...

EDIT: Ik ben het beu, ik maak een tutorial om dan tot de ontdekking te komen dat dat tekstvak van gtaforum weer alles verpest.

Chat Bubbles



Wat is een chat bubble?

Echt veel valt hier niet over te vertellen, een chat bubble is eigenlijk een tekst boven een speler,

om aan te duiden dat deze dit zegde, een chat bubble kan niet door de speler zelf gezien worden.



Screenshots

Voorzien voor screenshots.



Functie

Er is maar 1 functie voor een chat bubble:



SetPlayerChatBubble(playerid, text[], color, drawdistance, expiretime);

Laat een chat bubble boven een speler verschijnen.



Playerid: Speler id waar de chat bubble boven moet verschijnen.

Text[]: De tekst.

Color: De kleur van de tekst (als in SendClientMessage).

Drawdistance: Van hoe ver kan je de chat bubble zien.

Expiretime: De tijd dat je de chat bubble kan zien. (in millieseconden).



Toepassing

Je kan een commando maken voor een chat bubble:



[/size][/left]

[left][size=2]// GEMAAKT IN DCMD![/size][/left]

[left][size=2]
[/size][/left]

[left][size=2]// Bij OnPlayerCommandText[/size][/left]

[left][size=2]dcmd(c, 1, cmdtext);[/size][/left]

[left][size=2]
[/size][/left]

[left][size=2]// Ergens anders, bijvoorbeeld onder OnPlayerCommandText (niet in een public!)[/size][/left]

[left][size=2]dcmd_c(playerid, params[])[/size][/left]

[left][size=2]{[/size][/left]

[left][size=2]	if(!strlen(params)) return SendClientMessage(playerid, 0xFF0000AA, "Gebruik: /c [tekst]");[/size][/left]

[left][size=2]	SetPlayerChatBubble(playerid, params, 0x0000FFAA, 100, 10000);[/size][/left]

[left][size=2]	return 1;[/size][/left]

[left][size=2]}[/size][/left]

[left][size=2]



Je kan ook als je tekst typt dit zowel in de chat als met een chat bubble laten zien:



[/size][/left]

[left][size=2]public OnPlayerText(playerid, text[])[/size][/left]

[left][size=2]{[/size][/left]

[left][size=2]	SetPlayerChatBubble(playerid, params, 0x0000FFAA, 100, 10000);[/size][/left]

[left][size=2]	return 1;[/size][/left]

[left][size=2]}[/size][/left]

[left][size=2]



Of simpelweg zorgen dat je alleen een chat bubble ziet als iemand iets typt:



[/size][/left]

[left][size=2]public OnPlayerText(playerid, text[])[/size][/left]

[left][size=2]{[/size][/left]

[left][size=2]	SetPlayerChatBubble(playerid, params, 0x0000FFAA, 100, 10000);[/size][/left]

[left][size=2]	return 0;[/size][/left]

[left][size=2]}[/size][/left]

[left][size=2]

Bewerkt: door megadreams
Link to comment
Delen op andere websites

Goeie tutorial, alles is erg duidelijk uitgelegd!

En over die tweede post, je weet toch dat er een functie bestaat die SetPlayerChatBubble heet? ;)

Dankje, en natuurlijk ;)

Maar de tutorial is even bugged door het tekstvak van gtaforum, die functie indeling staat volledig tegen elkaar aan en die enters verdwijnen altijd.

Tenzij jullie het zo goed vinden natuurlijk.

Bewerkt: door megadreams
Link to comment
Delen op andere websites

  • 4 weken later...

ehm ik wil zeg maar als een player spawnt een teskt boven zz'n hoofd laten zien met "net gespawnd" Alleen ik krijg 4 errors, en als ik het tussen "" zet zie je hem niet.

SetPlayerChatBubble(playerid, deze speler is new gespawnt, 0xFF6600AA, 10, 120000)

zou iemand deze code kunnen verbeteren?

Link to comment
Delen op andere websites

Dit zet je in OnPlayerSpawn:

SetPlayerChatBubble(playerid, "deze speler is new gespawnt", 0xFF6600AA, 10, 120000);

Dat zou moeten werken.

Ja dat had ik dus ook, maar hij doet het niet. De DrawDistance is toch in coordinates, en de aflooptijd in milliseconden, toch?

Link to comment
Delen op andere websites

Dit zet je in OnPlayerSpawn:

SetPlayerChatBubble(playerid, "deze speler is new gespawnt", 0xFF6600AA, 10, 120000);

Dat zou moeten werken.

Ja dat had ik dus ook, maar hij doet het niet. De DrawDistance is toch in coordinates, en de aflooptijd in milliseconden, toch?

Draw Distance werkt naar mijn mening inerdaad via coordinaten en aflooptijd in milliseconden.

LET WEL OP: Een chat bubble kan jij zelf NIET zien bij jezelf, alleen andere zullen de chat bubble bij jou zien ;)

Link to comment
Delen op andere websites

Dit zet je in OnPlayerSpawn:

SetPlayerChatBubble(playerid, "deze speler is new gespawnt", 0xFF6600AA, 10, 120000);

Dat zou moeten werken.

Ja dat had ik dus ook, maar hij doet het niet. De DrawDistance is toch in coordinates, en de aflooptijd in milliseconden, toch?

Draw Distance werkt naar mijn mening inerdaad via coordinaten en aflooptijd in milliseconden.

LET WEL OP: Een chat bubble kan jij zelf NIET zien bij jezelf, alleen andere zullen de chat bubble bij jou zien ;)

Dat weet ik... Maar toen ik iemand anders liet komen kon ik het bij hem niet zien. Het staad gewoon bij OnPlayerSpawn samen met een Timer, dat is alles.

Link to comment
Delen op andere websites

Je kan proberen de draw distance te verhogen, en waarvoor is die timer? ;)

public OnPlayerSpawn(playerid)
{
   SetPlayerHealth(playerid, INFINITY);
   SetTimerEx("RestorePlayerHealth", 120000, false, "i", playerid);
  	SetPlayerChatBubble(playerid, "!WARNING! This player has just spawned, and has infinite health for 2 minutes", 0xFF6600AA, 10, 120000);
return 1;
}

Dat is de code. De Timer heeft verder niet met de chatbubble te maken.

Link to comment
Delen op andere websites

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

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

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...