random

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
  • Erstmal an alle Frohes Neues!! ^^


    Hey, kann mir einer bitte eine erklärung / helfen wie ich eine random nummer erstelle für ein Handy System?
    Also ich wollte das bei /buy phone man eine random nummer bekommt, die gespeichert wird und die dann auch immer geladen wird mit Dini halt.

    <buqja>: brauche 3 mercs fürn 3o3

  • Unter: OnPlayerConnect bzw. dann in deinem Befehl: /buyphone (ist relativ egal glaub ich ^^)

    new rndphone = 1000 + random(8999);//minimum 1000 max 9999
    Spieler[playerid][Nummer] = rndphone;


    Musst halt Spieler[playerid][Nummer] definieren, aber ich glaub das bekommste hin ;D


    Gruß Real


    EDIT: verlesen ^^

  • Danke! Nun fehlt mir noch sowas, das man nur einmal dies machen kann wenn man es gekauft hat! Ich kann mir immer wider hintereinander neue nummern kaufen :P
    /sms /call /togphone gibts auch :) ? Wär cool :)

    <buqja>: brauche 3 mercs fürn 3o3

  • Ich kanns dir jetzt nur grob schildern, ich schau später nach und editiere dann:


    Du musst bei den Spielerdaten i-wie einbauen das beim registrieren eine variable (wegen mir: numchange) auf 0 gesetzt wird, und in dem befehl dann abgefragt wird ob numchange == 1 ist oder 0; wenn == 0 dann passiert das mit der zufälligen nummer und die var wird dann (mit: numchange = 1) auf 1 gesetzt, oder die var ist bereits auf 1 (also numchange == 1) und es wird mit SendClientMessage gesendet: "Du hast dir bereits eine Nummer gekauft" und es wird returnt.


    natürlich mit If usw.


    das müsste dann ungefähr so aussehen:


    //Dein /buyphone blub usw.
    If(Spieler[playerid][numchange] == 0)
    {
    new rndphone = 1000 + random(8999);
    Spieler[playerid][Nummer] = rndphone;
    format(msg,sizeof(msg),"Deine neue Nummer lautet: %i",Spieler[playerid][Nummer]);
    SendClientMessage(playerid,COLOR_WHITE,msg);
    Spieler[playerid][numchange] = 1;
    }
    else
    {
    return SendClientMessage(playerid,COLOR_WHITE,"Du hast dir bereits eine Nummer gekauft!");
    }


    ungetestet...


    und wie gesagt: in deinem registervorgang muss dann i-wo stehen: Spieler[playerid][numchange] = 0;


    und dann wieder numchange usw. definieren wie du Nummer gemacht hast ;D


    /sms schau ich nach, /togphone und /call ist für mich persönlich auch noch bissl schwer, bin nochn anfänger X(


    Ich hoffe ich konnte dir helfen


    Gruß

  • /togphone geht noch, aber /sms hab ich kein plan xD


    also


    du erstellst unter deinen Spielerstats noch ein punkt mit: togphone


    dann bei deinem register-vorgang stellst du rein :


    Spieler[playerid][togphone] = 0;


    Dann in deinem Login-Vorgang


    Spieler[playerid][togphone] = dini_Int(accFormat,"togphone");


    ("accFormat" und "Spieler" musst du natürlich wieder anpassen)


    unter OnplayerDisconnect:


    dini_IntSet(accFormat, "togphone", Spieler[playerid][togphone]);


    So dann gehts weiter:


    Dann machst du halt einen Befehl:


    dcmd_togphone(playerid,params[])
    {
    //abfragen bla bla bla
    If(Spieler[playerid][togphone] == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast dein Telefon erfolgreich ausgeschaltet");
    Spieler[playerid][togphone] = 1;
    return
    }
    else If(Spieler[playerid][togphone] == 1)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast dein Telefon erfolgreich angeschaltet");
    Spieler[playerid][togphone] = 0;
    return
    }
    //Klammern von ifabfragen
    return 1;
    }


    Das wars eigent. dann in dem befehl /sms [Nummer][Nachricht]
    oder /call


    dcmd_sms(playerid,params[])
    {
    if(sscanf(params,"us",pID,msg))
    {
    return SendClientMessage(playerid, COLOR_RED,"[Benutzung]: /sms [Nummer] [Nachricht]");
    }


    baust du einfach das rein:


    if(Spieler[pID][togphone] > 0)
    {
    SendClientMessage(playerid, COLOR_RED, " Pieeepp... Leitung ist nicht erreichbar!");
    return 1;
    }


    Wie gesagt, den genauen befehl kan ich dir nicht sagen.. da ich nicht genau weiß wie ich überprüfe ob diese Nummer richtig ist...


    das würde ich auch gerne mal erklärt bekommen


    Wäre nett ;D


    Gruß


    /EDIT: Disconnect vergessen -.-