Dann schreibe es so rum:
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)
{
FreezePlayer(playerid);
RemovePlayerFromVehicle(playerid);
UnfreezePlayer(playerid);
SendClientMessage(playerid,COLOR_LIGHTBLUE,"** Diese Fahrzeuge können nur Gangs und Mafien kaufen.");
}
else
{
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;
}
}
}
}
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
Stichwort: Subquery
Wenn man Eintrage aus verschiedenen Tabellen laden will, so benutzt man einen Join
Bin aber mitd er genauen Schreibweise noch nicht 100% vertraut und kann somit auch kein Lösungsansatz schreiben -
Wenn man Eintrage aus verschiedenen Tabellen
Es ist aber die selbe Tabelle. -
Ich krieg die doofen Errors bei dem Simplen befehl nicht raus

wenn ich das else bei if weg lasse geht es, aber wenn ich dann als Cop oder Medic oder Fahrlehrer Duty gehe bekomme ich immer 3 Nachrichten: Du bist als Cop Duty, Du bist als Medic Duty, Du bist als Fahrlehrer Duty

Spoiler anzeigen ocmd:duty(playerid,params[])
{
if(SpielerInfo[playerid][pTeam] == 1 || SpielerInfo[playerid][pTeam] == 2 || SpielerInfo[playerid][pTeam] == 3 || SpielerInfo[playerid][pTeam] == 4 || SpielerInfo[playerid][pTeam] == 5 || SpielerInfo[playerid][pTeam] == 6) {
if(SpielerInfo[playerid][pDuty] != 1) {//Hier
SpielerInfo[playerid][pDuty] = 1;
SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Cop"); }
else {
SpielerInfo[playerid][pDuty] = 0;
SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Cop");
}
else if(SpielerInfo[playerid][pDuty] != 2) {//hier
SpielerInfo[playerid][pDuty] = 2;
SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Medic"); }
else {
SpielerInfo[playerid][pDuty] = 0;
SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Medic");
}
else if(SpielerInfo[playerid][pDuty] != 3) {//hier
SpielerInfo[playerid][pDuty] = 3;
SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Fahrlehrer"); }
else {
SpielerInfo[playerid][pDuty] = 0;
SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Fahrlehrer"); }
}
return 1;
}C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1571) : error 029: invalid expression, assumed zero
C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1571) : warning 215: expression has no effect
C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1571) : error 001: expected token: ";", but found "if"
C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1578) : error 029: invalid expression, assumed zero
C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1578) : warning 215: expression has no effect
C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1578) : error 001: expected token: ";", but found "if"
C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(2228) : warning 203: symbol is never used: "SaveVehicles"
C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(2228) : warning 203: symbol is never used: "adacoffen"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase4 Errors.
-
@TVPikachu: Bitte schön
Hab übrigend noch die Fehlermeldung reingetahenPHP
Alles anzeigenocmd:duty(playerid,params[]) { if(SpielerInfo[playerid][pTeam] == 1) { if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0, SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Cop"); SpielerInfo[playerid][pDuty] = 1; SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Cop"); } else if(SpielerInfo[playerid][pTeam] == 2) { if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0, SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Medic"); SpielerInfo[playerid][pDuty] = 2; SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Medic"); } else if(SpielerInfo[playerid][pTeam] == 3) { if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0, SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Fahrlehrer"); SpielerInfo[playerid][pDuty] = 3; } else { SendClientMessage(playerid, Color_Red,"Du kannst diesen Befehl nicht nutzen"); } return 1; } -
Ah, vielen dank

-
Obwohl ich im richtigen Fahrzeug sitze, sagt er mir ich sitze im falschen.
if(GetVehicleModel(GetPlayerVehicleID(playerid) != 488 || GetPlayerVehicleID(playerid) != 582))return -
zu &&Dann geht's.
-
Er gibt mir trotzdem die Nachricht aus..
if(GetVehicleModel(GetPlayerVehicleID(playerid) != 488 && GetPlayerVehicleID(playerid) != 582))return SendClientMessage(playerid,COLOR_GREY,"** Du musst in einem News Van oder News Chopper sitzen."); -
Ja, klar. Laut der Nachricht soll das beides mal das Modell sein.
Dann so:
if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 488 && GetVehicleModel(GetPlayerVehicleID(playerid)) != 582)return SendClientMessage(playerid,COLOR_GREY,"** Du musst in einem News Van oder News Chopper sitzen."); -
Kann man per Timer Explosionen erstellen mit einem eigenen Public?
-
Ja.

