hallo,
Ich habe mal eine frage an erfahrene Scripter.
Kann man in Pawn Funktionen überlagern?
MFG
AS
hallo,
Ich habe mal eine frage an erfahrene Scripter.
Kann man in Pawn Funktionen überlagern?
MFG
AS
Was heißt "überlagern"?
ich meine überladen
und damit meine ich eine funktion mit verschieden parametern
zb.
SCM(farbe,text,länge des strings);
oder mit der gleichen funktion
SCM(farbe,text)
oder
SCM(text);
so das erkannt wird an den angegeben parametern was für eine funktion ausgeführt wird.
ist schwer zuerklären
sry
Ist nicht möglich.
ok danke
Das nennt sich dann optionale Parameter.
Ein schönes Beispiel bietet diese Funktion
http://wiki.sa-mp.com/wiki/Getproperty
Ich kann die Parameter einzeln ansprechen wie ich lustig bin.
getproperty(.name="Ich", .id = 2, .string = get, .value = 26842571);
Das Funtkioniert aber nur bei optionalen Parametern, dann gibt es noch einen Trick via hooking un via direktive
PAWN bietet eine C-ähnliche Syntax, aber mehr hat das mit C "Sprachen" nicht gemeinsam
Ist nicht möglich.
Ist es schon... Allerdings brauchst du dazu eine Libary und das ist sehr sehr sehr viel Arbeit.
Du kannst dir aber die einzelnen Funktionen als Stocks erstellen.
z.B wenn du ErrorMsg's ausgeben willst:
stock ErrorMsg(playerid,text)
{
SendClientMessage(playerid,rot,text);
return 1;
}
Alles anzeigenDas nennt sich dann optionale Parameter.
Ein schönes Beispiel bietet diese Funktion
http://wiki.sa-mp.com/wiki/Getproperty
Ich kann die Parameter einzeln ansprechen wie ich lustig bin.
getproperty(.name="Ich", .id = 2, .string = get, .value = 26842571);
Das Funtkioniert aber nur bei optionalen Parametern, dann gibt es noch einen Trick via hooking un via direktive
PAWN bietet eine C-ähnliche Syntax, aber mehr hat das mit C "Sprachen" nicht gemeinsam
Optionale Parameter haben mit Funktionsüberladung nichts zutun. Das sind Funktionen die Argumente von verschiedenen Datentypen einfordern:
public Func (const str[])
public Func (Float:f)
public Func (someshit)
Alles anzeigen
Ist es schon... Allerdings brauchst du dazu eine Libary und das ist sehr sehr sehr viel Arbeit.
Du kannst dir aber die einzelnen Funktionen als Stocks erstellen.
z.B wenn du ErrorMsg's ausgeben willst:
stock ErrorMsg(playerid,text)
{
SendClientMessage(playerid,rot,text);
return 1;
}
Die Frage war ja auch nicht ob das mit einer (nicht existierenden) Library für PAWN möglich ist.
Optionale Parameter haben mit Funktionsüberladung nichts zutun. Das sind Funktionen die Argumente von verschiedenen Datentypen einfordern:
Du hast das glaub ich nicht so ganz verstanden,
er hat nach einer Möglichkeit gefragt, die hab ich ihm gegeben.
Er könnte das durch nur eine Funktion mit optionalen Paraetern realisieren.
Es kommt natürlich nicht an die Überladungen ran, aber es gibt diese ähnliche Möglichkeit
ja genau das meine ich
Danke