Beiträge von German_ScripterHD

    Guten Abend Brotfische,


    Ich habe mal eine Frage, ich würde gerne ein Befehl einbauen zum Beispiel "/veh [ID | Name] " Also man könnte entweder die ID oder z.B. die ersten 3 Buchstaben des Fahrzeuges.
    Meines Wissens ist sowas möglich, man muss das bestimmt die Name definen.. aber wie mache ich das mit dem definenen und den Befehl?


    Ich hoffe ihr könnt mir helfen :)


    MfG German_ScripterHD

    Schau dir mal das Video an, der erklärt genau wie man mit dem Editor um geht und wie man das ins Script einfügt.


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Unter OnPlayerConnect:


    new mysqlquery[700];
    format(mysqlquery, sizeof(mysqlquery), "SELECT Datum FROM TimeBan WHERE Name = '%s'",getPlayerName(playerid));
    mysql_function_query(dbhandle,mysqlquery,false,"OnPlayerTimeBanCheck","d", playerid);


    OnPlayerTimeBanCheck:


    public OnPlayerTimeBanCheck(playerid)
    {
    new timestamp = gettime();
    new rows = cache_num_rows(), bisgebannt;
    if(rows > 0)
    {
    bisgebannt = cache_get_row_int(0, 0, dbhandle);
    }
    if(gettime() < bisgebannt)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new string[64];
    format(string,sizeof(string),"Du bist noch %i Minuten gebannt!",minuten);
    SendClientMessage(playerid,C_Error,string);
    SetTimerEx("kickTimer",800,0,"i",playerid);
    }
    else
    {
    if(IsPlayerNPC(playerid))return 1;
    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnSpielerCheck","i",playerid);
    }
    return 1;
    }


    OnSpielerCheck:


    public OnSpielerCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    //Registrierung
    new sing[400];
    format(sing,sizeof(sing),"{E6E6E6}Willkommen auf {FFBE00}XXXXXXXXX.\n\n{E6E6E6}In der Datenbank wurde noch kein Account \nmit dem Name {FFBE00}%s {E6E6E6}gefunden.\nBitte lege nun ein sicheres Passwort an:",getPlayerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung",sing,"Okay","Abbrechen");
    }
    else
    {
    //Login
    new string[500];
    format(string,sizeof(string),"{E6E6E6}Willkommen zurück {FFBE00}%s{E6E6E6}, |\nGebe bitte nun dein Passwort ein:",getPlayerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Okay","Abbrechen");
    }
    return 1;
    }


    Unter OnDialogResponse:


    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password=MD5('%s')",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordCheck","i",playerid);
    }
    else
    {
    //Keine Eingabe
    SendClientMessage(playerid,COLOR_RED,"Gibt bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }


    OnPasswordCheck:


    public OnPasswordCheck(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //Acc. Laden
    SendClientMessage(playerid,C_Blau,"Erfolgreich eingeloggt.");
    sInfo[playerid][eingeloggt] = 1;
    //... usw.
    }
    else
    {
    //Passwort falsch
    SendClientMessage(playerid,C_Error,"Das eingegebene Passwort ist falsch.");
    new string[500];
    format(string,sizeof(string),"{E6E6E6}Willkommen zurück {FFBE00}%s{E6E6E6}, \nGebe bitte nun dein Passwort ein:",getPlayerName(playerid));
    //format(string,sizeof(string),"{E6E6E6}Willkommen zurück {FFBE00}%s{E6E6E6}, \nGebe bitte nun dein Passwort ein:",getPlayerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Okay","Abbrechen");
    }
    return 1;
    }

    Hallo Brotfische,


    Heute ist mir aufgefallen... Wenn ich auf mein Server connecte wird mir der Login Dialog angezeigt (Im Hintergrund sieht man ja das Meer von Los Santos (Standart)..). Soweit alles perfekt, wenn ich aber nun mein Password falsch eingebe kommt im Chat die Naricht : Das Passwort war falsch und die Kamera wird schon an den Zivispawn gesetzt + Person... nun will ich aber wenn man das Passwort eingegeben wird das die Kamera im Standart Modus bleibt.


    Ich hoffe ihr könnt mir Helfen :)


    MfG German_ScripterHD

    Okay, probier es mal so:


    Ganz Oben im Script unter den Includes:


    new sekunden_timer;
    forward sekunde();


    Dann unter OnGameModeInit:


    sekunden_timer = SetTimer("sekunde",1000,true);


    Unter OnGameModeExit:


    KillTimer(sekunden_timer);


    Und das am besten ganz unten im Script:


    public sekunde()
    {
    new string[128];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInAnyVehicle(i))continue;
    format(string,sizeof(string),"%ikm/h", Spielergeschwindigkeit(i));
    GameTextForPlayer(i, string, 1000, 3);
    }
    }
    Spielergeschwindigkeit(playerid)
    {
    new Float:x, Float:y, Float:z, Float:rtn;
    if(IsPlayerInAnyVehicle(playerid))
    {
    GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
    }
    else
    {
    GetPlayerVelocity(playerid, x, y, z);
    }
    rtn = floatsqroot(x*x + y*y + z*z);
    return floatround(rtn * 100 * 1.61);
    }

    Willst du die Tuningteile nur auf den Sultan haben?... Wenn ja probier es mal so:


    Oben im Script:


    new AdminVehicles[MAX_VEHICLES];


    Und dann unter OnDialogResponse


    if(dialogid==DIALOG_supcar)
    {
    new Float:VehPos[4], vehicleid;
    if(response)
    {
    GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
    GetPlayerFacingAngle(playerid, VehPos[3]);
    vehicleid = CreateVehicle(522,VehPos[0],VehPos[1],VehPos[2],VehPos[3],-1,-1,-1);//NRG-500 (522)
    PutPlayerInVehicle(playerid,vehicleid,0);
    AdminVehicles[vehicleid] = 1;
    SendClientMessage(playerid, COLOR_GREEN, "* Supportercar erstellt.");
    SetVehicleNumberPlate(vehicleid, "LiS-Admin");
    new VID;
    new FillUp;
    VID = GetPlayerVehicleID(playerid);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
    Gas[VID] += FillUp;
    new pname[MAX_PLAYERS];
    GetPlayerName(playerid,pname,sizeof pname);
    new adminmeldung[128];
    SendAdminMessage(0xFF0069FF,"------------------------------- [ Supportercar] -------------------------------");
    format(adminmeldung, sizeof(adminmeldung), "%s [ID: %d] hat sich ein Supporterfahrzeug gespawnt.", pname,playerid);
    SendAdminMessage(COLOR_GRAD1, adminmeldung);
    }
    else
    {
    GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
    GetPlayerFacingAngle(playerid, VehPos[3]);
    vehicleid = CreateVehicle(560,VehPos[0],VehPos[1],VehPos[2],VehPos[3],-1,-1,-1);//Sultan (560)
    AddVehicleComponent(vehicleid, 1010);
    AddVehicleComponent(vehicleid, 1028);
    AddVehicleComponent(vehicleid, 1031);
    AddVehicleComponent(vehicleid, 1033);
    PutPlayerInVehicle(playerid,vehicleid,0);
    AdminVehicles[vehicleid] = 1;
    SendClientMessage(playerid, COLOR_GREEN, "* Supportercar erstellt.");
    new VID;
    new FillUp;
    VID = GetPlayerVehicleID(playerid);
    FillUp = GetGasMax(GetVehicleModel(VID)) - Gas[VID];
    Gas[VID] += FillUp;
    new string[128];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat sich ein Supporterfahrzeug gespawnt.", sendername);
    ABroadCast(0x00F5FFFF,string,4);
    return 1;
    }
    }

    Hallo Brotfische,


    Ich möchte mit dem Befehl "/vinfo" bestimmte Daten aus der Datenbank auslesen. Undzwar wenn man z.B eintippt /vinfo 531 soll dann soll dem Spieler eine Nachricht angezeigt werden, Wem das Fahrzeug gehört und wer der letzte Fahrer dieses Fahrzeugs war.


    Nun ich steh ich auf dem Schlauch... ich weiß nicht wie das machen soll :)
    Ich hoffe ihr könnt mir helfen.


    Jetzt noch meine Datenbanken:


    Datenbank "Cars":



    Fotolink: http://www.bilder-upload.eu/sh…ile=cfae21-1433102432.png


    Struktur:



    Fotolink: http://www.bilder-upload.eu/sh…ile=2801cc-1433102541.png


    Datenbank "User":



    Fotolink: http://www.bilder-upload.eu/sh…ile=c2b185-1433102605.png



    Struktur:



    Fotolink: http://www.bilder-upload.eu/sh…ile=b1f1ba-1433102657.png


    SpielerCarsLaden: (vllt. hilft das ja)


    public OnPlayerCarsLoad(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new id=getFreeCarID();
    cInfo[id][model]=cache_get_field_content_int(i,"model",dbhandle);
    cInfo[id][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
    cInfo[id][c_x]=cache_get_field_content_float(i,"x",dbhandle);
    cInfo[id][c_y]=cache_get_field_content_float(i,"y",dbhandle);
    cInfo[id][c_z]=cache_get_field_content_float(i,"z",dbhandle);
    cInfo[id][c_r]=cache_get_field_content_float(i,"r",dbhandle);
    cInfo[id][db_id]=cache_get_field_content_int(i,"id",dbhandle);
    cInfo[id][id_x]=CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],cInfo[id][Car_Color1],cInfo[id][Car_Color2],-1);
    }
    return 1;
    }
    getFreeCarID()
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]==0)return i;
    }
    return 0;
    }


    Es wäre echt super wenn ihr mir helfen könntet :)


    MfG German_ScripterHD

    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,COLOR_RED, "Erfolgreich registriert.");
    SetPlayerScore(playerid,1);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Banned",0);
    dini_IntSet(Spielerdatei,"Adminlevel",0);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    dini_IntSet(Spielerdatei,"Geld",0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    versuch das mal so... (ungetestet)