Beiträge von Uppermost

    ocmd:booltest(playerid,params[])
    {
    new bool:test;
    if(test==false)
    {
    SendClientMessage(playerid,Neongruen,"Bool ist False!");
    test = true;
    }
    if(test==true)
    {
    SendClientMessage(playerid,Neongruen,"Bool ist True!");
    test = false;
    }
    return 1;
    }
    Warum werden beide SCM's gleichzeitig gesendet?

    Zitat von Crazykiller

    Ist das Möglich, Das wen der Fahrer in ein Bike / Auto steigt keine MP5 bekommt?


    Ich verstehe deine Frage nicht

    Hab mal kurz nen Wetter Befehl, nur ein kurzer Versuch. Wenn ich Wetterid 0 eingebe, wechselt das Wetter. Wenn ich Wetterid 1-unendlich eingebe, kommt die Meldung:
    ocmd:wetter(playerid,params[])
    {
    if(!IstSpielerEinAdmin(playerid,3000)) return 1;
    new wetterid = strval(params);
    if(sscanf(params,"u",wetterid)) return SendClientMessage(playerid,Gelb,"Benutzung: /wetter [WetterID]");
    if(wetterid <0) return SendClientMessage(playerid,Gelb,"Wetterid muss zwischen 0 und 45 sein!");
    if(wetterid >45) return SendClientMessage(playerid,Gelb,"Wetterid muss zwischen 0 und 45 sein!");
    SetWeather(wetterid);
    return 1;
    }
    Dasif(wetterid <0 ....);
    hab ich doppelt, wenn ich es so schreibe
    if(wetterid <0 || >45) ....
    kommen diese Errors:
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : error 001: expected token: ";", but found ")"
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : fatal error 107: too many error messages on one line
    Im wesentlichen geht es mir nur um den Fehler mit ||

    Bei PVars muss nichts definiert werden, du setzt einfach ihren Wert und sie werden zwischengespeichert. Genau das ist der Vorteil daran. Du machst also zB einen get Befehl - Wenn PVar auf 0 ist, bekommst du Sachen. Wenn PVar auf 1 ist, soll ne Meldung kommen. Das gleiche mit deliver. Nur dass da der Spieler Geld bekommt, wenn PVar auf 1 ist und ne Meldung wenn 0. 0 steht quasi für keine Mats, 1 steht für Mats.

    Probier mal so:
    if(!GetVehicleModel(GetPlayerVehicleID)!=537) return SCM

    Kann auch falsch sein, hab ich nur ausm Kopf. Ich glaube es war sogar GetVehicleModelID. Einfach mal ausprobieren

    Das machst du am besten mit PVar und dann fragst du ab ob sie auf 0 oder 1 ist. Wenn sie auf 0 ist, soll er etwas aufnehmen. Wenn sie auf 1 ist, soll er sie ablegen. Ungefähr so:
    if(strcmp("/get",cmdtext,true,10)==0)
    {
    if(GetPVarInt(playerid,"Zug")==0)
    {
    Aufnehmen... und whatever
    SetPVarInt(playerid,"Zug",1); //WICHTIG
    }
    if(GetPVarInt(playerid,"Zug")==1)
    {
    Ablegen und whatever...
    SetPVarInt(playerid,"Zug",0);
    }
    }
    So könnte das dann aussehen (nur Beispiel zu PVar)

    Die Klammer nach den 2 if-Abfragen muss weg. Und bei der 1. if-Abfrage musst du eine normale Klammer noch schließen.
    //E:
    if(strcmp("/zget",cmdtext,true,10)==0)
    {
    if(!IsPlayerInVehicle(playerid,537)) return SendClientMessage(playerid,Rot,"Du bist in keinen Zug!");
    if(!IsPlayerInRangeOfPoint(playerid,5,583.5240,1274.2026,12.2996)) return SendClientMessage(playerid,Rot,"Du bist nicht am Get!");
    SetPlayerCheckpoint(playerid,2125.4929,-1953.7500,14.2473,4);
    SendClientMessage(playerid,Grün,"Du hast die Produkte erfolgreich aufgenommen!");
    SendClientMessage(playerid,Grün,"Fahre nun zum Deliver, um die Produkte abzuliefern!");
    return 1;
    }

    Es gibt ein Tutorial dafür
    //E: [ SCRIPTING ] if and else
    //E2: if(strcmp("/start",cmdtext,true,10)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,Koordinatenscheiß,Radius))
    {
    return SendClientMessage(playerid,Rot,"Du bist am falschen Punkt.");
    }
    if(!IsPlayerInRangeOfPoint(playerid,Koordinatenscheiß,Radius))
    {
    return SendClientMessage(playerid,Rot,"Du bist am falschen punkt.");
    }
    Das eigentliche zueg, was dann passieren soll...
    }
    Oder noch kürzer:
    if(strcmp(/start,cmdtext,true,10)==0)
    {
    if(!IsPlayerInrange blabla) return SendClientMessage(playerid,Rot,"Blub");
    if(!erneutistplayerinrange(blabla)) return SendClientMessage(playerid,Rot,"Blub");
    Sache die passieren soll...
    }

    Ist jetzt nicht sonderlich schön, reicht aber zur Demonstrierung^^

    Hey,
    ich habe nen Sirenen Befehl erstellt der nur bei nem Bullet funktioniert. Der Befehl geht fast einwandfrei:
    ocmd:sirene(playerid,params[])
    {
    if(!IstSpielerEinAdmin(playerid,3000)) return 1;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Hellrot,"Du bist in keinem Fahrzeug!");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vehicleid)!= 541) return SendClientMessage(playerid,Hellblau,"Das Auto muss ein Bullet sein!");
    new sirene = CreateObject(19419, 0, 0, 0, 0, 0, 0);
    if(GetPVarInt(playerid,"Sirene")==0)
    {
    AttachObjectToVehicle(sirene, GetPlayerVehicleID(playerid), 0.009999, -0.019999, 0.644999, 0.000000, 0.000000, 0.000000);
    SendClientMessage(playerid, Hellblau, "Sirene angebracht!");
    SetPVarInt(playerid,"Sirene",1);
    return 1;
    }
    else
    {
    DestroyObject(sirene);
    SendClientMessage(playerid,Hellblau,"Sirene entfernt!");
    return 1;
    }
    }

    Die SendClientMessage 'Sirene entfernt' kommt zwar jedes zweite Mal, doch das Objekt wird nicht zerstört.
    Greetz

    Hey,
    ich habe nen Sirenen Befehl erstellt der nur bei nem Bullet funktioniert. Der Befehl geht fast einwandfrei:
    ocmd:sirene(playerid,params[])
    {
    if(!IstSpielerEinAdmin(playerid,3000)) return 1;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,Hellrot,"Du bist in keinem Fahrzeug!");
    new vehicleid = GetPlayerVehicleID(playerid);
    if(GetVehicleModel(vehicleid)!= 541) return SendClientMessage(playerid,Hellblau,"Das Auto muss ein Bullet sein!");
    new sirene = CreateObject(19419, 0, 0, 0, 0, 0, 0);
    if(GetPVarInt(playerid,"Sirene")==0)
    {
    AttachObjectToVehicle(sirene, GetPlayerVehicleID(playerid), 0.009999, -0.019999, 0.644999, 0.000000, 0.000000, 0.000000);
    SendClientMessage(playerid, Hellblau, "Sirene angebracht!");
    SetPVarInt(playerid,"Sirene",1);
    return 1;
    }
    else
    {
    DestroyObject(sirene);
    SendClientMessage(playerid,Hellblau,"Sirene entfernt!");
    return 1;
    }
    }

    Die SendClientMessage 'Sirene entfernt' kommt zwar jedes zweite Mal, doch das Objekt wird nicht zerstört.
    Greetz

    Hm geht immernoch nicht:
    if(GetVehicleModel(vehicleid)!=507 || GetVehicleModel(vehicleid)!=596 || GetVehicleModel(vehicleid)!=597) return SendClientMessage(playerid,Gelb,"Du musst in einem Polizeiwagen sein!");

    Habs jetzt so aber funktioniert immer noch nicht
    if(GetVehicleModel(vehicleid)!= 507 || 596 || 597) return SendClientMessage(playerid,Gelb,"Du musst in einem Polizeiwagen sein!");
    vehicleid ist oben mit GetPlayerVehicleID deklariert.

    Meinst du so?
    if(!IsPlayerInVehicle(playerid,507) || !IsPlayerInVehicle(playerid,596) || !IsPlayerInVehicle(playerid,597)) return SendClientMessage(playerid,Gelb,"Du musst in einem Polizeiwagen sein!");

    Hab hier mal einen Grab Befehl gemacht und frage auch zwischendurch ab ob der Spieler in einem Police Car sitzt.
    if(!IsPlayerInVehicle(playerid,507 || 596 || 597)) return SendClientMessage(playerid,Gelb,"Du musst in einem Polizeiwagen sein!");
    Der Code müsste so stimmen. Aber wenn ich eins von denen spawne funktioniert es nicht... Kann jemand helfen?

    Ganz einfach, du hast beim Timer 1 Minute eingestellt. Der Timer steht für Millisekunden, das heißt 1 Stunde wären nicht 60000 sondern 3600000 Millisekunden. Vorausgesetzt du willst den Payday jede Stunde.