[Hilfe] Handy "System" Spinnt!

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 :D
    Mein Handy System Spinn!
    Also, Wenn ich diesen Command Eingebe bekommt der Angerufene KEINE nachricht aber wenn er /p macht, nimmt er den Anruf an & Alles Klappt.
    Und wenn Jemand eine SMS Senden Will, Kommt auch Nichts, und Er Bekommt auch keine SMS!


    Call Command :

    Spoiler anzeigen
    ocmd:call(playerid, params[])
    {
    if(Spieler[playerid][HandyGeld] < 10)return SendClientMessage(playerid, ROT, "Dein Handy-Guthaben ist zu niedrig um einen Anruf zu tätigen.");
    new pPhone,pID, string[128];
    if(CurrentPhone[playerid] != 999)return SendClientMessage(playerid, ROT, "Du bist bereits am Telefonieren.");
    if(sscanf(params, "i", pPhone))return SendClientMessage(playerid, BLAU, "FEHLER: /call [Nummer]");
    if(pPhone == Spieler[playerid][Nummer])return SendClientMessage(playerid, ROT, "Besetzt ...");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][Nummer] == pPhone && pPhone != 0)
    {
    pID = i;
    CurrentPhone[playerid] = pID;
    if(IsPlayerConnected(pID))
    {
    if(pID != INVALID_PLAYER_ID)
    {
    if(Tog[CurrentPhone[pID]][PhoneTog] == 1)return SendClientMessage(playerid, ROT, "Der Spieler hat das Handy ausgeschaltet.");
    if(CurrentPhone[pID] == 999)
    {
    format(string, sizeof(string), "Dein Handy klingelt. (/(P)ickup) Anrufer: %s", SpielerName(playerid));
    SendClientMessage(pID, COLOR_YELLOW, string);
    format(string, sizeof(string), "* %s's Handy klingelt.", SpielerName(pID));
    ProxDetector(30.0, i, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Das Handy ist Besetzt.");
    return 1;
    }
    }
    }
    }
    }
    }
    return 1;
    }

    SMS Command :
    Spoiler anzeigen

    ocmd:sms(playerid, params[])
    {
    if(Spieler[playerid][HandyGeld] < 10)return SendClientMessage(playerid, ROT, "Dein Handy-Guthaben ist zu niedrig um eine SMS abzuschicken.");
    new pPhone, pID, string[128], text;
    if(sscanf(params, "is", pPhone, text))return SendClientMessage(playerid, BLAU, "FEHLER: /sms [Handynummer] [Nachricht]");
    if(pPhone == Spieler[playerid][Nummer])return SendClientMessage(playerid, ROT, "Du kannst dir selbst keine SMS schicken.");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][Nummer] == pPhone && pPhone != 0)
    {
    pID = i;
    if(IsPlayerConnected(pID))
    {
    if(pID != INVALID_PLAYER_ID)
    {
    if(Tog[CurrentPhone[pID]][PhoneTog] == 1)return SendClientMessage(playerid, ROT, "Der Spieler hat das Handy ausgeschaltet.");
    format(string, sizeof(string), "SMS: %s, Absender: %s (%d)", text, SpielerName(playerid), Spieler[playerid][Nummer]);
    SendClientMessage(pID, COLOR_YELLOW, string);
    format(string, sizeof(string), "SMS: %s, Gesendet an: %s (%d)", text, SpielerName(pID), Spieler[pID][Nummer]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, "Nachricht abgesendet.");
    GameTextForPlayer(playerid, "~r~$-10", 5000, 1);
    Spieler[playerid][HandyGeld] -= 00;
    return 1;
    }
    }
    }
    }
    }
    return 1;
    }


    Testen auf dem Server :


    LG Crocky



    EDIT :
    Danke an Alle die Geholfen haben :S
    Geht alles : Fail war das Togsystem :D


    Command Geht nun :
    ocmd:sms(playerid, params[])
    {
    if(Spieler[playerid][HandyGeld] < 10)return SendClientMessage(playerid, ROT, "Dein Handy-Guthaben ist zu niedrig um eine SMS abzuschicken.");
    new pPhone, pID, string[128], text;
    if(sscanf(params, "is", pPhone, text))return SendClientMessage(playerid, BLAU, "FEHLER: /sms [Handynummer] [Nachricht]");
    if(pPhone == Spieler[playerid][Nummer])return SendClientMessage(playerid, ROT, "Du kannst dir selbst keine SMS schicken.");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][Nummer] == pPhone && pPhone != 0)
    {
    pID = i;
    if(IsPlayerConnected(pID))
    {
    if(pID != INVALID_PLAYER_ID)
    {
    format(string, sizeof(string), "SMS: %s, Absender: %s (%d)", text, SpielerName(playerid), Spieler[playerid][Nummer]);
    SendClientMessage(pID, COLOR_YELLOW, string);
    format(string, sizeof(string), "SMS: %s, Gesendet an: %s (%d)", text, SpielerName(pID), Spieler[pID][Nummer]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, "Nachricht abgesendet.");
    GameTextForPlayer(playerid, "~r~$-10", 5000, 1);
    Spieler[playerid][HandyGeld] -= 00;
    return 1;
    }
    }
    }
    }
    }
    return 1;
    }
    ocmd:call(playerid, params[])
    {
    if(Spieler[playerid][HandyGeld] < 10)return SendClientMessage(playerid, ROT, "Dein Handy-Guthaben ist zu niedrig um einen Anruf zu tätigen.");
    print("1");
    new pPhone,pID, string[128];
    if(CurrentPhone[playerid] != 999)return SendClientMessage(playerid, ROT, "Du bist bereits am Telefonieren.");
    print("2");
    if(sscanf(params, "i", pPhone))return SendClientMessage(playerid, BLAU, "FEHLER: /call [Nummer]");
    print("3");
    if(pPhone == Spieler[playerid][Nummer])return SendClientMessage(playerid, ROT, "Besetzt ...");
    print("4");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    print("5");
    if(Spieler[i][Nummer] == pPhone && pPhone != 0)
    {
    print("6");
    pID = i;
    CurrentPhone[playerid] = pID;
    if(IsPlayerConnected(pID))
    {
    print("7");
    if(pID != INVALID_PLAYER_ID)
    {
    print("8");
    if(CurrentPhone[pID] == 999)
    {
    print("");
    format(string, sizeof(string), "Dein Handy klingelt. (/(P)ickup) Anrufer: %s", SpielerName(playerid));
    SendClientMessage(pID, COLOR_YELLOW, string);
    format(string, sizeof(string), "* %s's Handy klingelt.", SpielerName(pID));
    ProxDetector(30.0, i, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Das Handy ist Besetzt.");
    return 1;
    }
    }
    }
    }
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von Crocky ()

  • Probier es mal so aus:
    oben in dein Script ersetzt du deine jetzige CurrentPhone variable durch diese:

    new bool: CurrentPhone[MAX_PLAYERS];

    Wenn der Spieler an ein Telefon ran geht setzt du die variable "CurrentPhone" von dem anrufer und dem angerufenen auf true.. sprich so

    CurrentPhone[/*...*/] = true;

    Dein Code müsste dann so aussehen.. einfach mal ausprobieren

    ocmd:call(playerid, params[])
    {
    if(Spieler[playerid][HandyGeld] < 10)return SendClientMessage(playerid, ROT, "Dein Handy-Guthaben ist zu niedrig um einen Anruf zu tätigen.");
    new pPhone, string[128];
    if(CurrentPhone[playerid] != 999)return SendClientMessage(playerid, ROT, "Du bist bereits am Telefonieren.");
    if(sscanf(params, "i", pPhone))return SendClientMessage(playerid, BLAU, "FEHLER: /call [Nummer]");
    if(pPhone == Spieler[playerid][Nummer])return SendClientMessage(playerid, ROT, "Besetzt ...");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][Nummer] == pPhone && pPhone != 0)
    {
    if(Tog[i][PhoneTog] == 1)return SendClientMessage(playerid, ROT, "Der Spieler hat das Handy ausgeschaltet.");
    if(CurrentPhone[i] == false)
    {
    format(string, sizeof(string), "Dein Handy klingelt. (/(P)ickup) Anrufer: %s", SpielerName(playerid));
    SendClientMessage(i, COLOR_YELLOW, string);
    format(string, sizeof(string), "* %s's Handy klingelt.", SpielerName(i));
    ProxDetector(30.0, i, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Das Handy ist Besetzt.");
    return 1;
    }
    }


    }
    }
    return 1;
    }

  • Danke, Geht schon ;;D
    Das Togsystem wollte ich eh Rausnehmen, (war der Fehler)
    So Siehts aus und es Geht ohne Probleme ;)
    ocmd:sms(playerid, params[])
    {
    if(Spieler[playerid][HandyGeld] < 10)return SendClientMessage(playerid, ROT, "Dein Handy-Guthaben ist zu niedrig um eine SMS abzuschicken.");
    new pPhone, pID, string[128], text;
    if(sscanf(params, "is", pPhone, text))return SendClientMessage(playerid, BLAU, "FEHLER: /sms [Handynummer] [Nachricht]");
    if(pPhone == Spieler[playerid][Nummer])return SendClientMessage(playerid, ROT, "Du kannst dir selbst keine SMS schicken.");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][Nummer] == pPhone && pPhone != 0)
    {
    pID = i;
    if(IsPlayerConnected(pID))
    {
    if(pID != INVALID_PLAYER_ID)
    {
    format(string, sizeof(string), "SMS: %s, Absender: %s (%d)", text, SpielerName(playerid), Spieler[playerid][Nummer]);
    SendClientMessage(pID, COLOR_YELLOW, string);
    format(string, sizeof(string), "SMS: %s, Gesendet an: %s (%d)", text, SpielerName(pID), Spieler[pID][Nummer]);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_YELLOW, "Nachricht abgesendet.");
    GameTextForPlayer(playerid, "~r~$-10", 5000, 1);
    Spieler[playerid][HandyGeld] -= 00;
    return 1;
    }
    }
    }
    }
    }
    return 1;
    }
    ocmd:call(playerid, params[])
    {
    if(Spieler[playerid][HandyGeld] < 10)return SendClientMessage(playerid, ROT, "Dein Handy-Guthaben ist zu niedrig um einen Anruf zu tätigen.");
    print("1");
    new pPhone,pID, string[128];
    if(CurrentPhone[playerid] != 999)return SendClientMessage(playerid, ROT, "Du bist bereits am Telefonieren.");
    print("2");
    if(sscanf(params, "i", pPhone))return SendClientMessage(playerid, BLAU, "FEHLER: /call [Nummer]");
    print("3");
    if(pPhone == Spieler[playerid][Nummer])return SendClientMessage(playerid, ROT, "Besetzt ...");
    print("4");
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    print("5");
    if(Spieler[i][Nummer] == pPhone && pPhone != 0)
    {
    print("6");
    pID = i;
    CurrentPhone[playerid] = pID;
    if(IsPlayerConnected(pID))
    {
    print("7");
    if(pID != INVALID_PLAYER_ID)
    {
    print("8");
    if(CurrentPhone[pID] == 999)
    {
    print("");
    format(string, sizeof(string), "Dein Handy klingelt. (/(P)ickup) Anrufer: %s", SpielerName(playerid));
    SendClientMessage(pID, COLOR_YELLOW, string);
    format(string, sizeof(string), "* %s's Handy klingelt.", SpielerName(pID));
    ProxDetector(30.0, i, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, ROT, "Das Handy ist Besetzt.");
    return 1;
    }
    }
    }
    }
    }
    }
    return 1;
    }