Hallo Leute,
ich habe mir gerade mal im tutorial bereich die Tutorial zu den Includes angeschaut...
Jetzt wollte ich mal wissen, wie ich eine Funktion schreibe, die selbst etwas ausgibt, die man dann auch in if abfragen nutzen kann wie IsPlayerConnected und ob man sowas mit stock oder public in ein include schreiben sollte.
Mein eigentlicher Plan ist, dass ich die modelid Liste von allen Autos, die ich in mein Script geschrieben habe, ins include packe und dies mit ner schönen Funktion versehe, sprich, das ich dann in die eigentliche GM einfach nur z.B. IsVehicleAnCar reinschreiben muss o.a.
Ich hoffe ihr versteht, was ich machen möchte, denn ich hatte jetzt gerade selbst nen paar Formolierungsschwierigkeiten...
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
-
-
Du müsstest die genau so wie in der normalen .pwn einfach ins include packen. Da gibt es nicht viel anderes.
Meinst du sowas:
public IsABike(carid)
{
new Bikes[] = { 581, 521, 463, 522, 461, 471, 468, 586 };
for(new i = 0; i < sizeof(Bikes); i++)
{
if(GetVehicleModel(carid) == Motorads[i]) return 1;
}
return 0;
} -
Jain.
Erhlich ich weiß gerade nicht, ob das was du da geschrieben hast, das ist, was ich wollte bzw. so ähnlich.
Ich möchte das ich hinterher im script einfach nur eingeben muss (bei deinem beispiel) : if(IsABike(playerid)) { .... Sprich, wenn das Fahrzeug von playerid ein Fahrrad ist, dann soll IsABike =1 ausgeben sonst 0 aber ich weiß nicht, wie ich der stock sagen, was IsABike hinterher ausgeben soll... und wo ist hier der Unterschied zur Public? -
Ja das ist es. Den Unterschied kannst du in BFX neuem Tut nahclesen, möchte hier nicht nochmal alles erklären, habe es schon 10 mal
Aber dieses stock kannst du in die include packen, und fertig. Damit sind aber Motorräder gemeint, sry -
Ja das ist es. Den Unterschied kannst du in BFX neuem Tut nahclesen, möchte hier nicht nochmal alles erklären, habe es schon 10 mal
Aber dieses stock kannst du in die include packen, und fertig. Damit sind aber Motorräder gemeint, sry
Ja thx, das Tut habe ich auch gelesen, dort werden zwar die einzelnen Funktionen erklärt, aber sie werden nicht gegenübergestellt und es wird auch nicht richtig (find ich auf jedenfall) deutlich gemacht, wann man jetzt static, publics oder stocks o.a. benutz und wann die jeweils anderen.Zu deinem Code, erklär mir mal pls wie den IsABike das false oder true zugewisen wird bzw. 1 oder 0 !? Das versteh ich nicht so ganz.
-
normale Funktion wird halt immer compiliert. stock nur, wenn sie auch verwendet wird. Und CallBacks(mit forward und public) erstellt man nur dann, wenn man extern auf diese Funktion zugreift. Per CallRemot oder SetTimer.
Bei meiner Funktion ist so. In dem Array werden die Models gespeichert. Wenn das GetVehicleModel mit einem aus der Liste übereinstimmt, wird wahr gesendet.
Wenn nicht, dann falsch. Dann machst du einfach if(IsABike(carid)) tuedas(); oder halt if(!IsABike(carid)) tuedas(); -
normale Funktion wird halt immer compiliert. stock nur, wenn sie auch verwendet wird. Und CallBacks(mit forward und public) erstellt man nur dann, wenn man extern auf diese Funktion zugreift. Per CallRemot oder SetTimer.
Bei meiner Funktion ist so. In dem Array werden die Models gespeichert. Wenn das GetVehicleModel mit einem aus der Liste übereinstimmt, wird wahr gesendet.
Wenn nicht, dann falsch. Dann machst du einfach if(IsABike(carid)) tuedas(); oder halt if(!IsABike(carid)) tuedas();
AChso also bezieht sich das return in dieser Zeile : if(GetVehicleModel(carid) == Motorads[i]) return 1;
nicht auf das if(getVeh....) sondern auf das if von IsABike!? Woran kann man das erkennen? an den fehlenden {} ?€: Wäre das z.B. richtig, wenn ich das in nen Include packen würde? :, also würde das dann 1 ausgebenm wenn es nen auto ist, 2 wenns nen flieger ist usw. ? :
#define VEHICLE_TYPE_CAR 1
#define VEHICLE_TYPE_FLUG 2
#define VEHICLE_TYPE_BOOT 3
#define VEHICLE_TYPE_BIKE 4stock GetVehicleType(playerid) {
new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
if(modelid = ids vom auto || ...) return 1;
else if(modelid = ids vom flieger || ...) return 2; //Flugzeug
else if(modelid = ids vom Boat || ...) return 3; //Boot
else if(modelid = ids vom Bikes || ...) return 4;
return 0;
} -
Nö, die Klammern kann man da einfach weglassen. Das ist jedermans Scriptstil. Wenn ich eine Abfrage nur 1zeilig habe, lasse ichs immer weg.
-
Aber müsste sich das return nicht auf die if beziehen, die vor dem return steht und nicht auf die stock? Und warum gibt die Stock nicht direkt 0 aus, denn ganz am ende des scripts habe ich ja return 0 stehen? Müsste die dann nicht immer 0 ausgeben?
-
ne beispiel du willst wissen ob der Spieler in dem Car ist
stock IsPlayerAtCar(playerid)
{
if(GetPlayerVehicleID(playerid) == 22)return 1; //return 1 wenn der Spieler in der vehicle ID 22 ist
return 0;//wenn der Spieler nicht in der carid 22 ist
}die Abfrage lautet dann so
if(IsPlayerAtCar(playerid))
{
//wenn ja
}
else
{
//wenn nicht
} -
Aber woher weiß das script, dass sich das return auf das stock bezieht und nicht auf if(GetPlayerVehicleID(playerid) `?
-
Weil das so ist.
Falls(blabla) return 1; < hier ist Schicht im Schacht
return 0; < hier gehts nur hin, falls das obere nicht zutrifft -
Ist stock IsPlayerAtCar(playerid)
{
if(GetPlayerVehicleID(playerid) == 22)return 1; //return 1 wenn der Spieler in der vehicle ID 22 ist
return 0;//wenn der Spieler nicht in der carid 22 ist
}Das selbe wie:
stock IsPlayerAtCar(playerid)
{
if(GetPlayerVehicleID(playerid) == 22) {
return 1
}
else {
return 0;//wenn der Spieler nicht in der carid 22 ist
}
}?
-
Jo, bloss so würde es kein Informatiker schreiben, da man sich eig. gerne Sachen sparrt.
So wie im Englischen: Nicht I am sondern I'm. -
Ah okey...
Aber wenn mans genau nimmt schreibt nicht jeder I am als I'm, weils informal english ist -
Jeder macht er wie er es mag Genauso hat jeder seinen Scriptstil. Wenn du dir meine Scripte ansiehst, siehst du sofort, dass ich ganz anders als alle anderen schreibe.
-
breadfish.de
Hat das Thema geschlossen.