-
Kann man per Timer Explosionen erstellen mit einem eigenen Public?
Natürlich
//z.B. unter OnPlayerSpawn
SetTimerEx("explode",1000,0,"i",playerid);forward explode(playerid);
public explode(playerid) {
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
return CreateExplosion(x, y, z, 12, 10.0); //würde den Spieler zum explodieren bringen xD
}mfg.

-
Wie macht man das wenn man ein Tresor hat und da /rob eingibt und da dynamit kommt weiß ich CreateDynamicObject or CreateObject
Aber wie mach ich das das es explodierte auch mit CreateExplosion ? Und fliegt die Tür das raus oder muss ich das object löschen ? Und aufm Boden neu erstellen ? -
Wenn du den Streamer verwendest am besten CreateDynamicObject.
CreateExplosion machst du per Timer einfach an der Position an der das Dynamit erstellt wird (wird ja immer die gleiche Position sein).
Also per Timer:
SetTimer("ExplodeDoor", 10000, false);forward ExplodeDoor();
public ExplodeDoor()
{
//Eben entsprechend ausfüllen, wie du es haben willst:
return CreateExplosion(xKoordinate, yKoordinate, zKoordinate, explosionsID, radius);
}Die Türe fliegt normalerweise nicht weg. Lösche die Türe und erstelle sie am Boden wieder, oder setze Sie mit MoveDynamicObject dort hin.
-
Warum geht das Tor bitte nicht auf? Die Server Log printet richtig.
CMD:auf(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 244.11, 72.45, 1002.00))
{
if(Spieler[playerid][pFraktion] != 1)return
MoveDynamicObject(LSPDObj[1], 247.5598, 72.4479, 1002.0016, 3);
SetTimer("LSPDTor2",5000,0);
printf("Tor 2-2");
}
return 1;
}public LSPDTor2()
{
MoveDynamicObject(LSPDObj[1], 244.11, 72.45, 1002.00, 3);
printf("Tor 2");
return 1;
}Gruß,
Cheevy -
arum geht das Tor bitte nicht auf?
Achte auf die returns!Schreib es so:
CMD:auf(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 244.11, 72.45, 1002.00))
{
if(Spieler[playerid][pFraktion] != 1)return SendClientMessage(playerid,-1,"Sie dürfen das Tor nicht öffnen!");
MoveDynamicObject(LSPDObj[1], 247.5598, 72.4479, 1002.0016, 3);
SetTimer("LSPDTor2",5000,0);
printf("Tor 2-2");
}
return 1;
}mfg.

-
Alles anzeigen
Natürlich
//z.B. unter OnPlayerSpawn
SetTimerEx("explode",1000,0,"i",playerid);forward explode(playerid);
public explode(playerid) {
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
return CreateExplosion(x, y, z, 12, 10.0); //würde den Spieler zum explodieren bringen xD
}mfg.

Ich will ja net den Spieler Explodieren lassen
, sondern sowas wie in einem Apokalypsen Film, da wo andauernd etwas hoch geht, und das will ich in samp realisieren.
Also das ein Paar Explosionen automatisch Hochgehen, ohne das der Spieler betroffen ist.
-
Also das ein Paar Explosionen automatisch Hochgehen, ohne das der Spieler betroffen ist
Dann mach einfach sowas://z.B. unter OnPlayerSpawn
SetTimerEx("explode",1000,0,"i",playerid);forward explode(playerid);
public explode(playerid) {
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
return CreateExplosion(x+random(75)+25, y+random(75)+25, z, 12, 10.0); //würde den Spieler zum explodieren bringen xD
}Dann finde zufällig um den Spieler herum Explosionen statt

-
Alles anzeigen
Dann mach einfach sowas://z.B. unter OnPlayerSpawn
SetTimerEx("explode",1000,0,"i",playerid);forward explode(playerid);
public explode(playerid) {
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
return CreateExplosion(x+random(75)+25, y+random(75)+25, z, 12, 10.0); //würde den Spieler zum explodieren bringen xD
}Dann finde zufällig um den Spieler herum Explosionen statt

Also wenn der Spieler irgendwo ist, findet in der Nähe eine Explosion statt?
Wenn Ja: Sowas hab ich gebraucht.
Děkuju
Spoiler anzeigen (Danke) -
