brauche hilfe bei einem /accept befehl

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
  • hallo,


    habe mir überlegt ein illegales Straßenrennen einzubauen. User können mit /streetrace andere herausfordern. Diese können dann mit /accept race annehmen.


    nun zum Problem : ich schaffe es nicht den /accept race befehl zu erstellen. Bis jetzt habe ich folgendes gescriptet:





    kann mir da jemand weiterhelfen ? ^^

  • Klar, ich kann dir weiterhelfen!
    Speicher die jeweiligen SpielerIDs in PVars, und lese die dann wieder aus.
    Ich habe dir mal den Befehl "entbuggt", da ich dort Fehler feststellen musste!


    if(!strcmp(cmd, "/streetrace", true))
    {
    if(!IsPlayerConnected(playerid))return 1;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))return SendClientMessage(playerid,COLOR_WHITE,"Benutze: /streetrace [playerid] [Gewinnbetrag]");
    new playa,betrag;
    playa = ReturnUser(tmp),tmp = strtok(cmdtext, idx),betrag = strval(tmp);
    if(!IsPlayerConnected(playa))return 1;
    if(!IsPlayerInFrac(playerid))return SendClientMessage(playerid,COLOR_WHITE,"Du bist nicht in der Fast and the Furios Fraktion!");
    if(playa == INVALID_PLAYER_ID)return 1;
    if(betrag < 1 || betrag > 99999)return SendClientMessage(playerid, COLOR_GREY, "Der Betrag darf nicht unter 1 oder über 99999 liegen!");
    SendClientMessage(playa,COLOR_WHITE,"Du wurdest zu einem Illegalen Straßenrennen herrausgefordert! nimm mit /accept race an!");
    SetPVarInt(playa, "accept.race", 1),SetPVarInt(playa,"accept.race.id",playerid);
    return 1;
    }


    Zeig uns mal deinen /accept Befehl!

  • Setz mit einem PVar/Variable auf 1 das der andere Spieler herrausgefordet wurde.
    bsp SetPvarInt(playa,"accept_Race",1);
    Dann soll er eine nachricht kriegen.
    Nun zum accept befehl frag dort ab ob "accept_Race" = 1 ist.
    Wenn er akzeptiert hat setzt du den PVar/Variable wieder auf 0.

  • mit dem /accept Befehl habe ich mich noch nicht viel beschäftigt :/ eigendlich überhaupt nicht:


    PHP
    if(strcmp(cmd, "/accept race", true) == 0)
     {
      SendClientMessage(playerid,COLOR_WHITE,"Du hast angenommen! Das rennen beginnt in wenigen sekunden!"
     }


    ich versuche es mal mit den tipps von euch.

  • xXGamer12Xx:
    Macht so nicht viel sinn, ich schreib dir diesen Befehl mal anhand OCMD!


    ocmd:accept(playerid,params[])
    {
    if(!IsPlayerConnected(playerid))return 1;
    new usage;
    if(sscanf(params,"s",usage))return SendClientMessage(playerid,-1,"/accept [race]");
    if(!strcmp(usage,"race",true))
    {
    if(GetPVarInt(playerid,"accept.race")==0)return 1;
    new id=GetPVarInt(playerid,"accept.race.id");
    if(!IsPlayerConnected(id))
    {
    SetPVarInt(playerid,"accept.race",0),SetPVarInt(playerid,"accept.race.id",INVALID_PLAYER_ID);
    return SendClientMessage(playerid,-1,"Der Spieler ist nicht mehr online!");
    }
    SendClientMessage(playerid,-1,"Du hast die Anfrage angenommen.");
    SendClientMessage(id,-1,"Der Spieler hat die Anfrage angenommen.");
    }
    return 1;
    }


    Macht aber nur sinn mit dem Befehl von mir!