Guten Tag,
Könnte mir mal jemand sagen wie /accept [invite,sex...] | /cancel [invite,sex...] Befehle gehen? Mich würde es echt interessieren (in OCMD bitte!!!).
Das heißt nicht, dass ihr die Arbeit machen sollt, sondern mir nur zeigen worin der Haken liegt (wie es geht).
LG,
badnat
Frage (/accept, /cancel...)
- badnat
- Geschlossen
- Erledigt
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
-
-
Hmm, also ich hab so 'nen Befehl noch nicht gemacht, aber ich würde den höchstwahrscheinlich mit Variablen so in der Art machen:
Also z.B. erstmal ne Variable:
new bool:command[MAX_PLAYERS];
dcmd_command(playerid,params[])
{
new pID;
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,Farbe,"Benutze /command ID");command[pID] = true;
return 1;
}dcmd_accept(playerid,params[])
{
whatever[56];
if(sscanf(params,"s",whatever)) return SendClientMessage(playerid,Farbe,"Benutze /accept Whatever");
if(!strcmp(whatever, "command", true, 4) && command[playerid] != true) return SendClientMessage(playerid,FArbe,"Du wurdest nicht gecommandet!"); // oder so :Pif (!strcmp(whatever, "command", true, 4)) { SetPlayerHealth(playerid, 100); }
return 1;
}So, jetzt kann einer /command ID machen, und ID kann dann /accept Command machen und fertig is die Laube
Sollte eig. funktionieren, is jetzt einfach mal so ausm Kopf.
LG
//Edit: Fehler behoben
-
Ok danke!
Wozu ist item? -
Oh, sorry, hab nen Teil davon aus meinem /take command rausgenommen q: ich editier es schnell, item sollte da eig whatever sein^^
-
Ich kapiers irgendwie nicht..
Kannst du es mal in OCMD machen? Ganz kurz und schlicht. -
dcmd und ocmd, der Unterschied ist eig. minimal
Naja, ist ja jetzt mal egal.
Also, die Variable command
new bool:command[MAX_PLAYERS];
Brauchst du um zu prüfen ob der Spieler dann später z.B. invited wurde (geht natürlich auch mit new:bool WurdeInvitet[MAX_PLAYERS]; etc).Und jetzt z.B. ein Befehl zum Inviten:
ocmd:invite(playerid,params[])
{
new pid; // später die ID die bei /invite angegeben wird
if(sscanf(params, "i",pid)) return SendClientMessage(playerid,Farbe,"Invite (ID)");command[pid] = true; // also, jetzt wurde die Variable "Command" bei pid (die ID) auf "true" gesetzt
return 1;
}Und bei /accept command überprüfst du anhand einer if-Abfrage ob command beim Spieler auf wahr ist (true).
Ganz einfachLG
-
Warte ich verstehs noch immer nicht :O kp was mit mir los ist^^
Die Variable COMMAND ist wofür? -
Die Variable "Command" ist später z.B dafür nötig um zu checken, ob der Spieler gerade invited wurde wobei die Variable auf true gesetzt wird. Damit der Spieler zB nicht einfach /accept invite machen kann ohne das ihn jemand eingeladen hat
du kannst in der Variable command (dafür darf sie kein boolean sein) auch die Fraktionsid speichern. Beispiel:
SInfo[playerid] [Fraktion] = command[playerid];
LG
-
breadfish.de
Hat das Thema geschlossen.