Commands die "ineinandergreifen"?

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
  • So, ich stehe nun vor einem wichtigen Problem. Ich möchte, dass Befehle miteinander "arbeiten".
    Es geht um /accept Befehle, welche jedoch selfmade gescriptet sind.
    Zur Zeit sieht es noch so aus:


    COMMAND:repair(playerid,params[])
    {
    new pID, Float:x,Float:y,Float:z;
    if(sscanf(params, "u",pID))return SendClientMessage(playerid,0xC8C8C8FF,"/repair [ID/Name]");
    if (!IsPlayerConnected(pID))return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler ist nicht online!");
    if (pID == playerid)return SendClientMessage(playerid,0xC8C8C8FF,"Du kannst dir nicht selber eine Reparatur anbieten!");
    if(pInfo[playerid][Job] != 3) return SendClientMessage(playerid, 0xC8C8C8FF, "Du bist kein Mechaniker!");
    GetPlayerPos(playerid,x,y,z);
    {
    if(!IsPlayerInRangeOfPoint(pID,3.0,x,y,z))return SendClientMessage(playerid, 0xC8C8C8FF, "Dieser Spieler ist nicht in deiner Nähe!");
    {
    new str[128] ,str2[128];
    format(str,sizeof(str),"%s hat dir eine Reperatur angeboten, /acceptrepair zum annehmen!",SpielerName[playerid]);
    format(str2,sizeof(str2),"Du hast %s eine Reperatur angeboten!",SpielerName[pID]);
    SendClientMessage(pID,0x00A8FFFF,str);
    SendClientMessage(playerid,0x00A8FFFF,str2);
    SetPVarInt(pID,"repair", 1);
    }
    return 1;
    }
    }
    COMMAND:acceptrepair(playerid,params[])
    {
    if(GetPVarInt(playerid, "repair") == 0) return SendClientMessage(playerid,0xC8C8C8FF,"Dir wurde keine Reperatur angeboten!");
    else
    {
    TogglePlayerControllable(playerid,0);
    SetTimerEx("repairunfreeze", 4000,0,"d",playerid);
    }
    return 1;
    }
    public repairunfreeze(playerid)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    SetVehicleHealth(vehicleid, 1000.0);
    RepairVehicle(vehicleid);
    SetPVarInt(playerid,"repair", 0);
    TogglePlayerControllable(playerid,1);
    GameTextForPlayer(playerid,"~g~Motor und Blechschaden~w~ repariert",2500,1);
    return 1;
    }


    Ziemlich undynamisch, wie ich finde. Es geht darum, dass man beim /accept-Befehl z.B. eine bestimmte Summe
    die im /repair Befehl festgelegt wurde abzieht. Oder das beim /accept-Befehl
    erscheint, dass der Spieler (%s) deine Reperatur angenommen hat. Also mit Namen, der vom /repair-Befehl aus kommen muss.


    Wäre nett, wenn mir jmd. ein wenig auf die Sprünge helfen könnte.. :S


    mfG
    Dixon