Beiträge von Uppermost

    Bei unserm Lehrer war Schwimmen letztes Jahr ziemlich geil, hatte als Kind Asthma und nutze das jetzt als Ausrede, nicht schwimmen zu dürfen, deshalb konnte ich immer am Smartphone im Internet rumsurfen, während die anderen Noten gemacht haben :D

    Hey,
    ich habe hier einige Handysysteme gesehen, mit denen man direkt die Playerid anruft, wie kann ich aber jedem Spieler eine Nummer zuweisen, oder besser: Wenn ich eine Nummer anrufe, wie finde ich die zugehörige Playerid raus? Wenn ich beispielsweise einem Anrufer und einem Angerufenen eine Telefonatsid zuweise und abfrage ob die beiden gleich sind (so hatte ich es probiert), und da beide die gleiche ID haben, konnte ich nur mit mir selber telefonieren, da ich ja die gleiche ID wie ich selbst habe, mit einer Schleife. Wie soll ich es sonst machen?

    Und wie frage ich das dann ab? Muss ich dort auch einen anderen Präfix/Suffix als sonst verwenden?
    if(GetPVarInt(playerid,"CallID")!=GetPVarInt(i,++"CallID")) {}
    if(GetPVarInt(playerid,"CallID")!=GetPVarInt(i,"CallID")++) {}
    if(GetPVarInt(playerid,"CallID")!=GetPVarInt(i,"CallID"++)) {}
    ?

    new callid = random(5000);
    for(new i=0; i< MAX_PLAYERS; i++)
    {
    //if-abfrage die ihr nicht braucht
    SetPVarInt(playerid,"CallID",callid);
    SetPVarInt(i,"CallID",callid++);
    printf("%d i %d p",GetPVarInt(i,"CallID"),GetPVarInt(playerid,"CallID"));
    }
    Wie man sieht, möchte ich für die playerid die Random Zahl speichern, für das Ergebnis der Schleife die Random Zahl +1. Trotzdem werden in beide PVars die gleichen Werte geschrieben, sehe ich anhand von dem Print. Warum ist das so? Eigentlich ist doch eine der PVars auf callid++ gesetzt?

    //Edit: falsch verstanden, return SendClientMessage ist jetzt in if(mobiInfo[i][Handynummer]!=cnumber) SendClientMessage(playerid,Gelb,"Diese Nummer gibt es nicht!"); geändert worden, Problem besteht weiterhin, nur dass ich jetzt die Nachricht bekommen, es existiert keine Nummer und beide Strings. Der Empfänger bekommt nichts mehr.

    Hey,
    ich habe mich mal einem /sms Befehl versucht und der funktioniert nur teilweise. Ich erkläre euch das mal ganz primitiv, was nicht klappt^^: Spieler A mit der ID 0 (wenn man Tab drückt) hat die Nummer 3333. Spieler B hat die ID 1 und die Nummer 4444. Wenn Spieler B eine SMS an die Nummer 3333 schreibt, kommt diese auch an, genauso wie wenn Spieler B sich selber eine SMS schreibt, die kommt auch an. Wenn Spieler A sich selber eine SMS schreibt, kommt die ebenfalls an, aber wenn Spieler A eine SMS an die Nummer 4444 schreibt, wird ausgegeben, dass diese nicht existiert.
    Befehl:
    ocmd:sms(playerid,params[])
    {
    if(mobiInfo[playerid][Handy]!=1) return SendClientMessage(playerid,Gelb,"Du besitzt kein Handy! Kaufe dir eins im 24/7!");
    new cnumber,smstext[128],stringtop[128],stringtoc[128];
    if(sscanf(params,"ds[128]",cnumber,smstext)) return SendClientMessage(playerid,Weiss,"Benutzung: /sms [Nummer] [Text]");
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(mobiInfo[i][Handynummer]!=cnumber) return SendClientMessage(playerid,Gelb,"Diese Nummer gibt es nicht!");
    format(stringtop,sizeof(stringtop),"SMS an %d: %s",cnumber,smstext);
    format(stringtoc,sizeof(stringtoc),"SMS von %d: %s",mobiInfo[playerid][Handynummer],smstext);
    SendClientMessage(playerid,Hellgruen,stringtop);
    SendClientMessage(i,Hellgruen,stringtoc);
    GivePlayerMoney(playerid,-15);
    return 1;
    }
    return 1;
    }
    Hatte mit printf auch mal beide Nummern ausgeben lassen beim Connect. Die stimmen ebenfalls, haben beide die richtigen Nummern (4444 und 3333)
    Irgendwie muss es an der Schleife liegen, was ist da falsch?