Hallo,
ich möchte einen DM Server errichten und brauche dafür die "Stats" auf dem Bildschirm.
Wie mache ich das...?
Hallo,
ich möchte einen DM Server errichten und brauche dafür die "Stats" auf dem Bildschirm.
Wie mache ich das...?
Mit Textdraws.
Wie Azure bereits schrieb, mit TextDraws.
Ich empfehle dir den iPleomax TextDrawEditor. Damit erstellst du den TextDraw und im Script musst du ihn dann einfach per PlayerTextDrawSetString updaten.
Hey.
Das macht man mit Textdraws.
[ SCRIPTING ] [TUT]Textdraws für Jeden Spieler erstellen
Es gibt Tools die das "Designen" erleichtern:
http://forum.sa-mp.com/showthread.php?t=376758
Im englischen Wiki auch sehr gut erklärt:
http://wiki.sa-mp.com/wiki/Textdraw
MfG Kevin
Hat der Vorposter schon geschrieben.
http://forum.sa-mp.com/showthread.php?t=376758
Wie arbeite ich mit diesem.
Wie arbeite ich mit diesem.
Da ist eine Videoerklärung bei
Ok hab alles eingefügt dennoch kommt ingame nix.
Warum?
Lässt du das Ganze auch anzeigen? -> Mit 'TextDrawShowForPlayer' bzw 'PlayerTextDrawShowForPlayer'
Habe jetzt was gebastelt...
new Text:name = TextDrawCreate(100.0, 100.0, "Name: %s",Name(playerid));
TextDrawShowForPlayer(playerid, name);
new Text:Score = TextDrawCreate(100.0, 100.0, "Score: %s");
TextDrawShowForPlayer(playerid, Score);
new Text:Kills = TextDrawCreate(100.0, 100.0, "Kills/Tode: %s");
TextDrawShowForPlayer(playerid, Kills);
Brauche nurnoch ein paar Erklärungen.
Was bedeuten die Zahlen bei TextDrawCreate???
Das Beispiel was ich gepostet habe (der Link zum Tutorial) war leider nicht so passend,
habe da eben nicht dran gedacht!
So werden die Textdraws für ALLE Personen angezeigt.
Du willst sie aber für einzelne Personen ändern können (Es haben ja nicht alle den gleichen Namen, den gleichen Score und zudem noch die gleiche KD).
Also brauchst du folgende Funktionen:
http://wiki.sa-mp.com/wiki/Textdraw#Player-textdraws
Die Zahlen sind die X und Y Koordinaten!
Schau dir den Wiki-Link an.
Hier sieht man das mit den Koordinaten:
http://wiki.sa-mp.com/wiki/Image:Textdraw_map.png
ok
Das hat mir geholfen habe es schon herrausbekommen.
Wie kann ich aus dieser TextDraw was anzeigen lassen wie Name???
Habe das so:
public OnPlayerConnect(playerid)
{
if(GetPVarInt(playerid,"loggedin"))SpielerSpeichern(playerid);
new Text:name = TextDrawCreate(30.0, 300.0, "Name: %s",Name(playerid));
TextDrawShowForPlayer(playerid, name);
new Text:Score = TextDrawCreate(30.0, 310.0, "Score: %s",GetPVarInt(playerid,"Respektpunkte"));
TextDrawShowForPlayer(playerid, Score);
new Text:Kills = TextDrawCreate(30.0, 320.0, "Kills/Tode: %s/%s",GetPVarInt(playerid,"Kills"),GetPVarInt(playerid,"Tode"));
TextDrawShowForPlayer(playerid, Kills);
return 1;
}
Aber es kommen Warnings...
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(160) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(162) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(164) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(164) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Warnings.
"number of arguments does not match definition"
Die Funktion erwartet weniger/mehr Argumente als du angegeben hast!
new Text:name = TextDrawCreate(30.0, 300.0, "Name: %s",Name(playerid));
Ein "Argument" zu viel!
Man muss das ganze ERST mit "format" formatieren!
new string[MAX_PLAYER_NAME+7];
format(string,"Name: %s",Name(playerid));
new Text:name = TextDrawCreate(30.0,300,0, string);
Zu dem MAX_PLAYER_NAME+7:
Das ist die maximale Größe von dem String.
MAX_PLAYER_NAME ist 24.
Also könntest du gleich hinschreiben 31.
"Name: " sind zwar eigentlich nur 6 Zeichen (OHNE Anführungszeichen und MIT Leerzeichen), aber der Null-Terminator muss mit eingerechnet werden (http://wiki.sa-mp.com/wiki/Err…nation_array_is_too_small).
Darum immer +1, man muss aber nicht jedes Mal so stark rechnen, man kann es groß überschlagen.
MfG Kevin
ps. Du solltest immernoch die Player-Textdraws nehmen
http://wiki.sa-mp.com/wiki/CreatePlayerTextDraw
Habe einen Shop. Dieser hat punkte auf der Ganzen Map.
Er soll den Dialog nur anzeigen wenn man in der nähe ist von den Punkten.
Aber wie mache ich das mit den vielen Koordinaten oder ist das so richtig?.
ocmd:shop(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid,5,208.9612,1809.1342,21.8672 && -1422.9803,501.1250,3.0391 && -2518.1814,1213.3663,37.4283 && -1481.4482,2642.8135,58.7879 && -2446.1567,505.1133,30.0910 && 2591.0640,2795.3386,10.9844 && 1917.9510,966.5826,10.8203))return SendClientMessage(playerid,ROT,"Du bist nicht an den Shops");
ShowPlayerDialog(playerid,DIALOG_BUY,DIALOG_STYLE_LIST,"Kaufen","Rüstung(Preis)\nLeben(Preis)","Kaufen","Abbrechen");
return 1;
}
Warnings...
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(182) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(184) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(186) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(186) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 213: tag mismatch
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
16 Warnings.
Alles anzeigen
Pack das bitte beim nächsten Mal in einen anderen Thread.
if(!IsPlayerInRangeOfPoint(playerid,5,208.9612,1809.1342,21.8672) && !IsPlayerInRangeOfPoint(playerid,5,-1422.9803,501.1250,3.0391) && !IsPlayerInRange ...
Hätte ich einen Neuen Thread aufgemacht hätten mich bestimmt welche angeschnautzt.
Habe dennoch einen Fehler.
ocmd:shop(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid,5,208.9612,1809.1342,21.8672)); && if(!IsPlayerInRangeOfPoint(playerid,5,-1422.9803,501.1250,3.0391)); && if(!IsPlayerInRangeOfPoint(playerid,5,-2518.1814,1213.3663,37.4283)); && if(!IsPlayerinRangeOfPoint(playerid,5,-1481.4482,2642.8135,58.7879)); && if(!IsPlayerInRangeOfPoint(playerid,5,-2446.1567,505.1133,30.0910)); && if(!IsPlayerinRangeOfPoint(playerid,5,2591.0640,2795.3386,10.9844));
&& if(!IsPlayerInRangeOfPoint(playerid,5,1917.9510,966.5826,10.8203))return SendClientMessage(playerid,ROT,"Du bist nicht an den Shops");
ShowPlayerDialog(playerid,DIALOG_BUY,DIALOG_STYLE_LIST,"Kaufen","Rüstung(Preis)\nLeben(Preis)","Kaufen","Abbrechen");
return 1;
}
Was ist falsch ich habe diese Fehlercodes...
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(182) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(184) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(186) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(186) : warning 202: number of arguments does not match definition
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : error 036: empty statement
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : error 029: invalid expression, assumed zero
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : warning 215: expression has no effect
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : error 001: expected token: ";", but found "if"
C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(665) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Alles anzeigen
du musst es so machen:
If(!IsPlayerInRangeOfPoint(playerid, 5.0 /* <- Das .0 nicht vergessen */, X, Y, Z) && !IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z) && !IsPlayerIn /* USW */) {
// Tu etwas hier
}