Guten Tag,
hab nen Problem mit meinem Handy-System.
Der Handy Call geht überhaupt nicht, und FACEBOOK & SMS geht nur ab und zu.
Hier meine Codes:
die new's:
new ClickedPlayer[MAX_PLAYERS];
new IsAtLaptopDialog[MAX_PLAYERS];
new HandyAus[MAX_PLAYERS];
new WirdAngeruft[MAX_PLAYERS];
new RuftAn[MAX_PLAYERS];
new Telefoniert[MAX_PLAYERS];
new HandyCall;
OnPlayerDeath:
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(WirdAngeruft[playerid] == RuftAn[i] || WirdAngeruft[i] == RuftAn[playerid] || Telefoniert[playerid] == Telefoniert[i])
{
SendClientMessage(playerid, FARBE_GELB, "[HANDY]: Der Verbindung wurde gebrochen.");
SendClientMessage(i, FARBE_GELB, "[HANDY]: Der Verbindung wurde gebrochen.");
RuftAn[playerid] = -1;
WirdAngeruft[playerid] = -1;
Telefoniert[playerid] = -1;
Telefoniert[i] = -1;
WirdAngeruft[i] = -1;
RuftAn[i] = -1;
}
}
OnPlayerText:
new string[200];
if(Telefoniert[playerid] >= 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Telefoniert[playerid] == Telefoniert[i])
{
format(string, 200, "[HANDY]: %s: %s", SpielerName(playerid), text);
SendClientMessage(i, FARBE_GELB, string);
SendClientMessage(playerid, FARBE_GRAU, string);
printf(string);
}
}
}
Meine 2 Commands: Abheben, auflegen:
ocmd:auflegen(playerid,params[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(Telefoniert[i] == Telefoniert[playerid])
{
SendClientMessage(i, FARBE_GELB, "[HANDY]: Es wurde einfach aufgelegt ..");
SendClientMessage(playerid, FARBE_GRAU, "[HANDY]: Du hast das Handy aufgelegt.");
Telefoniert[i] = -1;
Telefoniert[playerid] = -1;
}
}
return 1;
}
ocmd:pickup(playerid,params[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(WirdAngeruft[playerid] >= 0)
{
if(WirdAngeruft[playerid] == RuftAn[i])
{
ClickedPlayer[i] = -1;
Telefoniert[playerid] = RuftAn[i];
Telefoniert[i] = RuftAn[i];
RuftAn[i] = -1;
WirdAngeruft[playerid] = -1;
SendClientMessage(playerid, FARBE_GELB, "[HANDY]: Du hebst den Anruf ab.");
KillTimer(HandyCall);
SendClientMessage(i, FARBE_GELB, "[HANDY]: Dein Anruf wird abgehoben.");
}
}
}
return 1;
}
Hier meien Dialoge:
case DIALOG_HANDY:
{
if(response)
{
if(listitem == 0)
{
new string[240];
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
format(string, sizeof(string), "%s (ID:%i)\n", SpielerName(i), i);
}
ShowPlayerDialog(playerid, DIALOG_CALL, DIALOG_STYLE_LIST, "Folgende User sind in deiner Kontaktliste:", string, "Anrufen", "Abbrechen");
IsAtLaptopDialog[playerid] = 1;
}
}
if(listitem == 1)
{
new string[240];
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
format(string, sizeof(string), "%s (ID:%i)\n", SpielerName(i), i);
}
ShowPlayerDialog(playerid, DIALOG_SMS, DIALOG_STYLE_LIST, "Folgende User sind in deiner Kontaktliste:", string, "Fortfahren", "Abbrechen");
IsAtLaptopDialog[playerid] = 1;
}
}
if(listitem == 2)
{
new string[240];
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
format(string, sizeof(string), "%s (ID:%i)\n", SpielerName(i), i);
}
ShowPlayerDialog(playerid, DIALOG_FACEBOOK, DIALOG_STYLE_LIST, "Folgende User sind im Chat online:", string, "Fortfahren", "Abbrechen");
IsAtLaptopDialog[playerid] = 1;
}
}
if(listitem == 3)
{
ShowPlayerDialog(playerid, DIALOG_HANDYAUSEIN, DIALOG_STYLE_LIST, "Handy-Menü", "Handy einschalten\nHandy ausschalten", "Fortfahren", "Abbrechen");
}
}
}
case DIALOG_CALL:
{
if(response)
{
if(HandyAus[ClickedPlayer[playerid]] == 0)
{
new string[200];
format(string, 200, "[HANDY]: Du wirst von %s angerufen.", SpielerName(playerid));
SendClientMessage(ClickedPlayer[playerid], FARBE_GELB, string);
SendClientMessage(ClickedPlayer[playerid], FARBE_GELB, "[HANDY]: Nutze (/pickup) (/p) oder (/abheben) um dne Höhrer abzunehmen.");
format(string, 200, "[HANDY]: Du rufst %s an.", SpielerName(ClickedPlayer[playerid]));
SendClientMessage(playerid, FARBE_GELB, string);
WirdAngeruft[ClickedPlayer[playerid]] = playerid;
RuftAn[playerid] = playerid;
HandyCall = SetTimerEx("AnrufAusTimer", 1000*20, false, "d", playerid);
}
else
{
SendClientMessage(playerid, FARBE_GELB, "[HANDY]: Der Spieler hat sein Handy ausgeschaltet!");
}
}
}
case DIALOG_SMS:
{
if(response)
{
if(HandyAus[ClickedPlayer[playerid]] == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
ShowPlayerDialog(playerid, DIALOG_SMS1, DIALOG_STYLE_INPUT, "SMS senden", "Gib die Nachricht ein, welche du absenden möchtest:", "Fortfahren", "Abbrechen");
}
}
else
{
SendClientMessage(playerid, FARBE_GELB, "[HANDY]: Der Spieler hat sein Handy ausgeschaltet!");
}
}
}
case DIALOG_SMS1:
{
if(response)
{
new string[150];
format(string, 150, "[HANDY]: SMS | Absender: %s | Nachricht: %s", SpielerName(playerid),inputtext);
SendClientMessage(ClickedPlayer[playerid], FARBE_GELB, string);
format(string, 150, "FACEBOOK | Empfänger: %s | Nachricht: %s", SpielerName(ClickedPlayer[playerid]),inputtext);
SendClientMessage(playerid, FARBE_GELB, string);
ClickedPlayer[playerid] = -1;
IsAtLaptopDialog[playerid] = 0;
}
}
case DIALOG_FACEBOOK:
{
if(response)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
ShowPlayerDialog(playerid, DIALOG_FACEBOOK2, DIALOG_STYLE_INPUT, "Nachricht senden", "Gib die Nachricht ein, welche du absenden möchtest:", "Fortfahren", "Abbrechen");
}
}
}
case DIALOG_FACEBOOK2:
{
if(response)
{
new string[150];
format(string, 150, "FACEBOOK | Absender: %s | Nachricht: %s", SpielerName(playerid),inputtext);
SendClientMessage(ClickedPlayer[playerid], FARBE_GELB, string);
format(string, 150, "FACEBOOK | Empfänger: %s | Nachricht: %s", SpielerName(ClickedPlayer[playerid]),inputtext);
SendClientMessage(playerid, FARBE_GELB, string);
ClickedPlayer[playerid] = -1;
IsAtLaptopDialog[playerid] = 0;
}
}
case DIALOG_HANDYAUSEIN:
{
if(response)
{
if(listitem == 0)
{
HandyAus[playerid] = 0;
SendClientMessage(playerid, FARBE_GELB, "[HANDY]: Handy eingeschaltet!");
}
if(listitem == 1)
{
HandyAus[playerid] = 1;
SendClientMessage(playerid, FARBE_GELB, "[HANDY]: Handy ausgeschaltet!");
}
}
}
& Hier OnPlayerClickPlayer:
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
if(IsAtLaptopDialog[playerid] == 1)
{
ClickedPlayer[playerid] = clickedplayerid;
}
return 1;
}
& hier der eine timer:
forward AnrufAusTimer(playerid);
public AnrufAusTimer(playerid)
{
SendClientMessage(ClickedPlayer[playerid], FARBE_GELB, "[HANDY]: Der Anruf wurde aufgelegt.");
SendClientMessage(playerid, FARBE_GELB, "[HANDY]: Es reagiert keiner ..");
IsAtLaptopDialog[playerid] = 0;
WirdAngeruft[ClickedPlayer[playerid]] = -1;
RuftAn[playerid] = -1;
ClickedPlayer[playerid] = -1;
return 1;
}
Wenn ihr mir helfen könnt, seid ihr die besten!
Lg,
playerid aka. inCrecdible