Handysystem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Handysystem

    Guten Tag zusammen,
    Ich habe ein Problem mit dem Handysystem, das heißt wenn ich jemanden anrufe und er/sie annimmt sollte im Text

    PAWN-Quellcode

    1. format(string, sizeof(string), "%s sagt (Handy): %s", SpielerName(playerid), text);


    das auftauchen tut es aber nicht es taucht erst auf, wenn ich Auflege.

    PAWN-Quellcode

    1. ocmd:annehemen(playerid,params[])
    2. {
    3. if(IsPlayerConnected(playerid))
    4. {
    5. new string[128];
    6. if(sSpieler[playerid][Handys] == 0)return SendClientMessage(playerid, ROT, "Du hast kein Handy!");
    7. if(sSpieler[playerid][Akku] == 0)return SendClientMessage(playerid, ROT, "Dein Handy Akku ist leer!");
    8. if (GetPVarInt(playerid, "Cuffed") == 1)return SendClientMessage(playerid, ROT, "Du kannst dein Handy nicht benutzen, während du Handschellen an hast!");
    9. if(Aktiv[playerid] == true)
    10. {
    11. SendClientMessage(playerid, ROT, "Du telefonierst bereits.");
    12. return 1;
    13. }
    14. if(wirdangerufen[playerid] == -1)
    15. {
    16. SendClientMessage(playerid, ROT, "Du wurdest nicht angerufen.");
    17. return 1;
    18. }
    19. for(new i = 0; i < MAX_PLAYERS; i++)
    20. {
    21. if(wirdangerufen[playerid] >= 0)
    22. {
    23. if(i == Mobile[playerid])
    24. {
    25. Anderer[playerid] = wirdangerufen[playerid];
    26. Anderer[wirdangerufen[playerid]] = playerid;
    27. wirdangerufen[playerid] = 0;
    28. Mobile[i] = playerid;
    29. Aktiv[playerid] = true;
    30. Aktiv[i] = true;
    31. DeletePVar(i, "Anrufen");
    32. DeletePVar(playerid, "Anrufen");
    33. SendClientMessage(i,GELB, "Dein Anruf wurde angenommen, du kannst jetzt im Chat telefonieren. Tippe /auflegen um aufzulegen!");
    34. if(sSpieler[i][Vertrag] == 0)
    35. {
    36. sSpieler[i][Guthaben] -= 1;
    37. GameTextForPlayer(i, "~w~Guthaben ~r~-1", 3000, 1);
    38. }
    39. if(sSpieler[i][Vertrag] == 1)
    40. {
    41. SendClientMessage(playerid,GELB,"Da du einen Vertrag hast wird dir kein Guthaben abgezogen!");
    42. }
    43. new uhrname[20];
    44. if(sSpieler[playerid][Handys] == 5) { format(uhrname, sizeof(uhrname), "iPhone 4"); }
    45. else if(sSpieler[playerid][Handys] == 4) { format(uhrname, sizeof(uhrname), "iPhone 4S"); }
    46. else if(sSpieler[playerid][Handys] == 3) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S4"); }
    47. else if(sSpieler[playerid][Handys] == 2) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S3"); }
    48. else { format(uhrname,sizeof(uhrname), "iPhone 5"); }
    49. SetHandy(playerid);
    50. format(string, sizeof(string), "* %s geht an sein %s.", SpielerName(playerid), uhrname);
    51. ProxDetector(10.0, playerid, string, LILA,LILA,LILA,LILA,LILA);
    52. KillTimer(anruftimer[playerid]);
    53. return 1;
    54. }
    55. }
    56. }
    57. }
    58. return 1;
    59. }
    60. ocmd:auflegen(playerid,params[])
    61. {
    62. if(IsPlayerConnected(playerid))
    63. {
    64. new caller = Anderer[playerid];
    65. if(sSpieler[playerid][Handys] == 0)
    66. {
    67. SendClientMessage(playerid, ROT, "Du hast kein Handy!");
    68. return 1;
    69. }
    70. if(Aktiv[playerid] == true)
    71. {
    72. SendClientMessage(playerid,GELB, "Du hast das Telefonat beendet.");
    73. Anderer[playerid] = -1;
    74. wirdangerufen[playerid] = -1;
    75. Aktiv[playerid] = false;
    76. ClearHandy(playerid);
    77. Mobile[playerid] = 255;
    78. if(caller > 0)
    79. {
    80. Mobile[caller] = 255;
    81. Aktiv[caller] = false;
    82. Anderer[caller] = -1;
    83. SendClientMessage(caller,GELB, "Der Gesprächspartner hat das Telefonat beendet.");
    84. ClearHandy(caller);
    85. }
    86. return 1;
    87. }
    88. }
    89. else
    90. {
    91. SendClientMessage(playerid,ROT,"Du befindest dich in keinem Telefonat!");
    92. }
    93. return 1;
    94. }
    Alles anzeigen


    OnPlayerText

    PAWN-Quellcode

    1. if(Mobile[playerid] >= 255)
    2. {
    3. format(string, sizeof(string), "%s sagt (Handy): %s", SpielerName(playerid), text);
    4. ProxDetector(8.0, playerid, string,LILA,LILA,LILA,LILA,LILA);
    5. if(Mobile[Mobile[playerid]] == playerid && IsPlayerConnected(Mobile[playerid]))
    6. {
    7. SendClientMessage(Mobile[playerid],GELB,string);
    8. }
    9. else
    10. {
    11. SendClientMessage(playerid, ROT,"TüT - TüT - Tüt die Leitung ist tod!");
    12. Mobile[playerid] = 0;
    13. }
    14. return 0;
    15. }
    Alles anzeigen


    Das >= habe ich auch schon in != geändert aber dann schreibe ich die ganze Zeit im Handychat. :(

    Ich hoffe jemand kann mir Helfen. Danke im voraus und ich wünsche jeden einen schönen Tag noch.
  • PAWN-Quellcode

    1. if(Mobile[playerid] != 255)

    Ist richtig.

    Du musst allerdings folgendes zusätzlich ändern:

    PAWN-Quellcode

    1. Mobile[playerid] = 0;

    zu:

    PAWN-Quellcode

    1. Mobile[playerid] = 255;


    Und, ganz wichtig, bei OnPlayerConnect bzw. beim Login:

    PAWN-Quellcode

    1. Mobile[playerid] = 255;

    Sonst ist die Variable initial 0, daher schreibst du dann immer im Handychat.
  • @Jeffry Danke. Ich habe das jetzt so

    PAWN-Quellcode

    1. if(Mobile[playerid] != 255)
    2. {
    3. format(string, sizeof(string), "%s sagt (Handy): %s", SpielerName(playerid), text);
    4. ProxDetector(8.0, playerid, string,LILA,LILA,LILA,LILA,LILA);
    5. if(Mobile[Mobile[playerid]] == playerid && IsPlayerConnected(Mobile[playerid]))
    6. {
    7. SendClientMessage(Mobile[playerid],GELB,string);
    8. }
    9. else
    10. {
    11. SendClientMessage(playerid, ROT,"TüT - TüT - Tüt die Leitung ist tod!");
    12. Mobile[playerid] = 255;
    13. }
    14. return 0;
    15. }
    Alles anzeigen


    und bei OnPlayerConnect

    PAWN-Quellcode

    1. Mobile[playerid] = 255;

    habe ich das.

    Allerdings schreibe ich beim Telefonieren nicht im Handychat, habe ich mich vertippt?
  • Setze vor if(Mobile[playerid] != 255) bitte mal einen print:

    PAWN-Quellcode

    1. printf("mobile: %d / playerid: %d", Mobile[playerid], playerid);

    Was gibt dieser Print aus, wenn du etwas im Handychat schreiben willst?

    Und bitte nach dem format noch:

    PAWN-Quellcode

    1. printf("text: %s", string);
  • Ich wurde angerufen.

    PAWN-Quellcode

    1. ocmd:anrufen(playerid,params[])
    2. {
    3. if(IsPlayerConnected(playerid))
    4. {
    5. new nummer,string[150];
    6. if(sscanf(params,"d",nummer))return SendClientMessage(playerid, WEIS,"Befehl: /anrufen [Nummer]");
    7. if(sSpieler[playerid][Handys] == 0)return SendClientMessage(playerid,GRAU,"Du hast kein Handy!");
    8. if(GetPVarInt(playerid, "HandyStatus") == 0)return SendClientMessage(playerid, ROT, "Dein Handy ist aus bitte schalte es zuerst ein!");
    9. if(sSpieler[playerid][Akku] == 0)return SendClientMessage(playerid, ROT, "Dein Handy Akku ist leer!");
    10. if(sSpieler[playerid][Guthaben] <= 0 && sSpieler[playerid][Vertrag] == 0)return SendClientMessage(playerid, ROT, "Du hast kein Guthaben mehr auf deinem Handy!");
    11. if(GetPVarInt(playerid,"Mute") != 0)return SendClientMessage(playerid,GRAU,"Du kannst nicht Reden!");
    12. if(GetPVarInt(playerid, "Cuffed") == 1)return SendClientMessage(playerid, ROT, "Du kannst nicht telefonieren während du Handschellen an hast!");
    13. if(GetPVarInt(playerid, "Anrufen") > 0)return SendClientMessage(playerid, ROT, "Du versuchst gerade schon jemanden anzurufen!");
    14. if(Aktiv[playerid] == true)return SendClientMessage(playerid,ROT,"Du bist schon am telefonieren!");
    15. if(nummer == sSpieler[playerid][Handynummer])return SendClientMessage(playerid, ROT, "Du kannst dich nicht selber anrufen!");
    16. for(new i = 0; i < MAX_PLAYERS; i++)
    17. {
    18. if(Handy[i][Nummer] == nummer)
    19. {
    20. if(sSpieler[i][Handys] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen er besitzt kein Handy!");
    21. if(GetPVarInt(i,"Mute") != 0)return SendClientMessage(playerid,GRAU,"Du kannst nicht Reden!");
    22. if(sSpieler[i][Akku] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy Akku leer ist!");
    23. if(GetPVarInt(i, "HandyStatus") == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy aus ist!");
    24. if(Mobile[i] == 255)
    25. {
    26. Mobile[i] = playerid;
    27. SetPVarInt(playerid, "Anrufen", 1);
    28. SetTimerEx("Anruf", 22073, false, "d", playerid);
    29. new uhrname[20];
    30. if(sSpieler[playerid][Handys] == 5) { format(uhrname, sizeof(uhrname), "iPhone 4"); }
    31. else if(sSpieler[playerid][Handys] == 4) { format(uhrname, sizeof(uhrname), "iPhone 4S"); }
    32. else if(sSpieler[playerid][Handys] == 3) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S4"); }
    33. else if(sSpieler[playerid][Handys] == 2) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S3"); }
    34. else { format(uhrname,sizeof(uhrname), "iPhone 5"); }
    35. format(string, sizeof(string), "* %s nimmt sein %s raus.", SpielerName(playerid), uhrname);
    36. ProxDetector(10.0, playerid, string, LILA,LILA,LILA,LILA,LILA);
    37. SetPVarInt(playerid, "Anrufen", 1);
    38. anruftimer[playerid] = SetTimerEx("Anruf", 15737, false, "i", playerid);
    39. format(string, sizeof(string), "Dein Handy klingelt. Tippe /annehmen. Anrufer: %s", SpielerName(playerid));
    40. SendClientMessage(i, GELB, string);
    41. if(sSpieler[playerid][Handys] == 5) { format(uhrname, sizeof(uhrname), "iPhone 4"); }
    42. else if(sSpieler[playerid][Handys] == 4) { format(uhrname, sizeof(uhrname), "iPhone 4S"); }
    43. else if(sSpieler[playerid][Handys] == 3) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S4"); }
    44. else if(sSpieler[playerid][Handys] == 2) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S3"); }
    45. else { format(uhrname,sizeof(uhrname), "iPhone 5"); }
    46. format(string, sizeof(string), "* %s's %s klingelt.", SpielerName(i),uhrname);
    47. ProxDetector(8.0, i, string, LILA,LILA,LILA,LILA,LILA);
    48. SetHandy(playerid);
    49. wirdangerufen[i] = playerid;
    50. }
    51. else
    52. {
    53. SendClientMessage(playerid,GELB,"Tüt - Tüt - Tüt kein Anschluss unter dieser Nummer!");
    54. ClearHandy(playerid);
    55. SetPVarInt(playerid, "Anrufen", 0);
    56. return 1;
    57. }
    58. }
    59. }
    60. }
    61. return 1;
    62. }
    Alles anzeigen
  • @Jeffry Jetzt schreibe ich beim Telefonieren im Handychat und wenn ich Auflege schreibe ich wieder im normalen Chat, Danke dir :thumbsup: .

    Ich habe noch ein 2 Problem was mit dem Handysystem zu tun hat. Ich habe Telefonzellen verteilt und wenn ich versuche jemanden anzurufen sagt der mir, das der angegebene Spieler kein Handy hat, dabei hat er aber eins.


    PAWN-Quellcode

    1. if(dialogid == TELEFONZELLE)
    2. {
    3. new nummer,string[150];
    4. new uhrname[20];
    5. if(response)
    6. {
    7. if(sSpieler[playerid][Handynummer] == strval(inputtext))
    8. {
    9. for(new i = 0; i < MAX_PLAYERS; i++)
    10. {
    11. if(Handy[i][Nummer] == nummer)
    12. {
    13. if(sSpieler[i][Handys] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen er besitzt kein Handy!");
    14. if(GetPVarInt(i,"Mute") != 0)return SendClientMessage(playerid,GRAU,"Du kannst nicht Reden!");
    15. if(sSpieler[i][Akku] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy Akku leer ist!");
    16. if(GetPVarInt(i, "HandyStatus")== 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy aus ist!");
    17. anruftimer[playerid] = SetTimerEx("Anruf", 15737, false, "i", playerid);
    18. format(string, sizeof(string), "Dein Handy klingelt. Tippe /annehmen. Anrufer: %s", SpielerName(playerid));
    19. SendClientMessage(i, GELB, string);
    20. if(sSpieler[playerid][Handys] == 5) { format(uhrname, sizeof(uhrname), "iPhone 4"); }
    21. else if(sSpieler[playerid][Handys] == 4) { format(uhrname, sizeof(uhrname), "iPhone 4S"); }
    22. else if(sSpieler[playerid][Handys] == 3) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S4"); }
    23. else if(sSpieler[playerid][Handys] == 2) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S3"); }
    24. else { format(uhrname,sizeof(uhrname), "iPhone 5"); }
    25. format(string, sizeof(string), "* %s's %s klingelt.", SpielerName(i),uhrname);
    26. ProxDetector(8.0, i, string, LILA,LILA,LILA,LILA,LILA);
    27. SetHandy(playerid);
    28. wirdangerufen[i] = playerid;
    29. }
    30. }
    31. }
    32. else
    33. {
    34. SendClientMessage(playerid,ROT,"Falsche Nummer!");
    35. ShowPlayerDialog(playerid,TELEFONZELLE,DIALOG_STYLE_INPUT,"Telefonzelle","Gebe die Nummer ein die du Anrufen willst:","Wählen","Abbrechen");
    36. }
    37. }
    38. }
    Alles anzeigen


    Das == 0 hatte ich auch schon geändert in < 1 das hatte leider auch nicht funktioniert.

    Ich hoffe du kannst mir auch dabei helfen.

  • Ok Danke für die Erklärung, Ich habe das jetzt so und es passiert aber nichts wenn ich die Nummer eingebe.

    PAWN-Quellcode

    1. if(dialogid == TELEFONZELLE)
    2. {
    3. new nummer,string[150];
    4. new uhrname[20];
    5. if(response)
    6. {
    7. nummer = strval(inputtext);
    8. if(sSpieler[playerid][Handynummer] == strval(inputtext))
    9. {
    10. for(new i = 0; i < MAX_PLAYERS; i++)
    11. {
    12. if(Handy[i][Nummer] == nummer)
    13. {
    14. if(sSpieler[i][Handys] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen er besitzt kein Handy!");
    15. if(GetPVarInt(i,"Mute") != 0)return SendClientMessage(playerid,GRAU,"Du kannst nicht Reden!");
    16. if(sSpieler[i][Akku] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy Akku leer ist!");
    17. if(GetPVarInt(i, "HandyStatus")== 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy aus ist!");
    18. anruftimer[playerid] = SetTimerEx("Anruf", 15737, false, "i", playerid);
    19. format(string, sizeof(string), "Dein Handy klingelt. Tippe /annehmen. Anrufer: %s", SpielerName(playerid));
    20. SendClientMessage(i, GELB, string);
    21. if(sSpieler[playerid][Handys] == 5) { format(uhrname, sizeof(uhrname), "iPhone 4"); }
    22. else if(sSpieler[playerid][Handys] == 4) { format(uhrname, sizeof(uhrname), "iPhone 4S"); }
    23. else if(sSpieler[playerid][Handys] == 3) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S4"); }
    24. else if(sSpieler[playerid][Handys] == 2) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S3"); }
    25. else { format(uhrname,sizeof(uhrname), "iPhone 5"); }
    26. format(string, sizeof(string), "* %s's %s klingelt.", SpielerName(i),uhrname);
    27. ProxDetector(8.0, i, string, LILA,LILA,LILA,LILA,LILA);
    28. SetHandy(playerid);
    29. wirdangerufen[i] = playerid;
    30. }
    31. }
    32. }
    33. else
    34. {
    35. SendClientMessage(playerid,ROT,"Falsche Nummer!");
    36. ShowPlayerDialog(playerid,TELEFONZELLE,DIALOG_STYLE_INPUT,"Telefonzelle","Gebe die Nummer ein die du Anrufen willst:","Wählen","Abbrechen");
    37. }
    38. }
    39. }
    Alles anzeigen
  • Die Abfrage habe ich entfernt allerdings tut sich immer noch nichts. Ich glaube ich bin nicht in der Lage das zum Laufen zu bekommen ;(

    PAWN-Quellcode

    1. if(dialogid == TELEFONZELLE)
    2. {
    3. new nummer,string[150];
    4. new uhrname[20];
    5. if(response)
    6. {
    7. nummer = strval(inputtext);
    8. for(new i = 0; i < MAX_PLAYERS; i++)
    9. {
    10. if(Handy[i][Nummer] == nummer)
    11. {
    12. if(sSpieler[i][Handys] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen er besitzt kein Handy!");
    13. if(GetPVarInt(i,"Mute") != 0)return SendClientMessage(playerid,GRAU,"Du kannst nicht Reden!");
    14. if(sSpieler[i][Akku] == 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy Akku leer ist!");
    15. if(GetPVarInt(i, "HandyStatus")== 0)return SendClientMessage(playerid, ROT, "Du kannst den Spieler nicht anrufen da sein Handy aus ist!");
    16. anruftimer[playerid] = SetTimerEx("Anruf", 15737, false, "i", playerid);
    17. format(string, sizeof(string), "Dein Handy klingelt. Tippe /annehmen. Anrufer: %s", SpielerName(playerid));
    18. SendClientMessage(i, GELB, string);
    19. if(sSpieler[playerid][Handys] == 5) { format(uhrname, sizeof(uhrname), "iPhone 4"); }
    20. else if(sSpieler[playerid][Handys] == 4) { format(uhrname, sizeof(uhrname), "iPhone 4S"); }
    21. else if(sSpieler[playerid][Handys] == 3) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S4"); }
    22. else if(sSpieler[playerid][Handys] == 2) { format(uhrname, sizeof(uhrname), "Samsung Galaxy S3"); }
    23. else { format(uhrname,sizeof(uhrname), "iPhone 5"); }
    24. format(string, sizeof(string), "* %s's %s klingelt.", SpielerName(i),uhrname);
    25. ProxDetector(8.0, i, string, LILA,LILA,LILA,LILA,LILA);
    26. SetHandy(playerid);
    27. wirdangerufen[i] = playerid;
    28. }
    29. }
    30. }
    31. }
    Alles anzeigen

    Beitrag von Fabian_DeSanta ()

    Dieser Beitrag wurde von Eddy aus folgendem Grund gelöscht: Spam ().