stock VehicleAllowed(playerid)
{
switch(GetVehicleModel(Fahrzeug[playerid]))
{
case 585: return 1;
case 586: return 1;
case 587: return 1;
case 600: return 1;
case 602: return 1;
case 605: return 1;
case 608: return 1;
}
return 0;
}
Wie kann ich das Ressourcen(schonender) schreiben?
- Never.
- 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
-
-
Jap, sollte sich nichts ändern.
-
Klingt schonmal gut, aber klappt das immernoch so gut wenn ich bis zu 94 case's einfüge?
Ich denke anders kann man das nicht lösen -
stock VehicleAllowed(playerid)
{
switch(GetVehicleModel(Fahrzeug[playerid]))
{
case 585: return 1;
case 586: return 1;
case 587: return 1;
case 600: return 1;
case 602: return 1;
case 605: return 1;
case 608: return 1;
}
return 0;
}
Oder besser:stock VehicleAllowed(playerid)
{
switch(GetVehicleModel(Fahrzeug[playerid])) {
case 585,586,587,600,602,605,608: return 1;
}
return 0;
}mfg.
-
Noch besser:
stock VehicleAllowed(playerid)
{
switch(GetVehicleModel(Fahrzeug[playerid]))
{
case 585..587,600,602,605,608: return 1;
}
return 0;
} -
Dabei wäre aber eine If-Abfrage noch performanter.
stock VehicleAllowed(playerid) {
new modelid = GetVehicleModel(Fahrzeug[playerid]);
if((modelid >= 585 && modelid <= 587) || modelid == 600 || modelid == 602 || modelid == 605 || modelid == 608) return 1;
return 0;
} -
Nein dead mit case zu arbeiten ist in PAWN schneller also mit if oder else if nur der Ternäre Operator ist schneller.
-
Wie kann man das schonender schreiben?
Möchte nicht extra für diese Kleinigkeit nen neuen Thread öffnen :'D
GetPlayerPos(playerid,x);
GetPlayerPos(playerid,y);
GetPlayerPos(playerid,z); -
GetPlayerPos(playerid,x);
1. sollte das Warnings geben und zweitens wäre das beste dafür mit einer Array zu arbeiten aufgrund des Memoryverbauchs
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]); -
1. sollte das Warnings geben und zweitens wäre das beste dafür mit einer Array zu arbeiten aufgrund des Memoryverbauchs
new Float:Pos[3];
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
Ah fail, die lange Pause hat mir nicht gut getan :'Dk , danke
Ach ja, was ist hier dran falsch?
if(sscanf(params,"i",autoid))return SendClientMessage(playerid,Rot,"Du musst eine Fahrzeugnummer angeben.");
-
-
IPrototypeI: "Dabei wäre aber eine If-Abfrage noch performanter." - dabei heißt in diesem Fall. Grundsätzlich sind If-Abfragen/Else-If-Statements bis zu einer bestimmten Anzahl schneller als ein Switch-Case-Konstrukt. Der Ternary-Operator ist von alle dem aber der langsamste.
sLy: Was funktioniert daran denn nicht?
-
IPrototypeI: "Dabei wäre aber eine If-Abfrage noch performanter." - dabei heißt in diesem Fall. Grundsätzlich sind If-Abfragen/Else-If-Statements bis zu einer bestimmten Anzahl schneller als ein Switch-Case-Konstrukt. Der Ternary-Operator ist von alle dem aber der langsamste.
Naja würde ich nicht behaupten case ist zweilos schneller als die if abfrage hab mal ein kleinen einfachen test gemacht.
Zu Thema Ternärer Operator ist es so das dieser nur schneller ist bei eine zusätzlichen abfrage soll auch auch das if + else vereinfachen.
generel ist eine normale also eine if abfrage schneller als der Operator. -
IPrototypeI: "Dabei wäre aber eine If-Abfrage noch performanter." - dabei heißt in diesem Fall. Grundsätzlich sind If-Abfragen/Else-If-Statements bis zu einer bestimmten Anzahl schneller als ein Switch-Case-Konstrukt. Der Ternary-Operator ist von alle dem aber der langsamste.
sLy: Was funktioniert daran denn nicht?
Weiß ich auch nicht, eigentlich sollte es so doch gehen ;o
error 035: argument type mismatch (argument 1)
-
breadfish.de
Hat das Thema geschlossen.