Abfrage beim Ersten Connect ?

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,
    Ich wollte bei mir am Selfmade script am Anfang eine Abfrage Für Geschlecht,Alter (Nach Geb.),
    Und zwar sieht meine Registriert Abfrage so aus!



    public OnPlayerSpawn(playerid)
    {
    new SSkin = PlayerInfo[playerid][Skin];
    SetPlayerSkin(playerid,SSkin);
    SetPlayerColor(playerid,Weiß);
    SetPlayerHealth(playerid,75.0);
    SetTimerEx("HealthLoss",380*1000,true,"if",playerid,0.5);
    if(Eingeloggt[playerid] == 0)
    {
    SendClientMessage(playerid,Rot,"Du wurdest gekickt Grund: gespawnt ohne einloggen!");
    Kick(playerid);
    return 1;
    }
    if(PlayerDeathTime[playerid] == 1)
    {
    SetPlayerPos(playerid, 0,0,0);
    }
    if(PlayerInfo[playerid][Gebannt] == 1)
    {
    SendClientMessage(playerid,Rot,"Du bist auf dem Server gebannt!");
    Kick(playerid);
    return 1;
    }
    if(PlayerInfo[playerid][Register] == 0) //Erster Spawn
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPlayerFacingAngle(playerid,29.3707);
    SetPlayerPos(playerid,1618.3164,-1893.8080,13.5488);
    PlayerInfo[playerid][Register] = 1;
    for(new i; i < 15; i++)
    {
    TextDrawHideForPlayer(playerid,LoadScreen[i]);
    }
    return 1;

    Jetzt würde ich gerne eine Dialog abfrage erstellen zum Thema Geschlecht wen Char Männlich = Skin 230 und ist er Weiblich Skin = 232 !
    Ich weiß nur nicht wie ich das jetzt in OnplayerSpawn mit unter bekomme ?!


    if(dialogid == DIALOG_SEX)
    {
    if(response)
    {
    if(listitem == 1)//Mänlich
    {
    SendClientMessage(playerid,Weiß," Du bist ~g~Männlich.");
    SetPlayerSkin(playerid,PlayerInfo[playerid],230);
    return true;
    }
    if(listitem == 2)//Weiblich
    {
    SendClientMessage(playerid,Weiß," Du bist ~g~Weiblich.");
    SetPlayerSkin(playerid,PlayerInfo[playerid],232);
    return true;
    }
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    dini_IntSet(string,"Skin",230);


    Und dann halt noch eine Abfrage fürs Alter. Da weiß ich nicht wie ich das Machen kann das die Abfrage mit dem Geburstag z.B 13.01.1996 = 18 jahre ist.
    Und sich das nach 1. Jahr erhöht Logischer weise :D


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    dini_IntSet(string,"Alter",0);

    Vielen Dank für eure Bemühung und Hilfe!

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

  • Du musst dein Problem schon etwas genauer erklären.
    Du lässt deinen Skin jeweils bei dem Geschlecht setzen, und was bekommst du nicht unter OnPlayerSpawn unter? Bekommt der Spieler keinen Skin, oder wie? :thumbup:

  • Ich weiß nicht wie Ich den Dialog in OnPlayerSpawn mit rein bekomme und danach zur Altersabfrage komme !
    Und der Skin ist halt SChon Definiert das Alle den Skin 230 haben


    dini_IntSet(string,"Skin",230);


    Das möchte ich halt so haben das sich das erst Definiert wen der Spieler sein Geschlecht ausgewählt hat !

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

  • Achso, du musst erst noch einen Dialog erscheinen lassen. Da habe ich mal wieder nicht richtig gelesen. :dash:


    //DIALOG_SEX im Script noch definieren!
    ShowPlayerDialog(playerid,DIALOG_SEX,DIALOG_STYLE_LISTITEM,"Geschlechtsangabe","Männlich\nWeiblich","Weiter","Beenden");

    So, und dann unter OnDialogResponse das so machen:


    if(dialogid == DIALOG_SEX && response == 1)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,-1,"Du bist Männlich.");
    SetPlayerSkin(playerid,230);
    }
    else if(listitem == 1)
    {
    SendClientMessage(playerid,-1,"Du bist Weiblich!");
    SetPlayerSkin(playerid,232);
    }
    return 1;
    }

  • if(dialogid == DIALOG_SEX && response == 1)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,-1,"Du bist Männlich.");
    SetPlayerSkin(playerid,230);
    }
    else if(listitem == 1)
    {
    SendClientMessage(playerid,-1,"Du bist Weiblich!");
    SetPlayerSkin(playerid,232);
    }
    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,"Alter","Gebe dein Alter ein:","Weiter","Beenden");
    return 1;
    }


    if(dialogid == DIALOG_AGE)
    {
    if(response)
    {
    new string[128];
    format(string,sizeof string,"%d Jahre alt",GetAge(inputtext));
    SendClientMessage(playerid,-1,string);
    }
    }


    unten im Script:
    stock GetAge(string[])
    {
    new var0, var1, var2, Date[3], age;
    sscanf(string, "p<.>iii", var0, var1, var2);
    if(var0 > 31 || var0 <= 0)return 0;
    if(var1 > 12 || var1 <= 0)return 0;
    getdate(Date[0],Date[1],Date[2]);
    if(var2 > Date[0] || var2 < 1900)return 0;
    age = Date[0] - var2 - ((Date[1] < var1)? 1 : ((Date[1] == var1 && Date[2] < var0)? 1 : 0));
    return age;
    }
    Du musst DIALOG_AGE aber noch im Script definieren :)

  • So habe es Ausprobiert..
    Habe 31.01.1998 Eingegeben das Fenster ist weg gegangen und es hat sich nichts eingtragen :/
    Also wird es nicht unter Dini_Alter gespeichert wie füge ich das hinzu und wie mache ich das das mir noch mal das alter angezeigt wird ? Also nach dem ein tippen ?? von wegen


    Bist du 18 Jahre alt
    JA NEIN


    wen man auf nein geht das man es nochmal eingeben kann ?



    Hier der Code!
    enum datei
    {
    ...
    ...
    ...
    ...
    Alter,
    ...
    ...
    ...
    ...

    }
    dini_IntSet(string,"Alter",0);
    PlayerInfo[playerid][Alter] = dini_Int(string,"Alter");
    if(dialogid == DIALOG_SEX && response == 1)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,-1,"Du bist Männlich.");
    SetPlayerSkin(playerid,230);
    PlayerInfo[playerid][Geschlecht] = 1;
    }
    else if(listitem == 1)
    {
    SendClientMessage(playerid,-1,"Du bist Weiblich!");
    SetPlayerSkin(playerid,232);
    PlayerInfo[playerid][Geschlecht] = 2;

    }
    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,"Alter","Gebe dein Geburtstag ein z.B. 31.05.2000 :","Weiter","Beenden");
    return 1;
    }
    dini_IntSet(string,"Alter",PlayerInfo[playerid][Alter]);
    #define DIALOG_AGE 32
    #define DIALOG_AGE2 33
    stock GetAge(string[])
    {
    new var0, var1, var2, Date[3], age;
    sscanf(string, "p<.>iii", var0, var1, var2);
    if(var0 > 31 || var0 <= 0)return 0;
    if(var1 > 12 || var1 <= 0)return 0;
    getdate(Date[0],Date[1],Date[2]);
    if(var2 > Date[0] || var2 < 1900)return 0;
    age = Date[0] - var2 - ((Date[1] < var1)? 1 : ((Date[1] == var1 && Date[2] < var0)? 1 : 0));
    return age;
    }


    Hier habe ich die Abfrage nicht ganz Richtig mit Ja oder Nein weil ich gerade net weiß wie ich das am besten unterbringen kann ?!


    if(dialogid == DIALOG_AGE)
    {
    if(response)
    {
    new textstring[128];
    format(string,sizeof string,"Du bist %d Jahre alt",GetAge(inputtext));
    SendClientMessage(playerid,-1,textstring);
    }
    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_MSGBOX,"Dein Alter ist also: %d? ","Ja","Nein");

    }

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    4 Mal editiert, zuletzt von EliteBread () aus folgendem Grund: 3x TEXT Code

  • PHP
    if(dialogid == DIALOG_AGE)
    	{
         	if(response)
         	{
               new textstring[128];
               format(string,sizeof string,"Du bist %d Jahre alt",GetAge(inputtext));
               SendClientMessage(playerid,-1,textstring);
               ShowPlayerDialog(playerid,DIALOG_AGE2,DIALOG_STYLE_MSGBOX,"Dein Alter ist also: %d? ","Ja","Nein");
         	}     	
    	}


    PHP
    if(dialogid == DIALOG_AGE2)
    	{
         	if(response)
         	{
               //Hier kommt er zum Tutorial etc...
         	}     	
            else {
               //Hier muss er ein Anderes Geburtsdatum eintragen
           }
    	}

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Geht leider immer noch nicht.
    Gebe alles ein also 15.02.1995 aber dann kommt Du bist also %d jahre alt ?


    #define DIALOG_AGE 32
    #define DIALOG_AGE2 33


    stock GetAge(string[])
    {
    new var0, var1, var2, Date[3], age;
    sscanf(string, "p<.>iii", var0, var1, var2);
    if(var0 > 31 || var0 <= 0)return 0;
    if(var1 > 12 || var1 <= 0)return 0;
    getdate(Date[0],Date[1],Date[2]);
    if(var2 > Date[0] || var2 < 1900)return 0;
    age = Date[0] - var2 - ((Date[1] < var1)? 1 : ((Date[1] == var1 && Date[2] < var0)? 1 : 0));
    return age;
    }


    if(dialogid == DIALOG_SEX && response == 1)
    {
    if(listitem == 0)
    {
    SendClientMessage(playerid,-1,"Du bist Männlich.");
    SetPlayerSkin(playerid,137);
    PlayerInfo[playerid][Geschlecht] = 1;
    }
    else if(listitem == 1)
    {
    SendClientMessage(playerid,-1,"Du bist Weiblich!");
    SetPlayerSkin(playerid,232);
    PlayerInfo[playerid][Geschlecht] = 2;

    }
    ShowPlayerDialog(playerid,DIALOG_AGE,DIALOG_STYLE_INPUT,"Alter","Gebe dein Geburtsdtum ein z.B 15.06.1998 :","Weiter","Beenden");
    return 1;
    }
    if(dialogid == DIALOG_AGE)
    {
    if(response)
    {
    new textstring[128];
    format(string,sizeof string,"Du bist %d Jahre alt",GetAge(inputtext));
    SendClientMessage(playerid,-1,textstring);
    }
    ShowPlayerDialog(playerid,DIALOG_AGE2,DIALOG_STYLE_MSGBOX,"Alter","Dein Alter ist also: %d? ","Ja","Nein");


    }
    if(dialogid == DIALOG_AGE2)
    {
    if(response)
    {
    //Hier kommt er zum Tutorial etc... (Noch nicht gemacht)
    }
    else
    {
    //Hier muss er ein Anderes Geburtsdatum eintragen (????)
    }
    }

    ↓Das ist der Youtube Channel von mir und meinen Kollegen↓



    Sa-Mp Server [Im Aufbau/Beta]
    128.65.216.200:7777

    Einmal editiert, zuletzt von EliteBread () aus folgendem Grund: Text