Wie kann ich einen Tank machen für jedes Auto derzeit wird diese Variable für jedes Auto benutzt:
GasMax 1000
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
Wie kann ich einen Tank machen für jedes Auto
Was genau willst du jetzt wissen?!Sowas:
new Tank[MAX_VEHICLES] = {GasMax, ...};
mfg.
-
Was genau willst du jetzt wissen?!Sowas:
new Tank[MAX_VEHICLES] = {GasMax, ...};
mfg.
Für jeses car ein eigendes Tankvolumen -
Du meinst für jedes Modell?
new modelGas[212] =
{
1000,
750,
2000,
//...
};Abzufragen mit:
modelGas[GetVehicleModel(vehicleid)-400] -
Wir mach ich diesen strich unter SA-MP Freeroom Server ?
P.s ja ich weiß mit ein Textdraw -
Das ist ein ganz langer Punkt, sprich die TextDrawLetterSize ist beim X Wert sehr groß.
-
Wie bekomme ich das Faust-Icon hin? -
Moin
Brauche einen Carinfo Befehl (/carinfo)
Funktion : /Carinfo [ID] *
ID = Die Fahrzeug ID bei /dlRein Sollte : Besitzer / Model / ID Beispiel : http://gyazo.com/7a783c74f1cf6d5a67bf598e09000e6a
enum cInfo
{
CarId,
CarOwner[MAX_PLAYER_NAME],
CarModel,
Float:CarPos_x,
Float:CarPos_y,
Float:CarPos_z,
Float:CarRotate,
CarNitro,
CarHyd,
CarWheel,
CarAusp,
CarSideL,
CarSideR,
CarFB,
CarRB,
CarSpoiler,
CarRoof,
CarHood,
CarVents,
CarLamps,
CarPJ,
CarC1,
CarC2,
CarPreis,
CarTank,
CarMaxTank,
CarState
}
new PlayerCar[MAX_PLAYERS][MaxVeh][cInfo];
Lg
Jeffry @:Jeffry Jeffry ne idee? -
Naja, um an den Index zu kommen:
new id;
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[playerid][i][CarId] == GetPlayerVehicleID(playerid))
{
id = i;
break;
}
}
//Und dann hier eben alles auslesen, zum Beispiel "PlayerCar[playerid][id][CarOwner]" oder so...Pr0x: Das scheint ein Sprite zu sein, sonst wüsste ich nicht wie das geht. Kannst ja mal schauen ob du da eins findest.
EDIT:
Crocky:
Das was du mir geschickt hast, etwas erweitert:
Spoiler anzeigen ocmd:carinfo(playerid, params[])
{
new pID;
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "u", pID)) return SendClientMessage(playerid,ROT,"/carinfo [Spieler]");
//Abfragen ob der Spieler online ist...
new id;
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[pID][i][CarId] == GetPlayerVehicleID(pID))
{
id = i;
break;
}
}
new str[512];
format(str, sizeof(str), "Besitzer: %s (ID: %D)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sTank: %d\n", str, PlayerCar[pID][id][CarTank]);
format(str, sizeof(str), "%sPreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
//...
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
}Das sollte reichen damit du den Rest fertig machen kannst. Ansonsten einfach hier Bescheid geben.
PMs kann ich dir keine mehr schicken, da du es auf "Nur Freunde" umgestellt hast. -
Ich habe dieses Include in mein Script eingefügt: [ INCLUDE ] Anti-Cheat v3.3.1 - Der sichere Weg, den Server zu schützen!
Seitdem ich das include eingespielt hab, wird die Kamera nicht mir gesetzt.
Habe ein include, Namens camfix drinnen, kann das sein das sich das include irgendwie überschneidet? -
-
ocmd:carinfo(playerid, params[])
{
new pID;
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "u", pID)) return SendClientMessage(playerid,ROT,"/carinfo [Spieler]");
//Abfragen ob der Spieler online ist...
new id;
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[pID][i][CarId] == GetPlayerVehicleID(pID))
{
id = i;
break;
}
}
new str[512];
format(str, sizeof(str), "Besitzer: %s (ID: %D)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sTank: %d\n", str, PlayerCar[pID][id][CarTank]);
format(str, sizeof(str), "%sPreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
//...
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
}Hey, Also, es klappt zwar (Dialog kommt)
Aber habe eine Frage ...
Wollte den Befehl so, das man das per CAR ID (Die erste bei DL - Auf dem Bild 241 ******
Sprich /carinfo 241 -> Dann soll es den Besitzer Anzeigen.
P.s Tank/Preis werden nicht Angezeigt, da steht "0"***
MfG -
kann das sein das sich das include irgendwie überschneidet
Vermutlich liegt der Fehler in der camfix include.
Ich hab davon auch noch nichts gehört -
Das Problem ist ohne dieses Anticheat Include funktioniert alles !
-
Das Problem ist ohne dieses Anticheat Include funktioniert alles !
Der Anti Cheat an sich hat sehr viele Probleme (je nach dem wie viele bereits behoben sind), und wenn es ohne den geht dann liegt es wohl daran, ja.
Ich kann mir vorstellen, dass da ein Hook nicht klappt, oder eine Funktion nicht richtig aufgerufen oder durchgeführt wird. Am besten du kontaktierst ErikSon direkt, oder du debuggst das alles mal, aber das ist, je nach dem wie groß dein Code ist, ein ziemlicher Aufwand.Crocky:
Dann musst du es so schreiben:
Spoiler anzeigen ocmd:carinfo(playerid, params[])
{
new vID;
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "d", vID)) return SendClientMessage(playerid,ROT,"/carinfo [VehicleID]");
//Abfragen ob der Spieler online ist...
new id, pID;
for(new p = 0; p<MAX_PLAYERS; p++)
{
if(IsPlayerConnected(p))
{
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[p][i][CarId] == vID)
{
id = i;
pID = p;
break;
}
}
}
}
new str[512];
format(str, sizeof(str), "Besitzer: %s (ID: %D)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sModel ID: %d\n", str, PlayerCar[pID][id][CarModel]);
format(str, sizeof(str), "%sTank: %d\n", str, PlayerCar[pID][id][CarTank]);
format(str, sizeof(str), "%sPreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
//...
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
} -
Funktioniert - Danke
ocmd:carinfo(playerid, params[])
{
new vID;
new id, pID;
new str[512];
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "d", vID)) return SendClientMessage(playerid,ROT,"/carinfo [VehicleID]");
for(new p = 0; p<MAX_PLAYERS; p++)
{
if(IsPlayerConnected(p))
{
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[p][i][CarId] == vID)
{
id = i;
pID = p;
break;
}
}
}
}
format(str, sizeof(str), "Besitzer: %s (ID: %d)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sModel ID: %d | Name %s \n", str, PlayerCar[pID][id][CarModel],PlayerCar[pID][id][Name]);
format(str, sizeof(str), "%sTank: %d/%d\n", str, PlayerCar[pID][id][CarTank],PlayerCar[pID][id][CarMaxTank]);
format(str, sizeof(str), "%sNeupreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
}
Frage : Kannst du mir noch Helfen, das wenn es keinem Spieler Gehört - die Fraktion angezeigt wird?
Fraktions IDS Wären
else if(team == 1){ ftext ="Polizei"; }
else if(team == 2){ ftext ="FBI"; }
else if(team == 3 ){ ftext ="Sanitäter"; }
else if(team == 4 ){ ftext ="Hitman"; }
else if(team == 5 ){ ftext ="News Reporter"; }
else if(team == 6 ){ ftext ="Transport GmbH"; }
else if(team == 7 ){ ftext ="Ordnungsamt"; }
else if(team == 8 ){ ftext ="Russen Mafia"; }
else if(team == 9 ){ ftext ="Yakuza"; }
else if(team == 10){ ftext ="Ballas"; }
else if(team == 11){ ftext ="Grove Street"; }
else if(team == 12){ ftext ="Los Chickos Malos "; }
else if(team == 13){ ftext ="Feuerwehr"; }
else if(team == 14){ ftext ="Bundeswehr"; }
else if(team == 15){ ftext ="SWAT"; }
else if(team == 16){ ftext ="Punkx Bikergang"; }
else if(team == 17){ ftext ="Aztecas"; }
else if(team == 18){ ftext ="Vagos"; }
else if(team == 19){ ftext ="West Coast Custom"; }
else if(team == 20){ ftext ="Präsident"; }
else if(team == 21){ ftext ="Al Qaida"; }Fahrzeug Definierungen :
new lspdcars[22];
new praesicars[11];
new gmbhcars[4];
new gmbhcars4[4];
new Ballascars[22];
new fbicars[19];
new sanicars[18];
new hitmancars[17];
new newscars[11];
new oamtcars[15];
new Yakucars[12];
new LCMcars[12];Wenn es keiner Fraktion gehört könnte da noch stehen das es ein Adminfahrzeug ist?
Wäre mega -
Kanns dir nur ziemlich allgemein sagen, aber so sollte es passen:
Spoiler anzeigen ocmd:carinfo(playerid, params[])
{
new vID;
new id, pID=-1, team=-1, ftext[32];
new str[512];
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "d", vID)) return SendClientMessage(playerid,ROT,"/carinfo [VehicleID]");
for(new p = 0; p<MAX_PLAYERS; p++)
{
if(IsPlayerConnected(p))
{
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[p][i][CarId] == vID)
{
id = i;
pID = p;
break;
}
}
}
}
if(pID != -1)
{
format(str, sizeof(str), "Besitzer: %s (ID: %d)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sModel ID: %d | Name %s \n", str, PlayerCar[pID][id][CarModel],PlayerCar[pID][id][Name]);
format(str, sizeof(str), "%sTank: %d/%d\n", str, PlayerCar[pID][id][CarTank],PlayerCar[pID][id][CarMaxTank]);
format(str, sizeof(str), "%sNeupreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
}
else
{
for(new i=0; i<sizeof(lspdcars); i++)
{
if(lspdcars[i] == vID)
{
team = 1; //jeweils anpassen
goto AFTERALLLOOPS;
}
}
//usw...mit allen deinen Fahrzeugvariablen für die Fraktionen
AFTERALLLOOPS:
if(team == 1){ ftext ="Polizei"; }
else if(team == 2){ ftext ="FBI"; }
else if(team == 3 ){ ftext ="Sanitäter"; }
else if(team == 4 ){ ftext ="Hitman"; }
else if(team == 5 ){ ftext ="News Reporter"; }
else if(team == 6 ){ ftext ="Transport GmbH"; }
else if(team == 7 ){ ftext ="Ordnungsamt"; }
else if(team == 8 ){ ftext ="Russen Mafia"; }
else if(team == 9 ){ ftext ="Yakuza"; }
else if(team == 10){ ftext ="Ballas"; }
else if(team == 11){ ftext ="Grove Street"; }
else if(team == 12){ ftext ="Los Chickos Malos "; }
else if(team == 13){ ftext ="Feuerwehr"; }
else if(team == 14){ ftext ="Bundeswehr"; }
else if(team == 15){ ftext ="SWAT"; }
else if(team == 16){ ftext ="Punkx Bikergang"; }
else if(team == 17){ ftext ="Aztecas"; }
else if(team == 18){ ftext ="Vagos"; }
else if(team == 19){ ftext ="West Coast Custom"; }
else if(team == 20){ ftext ="Präsident"; }
else if(team == 21){ ftext ="Al Qaida"; }
if(team != -1)
{
format(str, sizeof(str), "Fraktion: %s (ID: %d)\n", ftext, team);
//Für mehr Informationen musst du es wie bei den PlayerCars machen...
}
else
{
format(str, sizeof(str), "Admincar\n");
//Für mehr Informationen musst du es wie bei den PlayerCars machen...
}
}
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
}Nutze für solche Fragen übrigens ab nächstes mal einen eigenen Thread, da dies definitiv keine kleine Scripting Frage ist, wie du auch an der Länge des Codes sehen kannst.
-
ocmd:carinfo(playerid, params[])
{
new vID;
new id, pID=-1, team-1, ftext[32];
new str[512];
if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
if(sscanf(params, "d", vID)) return SendClientMessage(playerid,ROT,"/carinfo [VehicleID]");
for(new p = 0; p<MAX_PLAYERS; p++)
{
if(IsPlayerConnected(p))
{
for(new i=0; i<MaxVeh;i++)
{
if(PlayerCar[p][i][CarId] == vID)
{
id = i;
pID = p;
break;
}
}
}
}
if(pID != -1)
{
format(str, sizeof(str), "Besitzer: %s (ID: %d)\n", SpielerName(pID), pID);
format(str, sizeof(str), "%sModel ID: %d | Name %s \n", str, PlayerCar[pID][id][CarModel],PlayerCar[pID][id][Name]);
format(str, sizeof(str), "%sTank: %d/%d\n", str, PlayerCar[pID][id][CarTank],PlayerCar[pID][id][CarMaxTank]);
format(str, sizeof(str), "%sNeupreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
}
else
{
for(new i=0; i<sizeof(lspdcars); i++)
{
if(lspdcars[i] == vID)
{
team = 1; //jeweils anpassen
goto AFTERALLLOOPS;
}
}
//usw...mit allen deinen Fahrzeugvariablen für die Fraktionen
AFTERALLLOOPS:
if(team == 1){ ftext ="Polizei"; }
else if(team == 2){ ftext ="FBI"; }
else if(team == 3 ){ ftext ="Sanitäter"; }
else if(team == 4 ){ ftext ="Hitman"; }
else if(team == 5 ){ ftext ="News Reporter"; }
else if(team == 6 ){ ftext ="Transport GmbH"; }
else if(team == 7 ){ ftext ="Ordnungsamt"; }
else if(team == 8 ){ ftext ="Russen Mafia"; }
else if(team == 9 ){ ftext ="Yakuza"; }
else if(team == 10){ ftext ="Ballas"; }
else if(team == 11){ ftext ="Grove Street"; }
else if(team == 12){ ftext ="Los Chickos Malos "; }
else if(team == 13){ ftext ="Feuerwehr"; }
else if(team == 14){ ftext ="Bundeswehr"; }
else if(team == 15){ ftext ="SWAT"; }
else if(team == 16){ ftext ="Punkx Bikergang"; }
else if(team == 17){ ftext ="Aztecas"; }
else if(team == 18){ ftext ="Vagos"; }
else if(team == 19){ ftext ="West Coast Custom"; }
else if(team == 20){ ftext ="Präsident"; }
else if(team == 21){ ftext ="Al Qaida"; }
if(team != -1)
{
format(str, sizeof(str), "Fraktion: %s (ID: %d)\n", ftext, team);
//Für mehr Informationen musst du es wie bei den PlayerCars machen...
}
else
{
format(str, sizeof(str), "Admincar\n");
//Für mehr Informationen musst du es wie bei den PlayerCars machen...
}
}
ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
return 1;
}
Hey,
C:\Users\Dome\Desktop\Gamemode.pwn(3826) : error 001: expected token: ";", but found "-"
C:\Users\Dome\Desktop\Gamemode.pwn(3826) : warning 215: expression has no effect
C:\Users\Dome\Desktop\Gamemode.pwn(3826) : error 017: undefined symbol "ftext"
C:\Users\Dome\Desktop\Gamemode.pwn(3826) : warning 215: expression has no effect
C:\Users\Dome\Desktop\Gamemode.pwn(3826) : error 001: expected token: ";", but found "]"
C:\Users\Dome\Desktop\Gamemode.pwn(3826) : fatal error 107: too many error messages on one lineZeile :
new id, pID=-1, team-1, ftext[32];
mFG -
Zitiere doch bitte nicht den ganzen Post mit allen Codes, das wird so unübersichtlich und man muss meterlang scrollen. Danke.
Zwecks der Errors, mein Fehler:
new id, pID=-1, team-1, ftext[32];
zu:
new id, pID=-1, team=-1, ftext[32];Da hat das Gleichzeichen gefehlt.
-
Wie kann ich bei dem folgenden Code einfügen, dass auch ein bestimmter Name den Befehl ausführen kann:
if(!strcmp(cmdtext, "aconfig", true))
{
if(GetPVarInt(playerid,"SpielerAdmin")<MAX_ADMIN_LEVEL) return SendRightError(playerid,MAX_ADMIN_LEVEL);
SetPVarInt(playerid,"PlayerStep",1);
return ShowPlayerDialogEx(playerid,ConfigDialog,DIALOG_STYLE_LIST,"Admin.config",ConfigMenuText,"Wählen","Zurück");
} -
Beitrag von Kinimod ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.