heyho leute hab da ma ne frage xD also wie kan ich die %s und %d so definiren das %s der spieler sein name ist den er gekilt hat und %d der wo down ist ? hoffe ihr wisst was ich meine xD
%s und %d ?[brauche imer noch hilfe ...]
- Dark_Blizzard77
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
%c-einzelner Buchstabe
%f-Float wert also kommazahl
%s-Strings zb namen
%d-ganze zahlen zb 334und hier noch ne seite wos ne vollständige tabelle gibt
http://www.cplusplus.com/reference/clibrary/cstdio/printf///edit achso moment^^
erst muss du den playername mit new playername[24]
new gekillter[24] "anlegen" ka wie ich mich jetzt richtig ausdrücke^^
dann musst du dir den namen holen GetPlayerName(killerid, playername, sizeof(playername)); //der der getötet hat
GetPlayerName(playerid, playername, sizeof(playername)); //der der gestorben ist jetzt kannst du die namen per string mit "playername" und "gekillter" aufrufen.new string[30] hier legst du den string an
format(string, sizeof(string), "hallo %s, du hast %s gekillt",playername, gekillter); //und hier wird er so formatiert das er das %s ausgeben kann
SendClientMessage(killerid, FARBE_WEIß, string);
du kannst natürlich auch die playerid anstatt den namen senden lassen
format(string, sizeof(string), "hallo %s du hast id %d gekilt",playername, playerid);dann musst du aber %d nehmenich hoffe ich konnte es dir ein bisschen erklären
-
er sagt
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\pawno\include\SII.inc(249) : warning 219: local variable "string" shadows a variable at a preceding level
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\pawno\include\dini.inc(240) : warning 219: local variable "string" shadows a variable at a preceding level
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\pawno\include\dini.inc(271) : warning 219: local variable "string" shadows a variable at a preceding level
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(26) : error 001: expected token: ";", but found "-identifier-"
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(36) : warning 201: redefinition of constant/macro (symbol "dcmd(%1,%2,%3)")
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(203) : warning 217: loose indentation
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(203 -- 204) : error 029: invalid expression, assumed zero
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(204) : warning 217: loose indentation
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(204) : warning 215: expression has no effect
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(427) : warning 203: symbol is never used: "dcmd_spawn"
Pawn compiler 3.2.36642 erros hab ich shcon rausbekommen xD
-
#pragma tabsize 0
oben hin dann nennst du bitte new string in newstring99[30]; oder so dann musst du auch überall string so ändern
die anderen errors sind nicht von mir -
nur noch das
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(27) : error 021: symbol already defined: "GetPlayerName"
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(37) : warning 201: redefinition of constant/macro (symbol "dcmd(%1,%2,%3)")
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(428) : warning 203: symbol is never used: "dcmd_spawn"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
GetPlayerName(killerid, playername, sizeof(playername)); //der der getötet hat
GetPlayerName(playerid, playername, sizeof(playername)); //der der gestorben is -
nach dcmd_spawn suchen und entfernen, dann nach "#define dcmd" suchen und auch entfernen.
-
du hast wahrscheinlich 2mal GetPlayerName mit killerid drin einmal reicht
-
Zitat
%c-einzelner Buchstabe
%f-Float wert also kommazahl
%s-Strings zb namen
%d-ganze zahlen zbDas ist richtig, jedoch sind dies die wiedergabewerte bei Formatierungen.
Du musst den Spielernamen erstmal "holen" und dann wiedergeben.
Man könnte den Namen jetzt in eine Variable speichern und anschließend wiedergeben, bei der Variable sollte man aber bei der maximalen Zeichen setzung sich auf den maximalen Spielernamen beschränken, den mehr Zeichen benötigst du nicht Die Definierung heißt in SA-MP : MAX_PLAYER_NAME.Beispiel
if (strcmp("/myname", cmdtext, true, 10) == 0)
{
new Name[MAX_PLAYER_NAME]; // Variable für den Spieler Namen
GetPlayerName(playerid,Name,sizeof(Name)); // Namen abrufen und in die Variable ziehen
new nachricht[128]; // nachrichten variable
format(nachricht,sizeof(nachricht),"Dein Name lautet : %s",Name); //Formatierung
SendClientMessage(playerid,FARBE,nachricht); // Nachricht senden
return 1;
} -
und trotzdem brauchst du deinen nachrichte string nicht so groß machen
ich weiß sehr wohl das es MAC_PLAYER_NAME gibt nur bei der methode ist mir lieber -
Das Makro seitens Sa-mp ist die bessere Variante, so musst du nachher nicht alles umstellen sondern es wird aus der Aktuellen Definition übernommen.
Zudem sollte das Zeichen ,,ß´´ ungültig sein da es in der Zeichentabelle der Sprache weder als Operator eingetragen sowohl auch kein Identifikator sein sollte -
mir ist es so aber wesentlich lieber^^
was ich seh das hab ich warauf ich mich verlasse ist nicht immer das was ich will -
und trotzdem brauchst du deinen nachrichte string nicht so groß machen
ich weiß sehr wohl das es MAC_PLAYER_NAME gibt nur bei der methode ist mir lieberDein 30er String war aber viel zu klein.
2x MAX_PLAYER_NAME = 48
hallo %s, du hast %s gekillt = 24
Macht dann 72. -
war ja nur ein bsp und das hab ich nachträglich ergänzt weil ich die frage falsch verstanden habe
-
also ich hab es so xD
GetPlayerName(killerid, playername, sizeof(playername)); //der der getötet hat
GetPlayerName(playerid, playername, sizeof(playername)); //der der gestorben isoben
format(string99, sizeof(string99), "%s hat %s Down Geschossen Nice",playername, gekillter); //und hier wird er so formatiert das er das %s ausgeben kann
SendClientMessage(killerid, COLOR_RED, string99);
return 1;
das unten+also 2x killer id hab ich nicht gemacht ...
-
funtkioniert es denn?
-
nein er sagt immer noch der gleiche error
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(27) : error 021: symbol already defined: "GetPlayerName"
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(37) : warning 201: redefinition of constant/macro (symbol "dcmd(%1,%2,%3)")
D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\gamemodes\lsv.pwn(429) : warning 203: symbol is never used: "dcmd_spawn"
Pawn compiler 3.2.3664 -
ja du musst bei getplayername auch playername bei 2. mal anders schreiben und dann auch dementsprechnend ändern
-
und wie kan ich das machen ? einfach anstat playername gekilter oder ??
-
ja
-
habs jetzt so
GetPlayerName(killerid, killer, sizeof(playername)); //der der getötet hat
GetPlayerName(playerid, playername, sizeof(playername)); //der der gestorben isunten hab ich nicht verändert aber er sagt immer noch er gleiche error
-