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?
Beiträge von Uppermost
-
-
-
Wie wärs mit deinem Tanksystem? Ohne Codes/Errors können wir nichts machen.
-
Werd mir mal den Befehl angucken, danke
-
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 -
Teste es hier:
http://www.systemrequirementslab.com/cyri/intro.aspx
Whoa was für ne geile Seite muss ich mir merkenDankeschön
-
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 -
Danke jetzt gehts
-
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? -
Relativ den gleichen hatte ich auch. Soweit ich weiß reicht ne Systemwiederherstellung doch an deiner Stelle würde ich den PC platt machen. Ist die 'Nummer Sicher'
-
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.