Nabend, wie kann ich einen Checkpoint erstellen, der für eine bestimmte sache gedacht ist.
also ich hab nen job setze checkpoint und dieser soll nur mit einem befehl weggehen.
ich versteh das system noch nicht ganz
[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
-
-
Nutze ebenfalls das Streamer Plugin: http://forum.sa-mp.com/showthread.php?t=102865
Dann dort wo du den Checkpoint erstellst:
meinCP = CreateDynamicCP(...);Und dort wo du ihn entfernen willst:
DestroyDynamicCP(meinCP); -
der muss oben im script nicht definiert werden oder?
-
Wenn du ihn Callback-übergreifend verwenden willst schon, bzw. wenn du auf ihn zu einem späteren Zeitpunkt zugreifen willst.
Kurz: Doch, muss er.

-
und wie frage ich ab, ob er genau in diesem checkpoint steht?
-
Wills auf die ganz neue Version umbauen von MySQL
VehInfo[i][ModellID] = mysql_GetInt("Auto", "ModellID", "ID", string);
VehInfo[i][ModellID] = cache_get_field_content_int(......)Hilfe pls

MfG
-
VehInfo[i][ModellID] = cache_get_field_content_int(i, "ModellID");
Wenn man es direkt übersetzt. Aber bei deinem System sieht es sicher etwas anders aus.
-
und wie frage ich ab, ob er genau in diesem checkpoint steht?
Steht doch alles unter dem Link, den Jeffry gepostet hat.native IsPlayerInDynamicCP(playerid, checkpointid);
Die CheckpointID ist das, was die Funktion CreateDynamicCP() zurückgibt, sprich die Variable, die du als L-Wert nutzt, im Beispiel von Jeffry die Variable "meinCP":
meinCP = CreateDynamicCP(...); -
Finde hier keinen Zeichenfehler etc.. kann mir jemand mal helfen?
else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0) || Spieler[playerid][pFraktion] == 3) || Spieler[playerid][pFraktion] == 5) || Spieler[playerid][pFraktion] == 9) || Spieler[playerid][pFraktion] == 10) || Spieler[playerid][pFraktion] == 11)) -
else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11)
So sollte es funktionieren, du hast immer Spieler[playerid][pFraktion] == 0) //) darf nur am ende sein gemacht
-
else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11)
So sollte es funktionieren, du hast immer Spieler[playerid][pFraktion] == 0) //) darf nur am ende sein gemacht
Funktioniert leider nicht. -
Was kommen für Warns/Errors, zeig mal den Command oder mehr Code besser gesagt
-
Code
C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : error 029: invalid expression, assumed zero C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : warning 215: expression has no effect C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : error 001: expected token: ";", but found "if" C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : error 029: invalid expression, assumed zero C:\Users\Alex\Desktop\**\gamemodes\reallife.pwn(6612) : fatal error 107: too many error messages on one line -
Poste bitte etwas mehr vom Code.
-
Hier mal der ganze Code.
for(new i=0;i<sizeof(fVehicleShop);i++)
{
if(vehicleid == fShopVehicles[i])
{
if(!Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11))
{
if(Spieler[playerid][pRank] == RANG_LEADER)
{
new Float:Pos[3];
GetVehicleModelInfo(fVehicleShop[i][fVmodelid], VEHICLE_MODEL_INFO_SIZE, Pos[0], Pos[1], Pos[2]);
InterpolateCameraPos(playerid,fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
InterpolateCameraLookAt(playerid,fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
FreezePlayer(playerid);
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString), COLOR_HEX_BLUE"Wang Cars - Fraktionsfahrzeuge\n\n");
format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Fahrzeug: "COLOR_HEX_WHITE"%s\n"COLOR_HEX_BLUE"Preis: "COLOR_HEX_WHITE"$%d\n"COLOR_HEX_BLUE"Tankverbrauch: "COLOR_HEX_WHITE"%.2fL/KM\n", DialogString, fVehicleShop[i][fVName], fVehicleShop[i][fVPreis], VehicleData[fVehicleShop[i][fVmodelid]-400][vehTankVerbrauch]);
format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Tankgröße: "COLOR_HEX_WHITE"%.2fL\n\nWenn du dieses Fahrzeug kaufen möchtest, klicke auf den entsprechenden Button.\n", DialogString, VehicleData[fVehicleShop[i][fVmodelid]-400][vehMaxTank]);
strcat(DialogString, COLOR_HEX_WHITE"Das Geld wird von deiner Hand abgehoben, und das Fahrzeug gehört dann automatisch zur Fraktion an!\nDieses lässt sich nicht auf die privaten Fahrzeuge übertragen, und lässt sich nur durch die Hälfte des Kaufpreises verkaufen!\nÜberleg gut, ob es dir Wert ist!");
ShowPlayerDialog(playerid, DIALOG_BUYFRAKVEHICLE, DIALOG_STYLE_MSGBOX, "Fraktions Fahrzeug - Kaufen", DialogString, "Kaufen", "Abbrechen");
return 1;
}
}
else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11))
{
FreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
UnfreezePlayer(playerid);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Diese Fahrzeuge können nur Gangs und Mafien kaufen.");
}
}
} -
Und welche Zeile gehört jetzt zu welcher Errorzeile?
-
for(new i=0;i<sizeof(fVehicleShop);i++)
{
if(vehicleid == fShopVehicles[i])
{
if(!Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11))
{
if(Spieler[playerid][pRank] == RANG_LEADER)
{
new Float:Pos[3];
GetVehicleModelInfo(fVehicleShop[i][fVmodelid], VEHICLE_MODEL_INFO_SIZE, Pos[0], Pos[1], Pos[2]);
InterpolateCameraPos(playerid,fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
InterpolateCameraLookAt(playerid,fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
FreezePlayer(playerid);
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString), COLOR_HEX_BLUE"Wang Cars - Fraktionsfahrzeuge\n\n");
format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Fahrzeug: "COLOR_HEX_WHITE"%s\n"COLOR_HEX_BLUE"Preis: "COLOR_HEX_WHITE"$%d\n"COLOR_HEX_BLUE"Tankverbrauch: "COLOR_HEX_WHITE"%.2fL/KM\n", DialogString, fVehicleShop[i][fVName], fVehicleShop[i][fVPreis], VehicleData[fVehicleShop[i][fVmodelid]-400][vehTankVerbrauch]);
format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Tankgröße: "COLOR_HEX_WHITE"%.2fL\n\nWenn du dieses Fahrzeug kaufen möchtest, klicke auf den entsprechenden Button.\n", DialogString, VehicleData[fVehicleShop[i][fVmodelid]-400][vehMaxTank]);
strcat(DialogString, COLOR_HEX_WHITE"Das Geld wird von deiner Hand abgehoben, und das Fahrzeug gehört dann automatisch zur Fraktion an!\nDieses lässt sich nicht auf die privaten Fahrzeuge übertragen, und lässt sich nur durch die Hälfte des Kaufpreises verkaufen!\nÜberleg gut, ob es dir Wert ist!");
ShowPlayerDialog(playerid, DIALOG_BUYFRAKVEHICLE, DIALOG_STYLE_MSGBOX, "Fraktions Fahrzeug - Kaufen", DialogString, "Kaufen", "Abbrechen");
return 1;
}
}
else
{
FreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
UnfreezePlayer(playerid);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Diese Fahrzeuge können nur Gangs und Mafien kaufen.");
}
}
}
So geht es doch auch, oder? -
Diese hier
else if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11))Nein TVPikachu, so wäre die Funktion die ich erlangen will nicht gegeben.
-
So dürfte es passen:
for(new i=0;i<sizeof(fVehicleShop);i++)
{
if(vehicleid == fShopVehicles[i])
{
if(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 0 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5 || Spieler[playerid][pFraktion] == 9 || Spieler[playerid][pFraktion] == 10 || Spieler[playerid][pFraktion] == 11)
{
if(Spieler[playerid][pRank] == RANG_LEADER)
{
new Float:Pos[3];
GetVehicleModelInfo(fVehicleShop[i][fVmodelid], VEHICLE_MODEL_INFO_SIZE, Pos[0], Pos[1], Pos[2]);
InterpolateCameraPos(playerid,fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
InterpolateCameraLookAt(playerid,fVehicleShop[i][fVposX]+Pos[0],fVehicleShop[i][fVposY]-Pos[1],fVehicleShop[i][fVposZ],fVehicleShop[i][fVposX],fVehicleShop[i][fVposY],fVehicleShop[i][fVposZ],2500,CAMERA_MOVE);
FreezePlayer(playerid);
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString), COLOR_HEX_BLUE"Wang Cars - Fraktionsfahrzeuge\n\n");
format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Fahrzeug: "COLOR_HEX_WHITE"%s\n"COLOR_HEX_BLUE"Preis: "COLOR_HEX_WHITE"$%d\n"COLOR_HEX_BLUE"Tankverbrauch: "COLOR_HEX_WHITE"%.2fL/KM\n", DialogString, fVehicleShop[i][fVName], fVehicleShop[i][fVPreis], VehicleData[fVehicleShop[i][fVmodelid]-400][vehTankVerbrauch]);
format(DialogString, sizeof(DialogString), "%s"COLOR_HEX_BLUE"Tankgröße: "COLOR_HEX_WHITE"%.2fL\n\nWenn du dieses Fahrzeug kaufen möchtest, klicke auf den entsprechenden Button.\n", DialogString, VehicleData[fVehicleShop[i][fVmodelid]-400][vehMaxTank]);
strcat(DialogString, COLOR_HEX_WHITE"Das Geld wird von deiner Hand abgehoben, und das Fahrzeug gehört dann automatisch zur Fraktion an!\nDieses lässt sich nicht auf die privaten Fahrzeuge übertragen, und lässt sich nur durch die Hälfte des Kaufpreises verkaufen!\nÜberleg gut, ob es dir Wert ist!");
ShowPlayerDialog(playerid, DIALOG_BUYFRAKVEHICLE, DIALOG_STYLE_MSGBOX, "Fraktions Fahrzeug - Kaufen", DialogString, "Kaufen", "Abbrechen");
return 1;
}
}
else
{
FreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
UnfreezePlayer(playerid);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Diese Fahrzeuge können nur Gangs und Mafien kaufen.");
}
}
}
(Im Code von TVPikachu war noch ein Klammerfehler)Du musst eben bedenken, dass der Dialog nur angezeigt wird, wenn der Spieler pRank == RANG_LEADER hat. Hat er das nicht, ist aber trotzdem in einer Gang, dann kommt einfach gar nichts.
Wenn das so gewollt ist passt es.Teste es mal.
Wenn es nicht so ist wie du willst, wie soll die Funktion denn sein, die du erlangen willst? -
Die definierten Fraktionen oben, sprich 1.. 0.. 3.. und so weiter sollen die Fahrzeuge nicht kaufen können.
So wollte ich das ganze haben.

