Beiträge von Silbermond

    ja das hab ich jetzt dazu gepackt aber dein simples system funktioniert bei mir komischerweise nicht
    ehhm nimm mich mal per skype an dann kannste per tv mal mein script sehen und wir können das gemeinsam lösen (wenns recht ist)

    ich habe keine ahnung ob das annähernd richtig ist ich habe es nochmal komplett abgeändert

    public UserCheck(playerid)
    {
    print("3");
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    new betaregstatus;
    if(num_rows==0)
    { //Registrierung
    if(register_status == 1)
    {
    new string[255];
    if(!strfind(SpielerName(playerid),gBadName,true))
    {
    SendClientMessage(playerid,CL_HGRÜN,"Du wurdest gekickt weil du einen nicht erlaubten Namen hast. Oder du hast nicht erlaubte Zeichen im Namen.");
    format(string, sizeof(string), "ADMCMD: %s wurde vom Server gekickt. Grund: Unerlaubter Name", SpielerName(playerid)); //macht einen String, %s ist der Name anderes Bsp. %d ist eine Zahl^^
    SendClientMessageToAll(CL_KNALLROT,string);
    KickPlayer(playerid);
    return 0;
    }

    if(betastatus == 1 && betaregstatus == 0)
    {
    #define DIALOG_BETA_KEY_INSERT 20
    //betakey abfrage
    print("beta key abfrage");
    betaregstatus = 1;
    new inputtext[128];
    printf("betaregstatus %i",betaregstatus);
    ShowPlayerDialog(playerid,DIALOG_BETA_KEY_INSERT,DIALOG_STYLE_INPUT,inputtext,"Gebe den Beta Key ein","OK","Cancel");
    //registrierung
    return 1;
    }
    print("user check -> registrierung ip checken ohne dialog zeigen register");
    new ip[16],query[128]; //hier stimmt die reihenfolge nicht!!!
    GetPlayerIp(playerid,ip,sizeof(ip));
    format(query,sizeof(query),"SELECT NAME FROM benutzer WHERE IP='%s'",ip);
    mysql_function_query(dbhandle,query,true,"IPCHECK","d",playerid);
    print("user check abgeschlossen");
    //ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf MVS [BETA]","Bitte Registriere dich mit deinem Passwort.","Register","Close");
    //Dein Register Zeugs
    }
    else if(register_status == 0)
    {
    SendClientMessage(playerid,-1,"Die Registrierung ist abgeschaltet");
    KickPlayer(playerid);
    }
    }
    else
    {


    }
    //Login
    }
    habe dir eine anfrage gesendet @ciberkiller

    GetPlayerName(pID,SpielerTimeBan[pID][pNameTBan],sizeof(SpielerTimeBan[pID][pNameTBan]));//Alle errors sind hier?
    muss doch so sein?!
    GetPlayerName(deinespielerid,sizeof(SpielerTimeBan[pID][pNameTBan]),SpielerTimeBan[pID][pNameTBan]);


    schau mal ob es so geht

    forward BetakeyCheck(key); public BetakeyCheck(key) { new num_rows,num_fields; cache_get_data(num_rows,num_fields,dbhandle); if(num_rows == 0) { return 1 } return 1; }


    hab ich doch wenn == 0 dann soll der Key vom User abgefragt werden mit einem DIalog (den kann ich selber) und dann verglichen werden (hab ich noch nie gemacht)

    Hallo zusammen,


    ich habe vor für den nächsten Changelog ein schönes Beta Key System rein zu machen damit wenn der Server online geht die Leute nur sich mit Beta Key Registrieren können
    hier mal der Anfang aber ich weiss einfach nicht weiter , eigentlich nur den Eingegebenen Key mit den Datenbank Keys überprüfen und dann den status auf 0(deaktiviert) setzen und alle die 1 sind (aktiviert) können noch benutzt werden.
    hier mal der CODE


    forward BetakeyCheck(key);
    public BetakeyCheck(key)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows == 0)
    {

    return 1
    }
    return 1;
    }
    public UserCheck(playerid)
    {
    print("3");
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    new betaregstatus;
    if(num_rows==0)
    { //Registrierung
    if(register_status == 1)
    {
    new string[255];
    if(!strfind(SpielerName(playerid),gBadName,true))
    {
    SendClientMessage(playerid,CL_HGRÜN,"Du wurdest gekickt weil du einen nicht erlaubten Namen hast. Oder du hast nicht erlaubte Zeichen im Namen.");
    format(string, sizeof(string), "ADMCMD: %s wurde vom Server gekickt. Grund: Unerlaubter Name", SpielerName(playerid)); //macht einen String, %s ist der Name anderes Bsp. %d ist eine Zahl^^
    SendClientMessageToAll(CL_KNALLROT,string);
    KickPlayer(playerid);
    return 0;
    }

    if(betastatus == 1 && betaregstatus == 0)
    {
    //betakey abfrage
    print("beta key abfrage");
    betaregstatus = 1;
    printf("betaregstatus %i",betaregstatus);
    new query[128];
    format(query,sizeof(query),"SELECT key FROM betakey WHERE status='1'");
    mysql_function_query(dbhandle,query,true,"BetakeyCheck","d",playerid);
    //registrierung
    return 1;
    }
    print("user check -> registrierung ip checken ohne dialog zeigen register");
    new ip[16],query[128]; //hier stimmt die reihenfolge nicht!!!
    GetPlayerIp(playerid,ip,sizeof(ip));
    format(query,sizeof(query),"SELECT NAME FROM benutzer WHERE IP='%s'",ip);
    mysql_function_query(dbhandle,query,true,"IPCHECK","d",playerid);
    print("user check abgeschlossen");
    //ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf MVS [BETA]","Bitte Registriere dich mit deinem Passwort.","Register","Close");
    //Dein Register Zeugs
    }
    else if(register_status == 0)
    {
    SendClientMessage(playerid,-1,"Die Registrierung ist abgeschaltet");
    KickPlayer(playerid);
    }
    }
    else
    {//Login
    ShowPlayerDialog(playerid,DIALOG_LOGIN_MYSQL,DIALOG_STYLE_PASSWORD,"Login auf MVS [BETA] ","Bitte Logge dich mit deinem Passwort ein. ","Login","Close");
    }
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    if(IsPlayerNPC(playerid)) return 1;
    SetPlayerColor(playerid,CL_GRAU);
    TogglePlayerControllable(playerid,0);
    print("0.0");
    introstart(playerid);
    //Register-System-MYSQL
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT DB_ID FROM benutzer WHERE NAME='%s'",name);
    mysql_function_query(dbhandle,query,true,"UserCheck","i",playerid);
    TextDrawShowForPlayer(playerid, Date);
    return 1;
    }
    forward IPCHECK(playerid);
    public IPCHECK(playerid)
    {
    if(cache_get_row_count() > 0)
    {
    print("doppelte ip");
    new ip[16], query[128];
    GetPlayerIp(playerid,ip,sizeof(ip));
    //IP existiert dann kontrolle in der whitelist
    format(query,sizeof(query),"SELECT NAME FROM whitelist WHERE IP='%s'",ip);
    mysql_function_query(dbhandle,query,true,"WHITELISTCHECK","d",playerid);
    print("Whitelist checken ergebnis abwarten");
    return 1;
    }
    print("keine doppelte ip");
    SCM(playerid,-1,"alles gut keine doppelte registrierung");
    ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf MVS [BETA]","Bitte Registriere dich mit deinem Passwort.","Register","Close");
    return 1;
    }
    forward WHITELISTCHECK(playerid);
    public WHITELISTCHECK(playerid)
    {
    if(cache_get_row_count() < 1)
    {
    print("kein whitelist eintrag");
    SCM(playerid,-1,"Du hast dich bereits mit dieser IP-Adresse Registriert.");
    SCM(playerid,-1," Bei einem Multiaccount z.B. für Geschwister melde dich bitte bei Admins mit deiner IP.");
    return KickPlayer(playerid);
    }
    print("2");
    ShowPlayerDialog(playerid,DIALOG_REGISTER_MYSQL,DIALOG_STYLE_INPUT,"Registrierung auf MVS [BETA]","Bitte Registriere dich mit deinem Passwort.","Register","Close");
    SCM(playerid,-1,"whitelist eintrag vorhanden registrierung fortsetzen");
    print("WHITELIST check abgeschlossen");
    return 1;
    }


    Vlt kann ja jemand helfen


    Vielen dank im Vorraus

    okay ich mache es wieder so wie vorher




    [expander]stock GetPlayerAdminName(playerid)
    {
    new aName[]="Stellv. Projektleiter";
    switch(sInfo[playerid][alevel])
    {
    case 0: aName="User";
    case 1: aName="V.I.P";
    //fehlt aus sicherheit vor diebstahl



    default: aName="ERROR";
    }
    return aName;
    }[/expander]










    rückänderung


    folgender ERROR


    E:\SAMP\gamemodes\Script1.pwn(568) : error 047: array sizes do not match, or destination array is too small

    Hallo comm
    ich wollte gerne den SpielerNamen und den AdminRang in einem Enum speichern


    beim definieren kommt dann das



    E:\SAMP\gamemodes\Script1.pwn(568) : warning 202: number of arguments does not match definition
    E:\SAMP\gamemodes\Script1.pwn(568) : warning 202: number of arguments does not match definition


    Spoiler anzeigen
    zInfo[i][z_name] = GetPlayerName(i);




    und dieser Error bei dieser zeile



    E:\SAMP\gamemodes\Script1.pwn(567) : error 006: must be assigned to an array


    Spoiler anzeigen
    zInfo[i][z_rang] = GetPlayerAdminName(i);



    MFG

    Nicht grad Seriöse Anfrage.
    Warum sollten wir uns für dich entscheiden und nicht für andere, professionellere Sponsoren?
    Wir wissen nichts über dich.
    Wir wissen nichts über deinen Root Server.
    Wir wissen so gut wie nichts.


    da kann ich nur zustimmen.



    Ich überarbeite sie nochmal :)


    sieht danach auch nicht viel besser aus :thumbdown:

    Hallo zusammen.



    Wie im Thema INSERT INTO klappt nicht angefangen,


    brauche ich da noch 1 mal Hilfe


    da das da ja nicht reingehört schreibe ich da jetzt mal einen neuen Beitrag





    also wie die Überschrift schon sagt brauche ich eine Abfrage ob


    Zollstation(Koordinaten) mit der dementsprechenden ID == Schranke 1 oder 2



    ich habe das ganze erstmal basieren lassen auf dem Haussystem von MR Monat.


    aus Createhaus wurde dann Createzoll und mit setpreis wurde setzollpreis



    nun brauche ich halt diese Abfrage um zu gucken. Welche Zollstation ist das. und zu jeder Zollstation muss ich dann die 2 Schranken zuordnen können.



    Hier habt ihr mal mein /buyzollticket befehl mit DIALOG


    ocmd:buyzollticket(playerid,params[])
    {
    new string[128];
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    if(IsPlayerInRangeOfPoint(playerid,5,1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {

    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LS_LV,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    else if(IsPlayerInRangeOfPoint(playerid,5,1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {

    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LV_LS,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }

    }




    und hier die dialoge die meine schranken dann bewegen



    Spoiler anzeigen
    //ZollSystem

    //LV
    if(dialogid == DIALOG_ZOLL_LS_LV)
    {
    if(response)
    {
    //Zollticketprozess (kaufen)

    if(GetPlayerMoney(playerid)<zInfo[playerid][z_preis])
    {
    SendClientMessage(playerid,RED,"Du hast nicht genügend Geld um dir ein Zollticket zu kaufen");

    return 1;
    }
    GivePlayerMoney(playerid,-zInfo[playerid][z_preis]);
    //Schranke Bewegen
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    MoveObject(ZLV1L,1648.6, -42.1, 36.4,3);
    SetObjectRot(ZLV1L,0, 0, 31.5);
    SetTimerEx("ZLVL1",7000,false,"i",playerid);
    SendClientMessage(playerid,CLGREEN,"Du hast dir erfolgreich ein Zollticket gekauft! Gute Fahrt!");
    SendClientMessage(playerid,CL_ORANGE,"Du kannst nun weiterfahren");

    return 1;
    }
    else
    {

    SendClientMessage(playerid,RED,"Du hast den Kauf des Zolltickets abgebrochen");
    return 1;
    }
    }




    if(dialogid == DIALOG_ZOLL_LV_LS)
    {
    if(response)
    {
    //Zollticketprozess (kaufen)

    if(GetPlayerMoney(playerid)<zInfo[playerid][z_preis])
    {
    SendClientMessage(playerid,RED,"Du hast nicht genügend Geld um dir ein Zollticket zu kaufen");

    return 1;
    }
    GivePlayerMoney(playerid,-zInfo[playerid][z_preis]);
    //Schranke Bewegen
    //ZLV1R/auf CreateObject(968, 1656.6, -35.6, 36.5, 0, 2.748, 23.744);
    //ZLV1R/zu CreateObject(968, 1656.6, -35.5, 36.5, 0, 267.747, 26.491);
    MoveObject(ZLV1R,1648.6, -42.1, 36.4,3);
    SetObjectRot(ZLV1R,0, 0, 31.5);
    SetTimerEx("ZLVR1",7000,false,"i",playerid);
    SendClientMessage(playerid,CLGREEN,"Du hast dir erfolgreich ein Zollticket gekauft! Gute Fahrt!");
    SendClientMessage(playerid,CL_ORANGE,"Du kannst nun weiterfahren");

    return 1;
    }
    else
    {

    SendClientMessage(playerid,RED,"Du hast den Kauf des Zolltickets abgebrochen");
    return 1;
    }
    }



    und die entsprechenden Timer die die Schranke schließen



    Spoiler anzeigen
    forward ZLVL1(playerid);
    public ZLVL1(playerid)
    {

    MoveObject(ZLV1L,1648.5996, -42.09961, 36.4,10);
    SetObjectRot(ZLV1L,0, 268.25, 22.998);
    SendClientMessage(playerid,-1,"Die Schranke wird geschlossen");
    return 1;
    }

    Spoiler anzeigen
    //1656.6, -35.5, 36.5, 0, 267.747, 26.491

    Spoiler anzeigen
    forward ZLVR1(playerid);
    public ZLVR1(playerid)
    {

    MoveObject(ZLV1R,1656.6, -35.5, 36.5,10);
    SetObjectRot(ZLV1R, 0, 267.747, 26.491);
    SendClientMessage(playerid,-1,"Die Schranke wird geschlossen");
    return 1;
    }



    Anmerkung

    Spoiler anzeigen
    DIALOG_ZOLL_LV_LS sagt aus dass die schranke von LV nach LS gemeint ist.
    Beim anderen Dialog umgekehrt also LS nach LV




    VIelen dank wenn mir jmd die abfrage sagen kann



    MFG