Beiträge von MGPK-1323

    Ok, habe das ganze nun so, und das klappt nun auch, wieso weshalb auch immer. :D


    Nun habe ich das nächste Problem, ich kann das Fahrzeug nicht Aufschließen, immer nur "Abschließen.



    ocmd:lock(playerid, params[])
    {
    if(!sInfo[playerid][sEingeloggt])return SendClientMessage(playerid, COLOR_RED, "Du bist nicht eingeloggt!");


    new veh = GetPlayerVehicleID(playerid), string[144];
    format(string, sizeof(string), "Bike-ID: %d - Model-ID: %d", veh, GetVehicleModel(veh));
    SendClientMessage(playerid, COLOR_RED, string);
    if(!veh)return SendClientMessage(playerid, COLOR_RED, "Du bist in keinem Fahrzeug!");


    if(veh == sInfo[playerid][sRentBike])
    {
    if(IsValidVehicle(sInfo[playerid][sRentBike]))
    {
    GetVehicleParamsEx(sInfo[playerid][sRentBike], engine, lights, alarm, doors, bonnet, boot, objective);
    if(doors == VEHICLE_PARAMS_OFF || doors == VEHICLE_PARAMS_UNSET)
    {
    LockVehicle(sInfo[playerid][sRentBike]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast das Fahrzeug abgeschlossen.");
    return 1;
    }
    else if(doors == VEHICLE_PARAMS_ON)
    {
    UnlockVehicle(sInfo[playerid][sRentBike]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast das Fahrzeug aufgeschlossen.");
    return 1;
    }
    }
    }
    return 1;
    }



    stock LockVehicle(vehicleid)
    {
    if(IsValidVehicle(vehicleid))
    {
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, engine, lights, alarm, VEHICLE_PARAMS_ON, bonnet, boot, objective);
    }
    return 1;
    }


    stock UnlockVehicle(vehicleid)
    {
    if(IsValidVehicle(vehicleid))
    {
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, engine, lights, alarm, VEHICLE_PARAMS_OFF, bonnet, boot, objective);
    }
    return 1;
    }


    Mit freundlichen Grüßen.

    Hab da noch mal eine Frage,
    ich bekomme Dauerhaft die Fehlermeldung das ich in keinem Fahrzeug sei, aber im Chat wird gesagt dass das Fahrzeug die ID: 1 hat und auch die richtige Model-ID wird mir ausgegeben.



    ocmd:lock(playerid, params[])
    {
    if(!sInfo[playerid][sEingeloggt])return SendClientMessage(playerid, COLOR_RED, "Du bist nicht eingeloggt!");


    new veh = GetPlayerVehicleID(playerid), string[144];
    format(string, sizeof(string), "Bike-ID: %d - Model-ID: %d", veh, GetVehicleModel(veh));
    SendClientMessage(playerid, COLOR_RED, string);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_RED, "Du bist in keinem Fahrzeug!");


    if(veh == sInfo[playerid][sRentBike])
    {
    if(IsValidVehicle(sInfo[playerid][sRentBike]))
    {
    GetVehicleParamsEx(sInfo[playerid][sRentBike], engine, lights, alarm, doors, bonnet, boot, objective);
    if(doors == VEHICLE_PARAMS_OFF || doors == VEHICLE_PARAMS_UNSET)
    {
    LockVehicle(sInfo[playerid][sRentBike]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast das Fahrzeug abgeschlossen.");
    return 1;
    }
    else if(doors == VEHICLE_PARAMS_ON)
    {
    UnlockVehicle(sInfo[playerid][sRentBike]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du hast das Fahrzeug aufgeschlossen.");
    return 1;
    }
    }
    }
    return 1;
    }


    Weißt vielleicht jemand wo das Problem liegt? Model-ID ist 509 (Fahrrad)


    Mit freundlichen Grüßen.

    Hallo,
    ich möchte gerne via Spectate Abfragen ob der Spieler von "Zu Fuß" in "Fahrzeug" gegangen ist, OnPlayerStateChange.
    Mein Problem ist jetzt aber, OnPlayerStateChange fragt es ja nur bei sich selbst ab, nicht per "pID" die ich Spectaten möchte, wie ich kann es dies nun anpassen?


    Code:

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if(sInfo[playerid][sSpectate])
    {
    new pID = sInfo[playerid][sSpecPlayer];
    new vID = GetPlayerVehicleID(pID);
    new Float:carHP, string[144];


    GetVehicleHealth(vID, carHP);


    GetVehicleHealth(vID, carHP);
    format(string, sizeof(string), "~y~Fahrzeug:_~w~%d_(~b~%0.1f_~w~DL)", GetVehicleModel(vID), carHP);
    PlayerTextDrawSetString(playerid, SpectateMode[playerid][2], string); // GetVehicleSpeed


    format(string, sizeof(string), "~y~Geschwindigkeit:_~w~%d", GetVehicleSpeed(vID));
    PlayerTextDrawSetString(playerid, SpectateMode[playerid][3], string);


    PlayerSpectateVehicle(playerid, pID, SPECTATE_MODE_NORMAL);
    }
    }
    return 1;
    }

    Schau mal, du Speicherst den Listitem im: PickedID[playerid] = Listitem[playerid];
    Aber fragst ab: if (listitem == 0)


    Nutze also: if(PickedID[playerid] == 0)


    Mfg.


    // Edit:


    Im Wiki ist aber es aber auch so zufinden:

    if(dialogid == DIALOG_WEAPONS)
    {
    if(response) // If they clicked 'Select' or double-clicked a weapon
    {
    // Give them the weapon
    switch(listitem)
    {
    case 0: GivePlayerWeapon(playerid, WEAPON_DEAGLE, 14); // Give them a desert eagle
    case 1: GivePlayerWeapon(playerid, WEAPON_AK47, 120); // Give them an AK-47
    case 2: GivePlayerWeapon(playerid, WEAPON_SHOTGSPA, 28); // Give them a Combat Shotgun
    }
    }
    return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
    }

    Guten Abend, ich würde gerne HackInTosh auf meinem PC Installieren, leider finde ich keine passende Anleitung ohne einen echten Mac zu haben.


    Mein System
    Intel Core i7 - 6700K
    16GB DDR4
    Gainward GTX 1070
    MSI Z170A PC-Mate


    Hat vielleicht jemand von euch HackInTosh und würde mir helfen bei verschiedene Problemen oder hat Tipps für mich.


    Mit freundlichen Grüßen.

    Guten Abend,
    hab mal wieder ein Problem, habe ein Admin Fahrzeug System Geschrieben, welches nur sein eigenes Fahrzeug erstellen und auch nur das Fahrzeug wieder Löschen kann,
    klappt leider nicht wie gewollt. CrashDetect spuckt mir auch was aus.



    CrashDetect:


    [16:48:51] [debug] Run time error 4: "Array index out of bounds"
    [16:48:51] [debug] Attempted to read/write array element at negative index -399
    [16:48:51] [debug] AMX backtrace:
    [16:48:51] [debug] #0 0001d3f4 in public pc_cmd_delveh (0, 699504) from GameModeNew.amx


    Der Befehl:


    CMD:delveh(playerid, params[])
    {
    if(!sInfo[playerid][sEingeloggt])return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist nicht Eingeloggt!");
    if(sInfo[playerid][sAdminrang] < 4)return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du hast nicht die Rechte diesen Befehl zu benutzen!");
    if(!sInfo[playerid][sAdminDuty])return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist nicht im Admindienst!");
    if(AdminVeh[playerid] <= 0)return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du hast dir kein Adminfahrzeug Gesapwnt!");


    new playerState = GetPlayerState(playerid);
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist in keinem Fahrzeug!");
    if(playerState != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, -1, ""#TAG_ERROR"Du bist nicht der Fahrer des Fahrzeuges!");


    AdminVeh[playerid] = GetPlayerVehicleID(playerid);


    new str[144];
    format(str, sizeof(str), ""#TAG_INFO"Du hast das Fahrzeug Entfernt! (%s, %d)", VehicleNames[AdminVeh[playerid]-400], AdminVeh[playerid]);
    SendClientMessage(playerid, -1, str);


    DestroyVehicle(AdminVeh[playerid]);
    AdminVeh[playerid] = 0;
    return 1;
    }


    Fahrzeug wird hier erstellt:


    AdminVeh[playerid] = CreateVehicle(CarID, Pos[0], Pos[1], Pos[2], Pos[3], Color1, Color2, -1);
    SetVehicleNumberPlate(AdminVeh[playerid], ">>> ADMIN <<<");
    PutPlayerInVehicle(playerid, AdminVeh[playerid], 0);


    Die Veriable hab ich so Definiert:
    new AdminVeh[MAX_PLAYERS];


    Mit Freundlichen Grüßen,


    @Whice.
    Habe dies geändert so, leider werden die Fraktions Fahrzeuge dennoch nicht geladen.

    Guten Abend,
    habe mit mit Hilfe von dem Tutorial von Jeffry das Fraktions Fahrzeug System erstellt, wollte es anpassen auf die aktuelle MySQL Version R41-4.
    Das klappt auch alles, außer eine Funktion ... Er lädt die Fahrzeuge nicht aus der Datenbank aus.


    Der Public



    forward LoadFracVehicles_Data();
    public LoadFracVehicles_Data()
    {
    new rows, id, createdVehs;
    cache_get_row_count(rows);
    if(rows == 1)
    {
    for(new i = 0; i < rows; i++)
    {
    cache_get_value_name_int(0, "ID", id);
    if(id < 0 || id >= MAX_FRAC_VEHICLES)continue;


    cache_get_value_name_int(0, "ModelID", fVehicle[id][fModelID]);
    cache_get_value_name_float(0, "PosX", fVehicle[id][f_X]);
    cache_get_value_name_float(0, "PosY", fVehicle[id][f_Y]);
    cache_get_value_name_float(0, "PosZ", fVehicle[id][f_Z]);
    cache_get_value_name_float(0, "PosA", fVehicle[id][f_A]);
    cache_get_value_name_int(0, "Color1", fVehicle[id][fColor1]);
    cache_get_value_name_int(0, "Color2", fVehicle[id][fColor2]);
    cache_get_value_name_int(0, "FracID", fVehicle[id][fFrakID]);


    if(fVehicle[id][fModelID] >= 400 && fVehicle[id][fModelID] <= 611)
    {
    fVehicle[id][fvID] = CreateVehicle(fVehicle[id][fModelID], fVehicle[id][f_X], fVehicle[id][f_Y], fVehicle[id][f_Z], fVehicle[id][f_A], fVehicle[id][fColor1], fVehicle[id][fColor2], -1);
    }
    else
    {
    printf("[LoadFracVehicles_Data]: Model-ID %d existiert nicht! (ID: %d)", fVehicle[id][fModelID], id);
    }


    if(GetVehicleModel(MAX_VEHICLES -1) != 0)return print("Es können keine weiteren Fahrzeuge geladen werden! Limit erreicht! (MAX_VEHICLES)");


    createdVehs++;
    if(createdVehs == MAX_FRAC_VEHICLES)return print("Es können keine weiteren Fahrzeuge geladen werden! Limit erreicht! (MAX_FRAC_VEHICLES)");
    }
    }
    return 1;
    }

    MfG.

    Also wirklich schneller machen eher weniger, schau dir lieber mal die Autostart an und Desktiviere Dinge du nicht brauchst, wie zB, Skype, Spotify, Steam und Co.



    Thema Hybrid Platte, Lohnt sich die Kosten in einem PC den er aufrüsten will und eh eine SSD kaufen will? Ganz klar, Nein! Lass es auf die HDD bis die SSD kommt und lebe mit dem etwas längeren Start...

    Ja, hast Recht gehabt. :)


    Hab da noch mal eine Frage,
    ich mache derzeit eine Skin Auswahl wo man sich mit der Leertaste durch die Skins durch Schalten kann, wie kann ich am besten die Skins Defineiren?
    zB, Skin 1 - 10 hat man zur Auswahl, das man dann mit mit dem Drücken der Leertaste von Skin 7 zu Skin 8 Gewechselt.


    MfG.

    Moin, ich hab da mal wieder eine kleine Frage, ich lasse jetzt ein Teil meiner Datenbank vom Script aus Erstellen, leider weiß ich nicht wie es mache das "ID" auch den wert "Auto Increment" erhält ohne das ich ihn in der Datenbank festlegen muss.



    stock CreatePlayerTable()
    {
    new query[512];
    format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `Spieler` (");
    format(query, sizeof(query), "%s`ID` int(11) NOT NULL PRIMARY KEY,", query);
    format(query, sizeof(query), "%s `Spielername` varchar(24) NOT NULL DEFAULT '0',", query);
    format(query, sizeof(query), "%s `Passwort` varchar(256) NOT NULL DEFAULT '0',", query);
    format(query, sizeof(query), "%s `Geschlecht` int(1) NOT NULL DEFAULT '0',", query);
    format(query, sizeof(query), "%s `Bargeld` int(11) NOT NULL DEFAULT '0',", query);
    format(query, sizeof(query), "%s `Level` int(11) NOT NULL DEFAULT '0',", query);
    format(query, sizeof(query), "%s `Skin` int(11) NOT NULL DEFAULT '0'", query);
    format(query, sizeof(query), "%s) ENGINE=InnoDB DEFAULT CHARSET=latin1;", query);
    mysql_query(Handle, query);
    return 1;
    }


    Mit freundlichen Grüßen,

    Guten Nachmittag, hab da eine Frage an euch ... :D
    Dialog wird ausgeführt, aber der "Public OnUserLogin" wird nicht richtig aufgerufen, weißt du die Lösung, zufällig ?
    Die Nachrichten aus dem Public zB werden mir gar nicht im Chat Geschrieben, bin am Verzweilen ...
    Auch die Prints werden alle in der Konsole angezeigt...



    Das sagt die LOG bzw. logs -> plugins -> mysql

    [11:38:43] [INFO] query "SELECT * FROM `Accounts` WHERE `Spielername` = '2Fast4YouDE' AND `Passwort` = 'test'" successfully executed within 0.255 milliseconds
    [11:38:43] [INFO] Executing callback 'OnUserLogin' with 1 parameter...
    [11:38:43] [INFO] Callback successfully executed.



    case DIALOG_LOGIN:
    {
    if(response)
    {
    //if (!(MIN_LENGTH_PASSWORD <= strlen(inputtext) <= MAX_LENGTH_PASSWORD))
    if(strlen(inputtext) <= 3)
    {
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login Überschrift", ""#FARBE_WEISS"Trage dein Passwort ein!\n\nInfo: Das Passwort muss aus 4-24 Zeichen bestehen!", "Bestätigen", "Abbrechen");
    PlayerPlaySound(playerid, 1085, 0.00, 0.00, 0.00);
    }
    else
    {
    strdel(query, 0, 512);
    mysql_format(Handle, query, sizeof(query), "SELECT * FROM `Accounts` WHERE `Spielername` = '%e' AND `Passwort` = '%e'", sInfo[playerid][sName], inputtext);
    mysql_pquery(Handle, query, "OnUserLogin", "d", "playerid");
    PlayerPlaySound(playerid, 1085, 0.00, 0.00, 0.00);
    }
    return 1;
    }
    }

    forward OnUserLogin(playerid);
    public OnUserLogin(playerid)
    {
    print("1");
    new rows;
    cache_get_row_count(rows);
    print("2");
    if(rows != 1)
    {
    // Falsches Passwort
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login Überschrift", ""#FARBE_WEISS"Trage dein Passwort ein!\n\nInfo: Das Passwort muss aus 4-24 Zeichen bestehen!", "Bestätigen", "Abbrechen");
    PlayerPlaySound(playerid, 1085, 0.00, 0.00, 0.00);
    SendClientMessage(playerid, -1, "Falsches PW");
    print("3");
    }
    else
    {
    print("4");
    SendClientMessage(playerid, -1, "Positiv");
    for(new i = 0; i < sizeof(vRP_Login[]); i++)
    {
    PlayerTextDrawHide(playerid, vRP_Login[playerid][i]);
    PlayerTextDrawDestroy(playerid, vRP_Login[playerid][i]);
    }
    print("5");


    cache_get_value_name_int(0, "Skin", sInfo[playerid][sSkin]);
    cache_get_value_name_int(0, "Geschlecht", sInfo[playerid][sGeschlecht]);
    cache_get_value_name_int(0, "Geburtstag", sInfo[playerid][sGeburtstag]);
    print("6");


    cache_get_value_name_float(0, "PosX", sInfo[playerid][sSpawnX]);
    cache_get_value_name_float(0, "PosY", sInfo[playerid][sSpawnY]);
    cache_get_value_name_float(0, "PosZ", sInfo[playerid][sSpawnZ]);
    cache_get_value_name_float(0, "PosA", sInfo[playerid][sSpawnA]);
    print("7");


    TogglePlayerSpectating(playerid, false);


    SetPlayerPos(playerid, sInfo[playerid][sSpawnX], sInfo[playerid][sSpawnY], sInfo[playerid][sSpawnX]);
    SetPlayerFacingAngle(playerid, sInfo[playerid][sSpawnA]);
    SetCameraBehindPlayer(playerid);
    print("8");


    sInfo[playerid][sEingeloggt] = true;
    }
    return 1;
    }


    MfG.

    @Kaliber
    Hoffe du meinst es so. :D


    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid){ for(new i = 0; i < sizeof(ActorInfo[]); i++) { SetActorPos(ActorInfo[i][aID], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ]); } return 1;}


    Wie soll ich denn so ein "Befehl" machen um mich zu ihn zu Teleportieren?


    Einfach die Kordinanten aus dem Enum nehmen?


    MfG.



    // Edit:
    Hab da gerade noch was gefunden, hab mal mein "OnGameModeInit" Geprintet, Naja, Ergebnis ist nicht sehr toll!
    Der Print kommt nur bis "Mysql Log".



    public OnGameModeInit()
    {
    // [- GameMode Funktionen -]
    SetGameModeText("DE: Reallife");
    DisableInteriorEnterExits();


    // [- MySQL -]
    Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATA);
    mysql_log(ALL);
    print("MySQL Log");
    // [- Pickup Erstellen -]
    for(new i = 0; i < sizeof(IntInfo[]); i++)
    {
    CreateDynamicPickup(1318, 0, IntInfo[i][iEingangX], IntInfo[i][iEingangY], IntInfo[i][iEingangZ]);
    CreateDynamic3DTextLabel(IntInfo[i][iTitel], -1, IntInfo[i][iEingangX], IntInfo[i][iEingangY], IntInfo[i][iEingangZ], 15.0);
    }
    print("Pickup");
    // [- Actor Erstellen -]
    for(new i = 0; i < sizeof(ActorInfo[]); i++)
    {
    CreateActor(ActorInfo[i][aSkin], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], ActorInfo[i][aPosA]);
    SetActorVirtualWorld(ActorInfo[i][aID], 30);
    //CreateDynamicActor(ActorInfo[i][aSkin], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], ActorInfo[i][aPosA], ActorInfo[i][aInvulnerable], ActorInfo[i][aHealth], 30);
    CreateDynamic3DTextLabel(ActorInfo[i][aName], -1, ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], 15.0);
    }
    print("Actor Erstellt");
    return 1;
    }


    MfG.

    @Kaliber
    Bin gerade bissel am Verzweifeln. :D


    Hab es mit Normalen Actor Funktion Probiert, via IDs und Virtuelle Welt, Spieler in die Virtuelle Welt gesetzt beim Betreten des Interiorers, Actor wird immer noch nicht Erscheint.



    // Enum:
    enum ActorDaten{
    aID,
    aName[256],
    aSkin,
    Float:aPosX,
    Float:aPosY,
    Float:aPosZ,
    Float:aPosA,
    aHealth,
    aInvulnerable
    }
    new ActorInfo[][ActorDaten] = {
    {0, ""#FARBE_ORANGE"Akira:"#FARBE_WEISS"\nEgal was du brauchst vom Bürgerbüro\nich besorge es dir!\n\n"#FARBE_ORANGE"'N' zum Interagieren.", 186, -2159.4829, 639.6165, 1057.5861, 36.5559, 100, 1} // -> Bürger Büro Actor
    };


    // Erstellen / Laden:
    for(new i = 0; i < sizeof(ActorInfo[]); i++)
    {
    CreateActor(ActorInfo[i][aSkin], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], ActorInfo[i][aPosA]);
    SetActorVirtualWorld(ActorInfo[i][aID], 30);
    //CreateDynamicActor(ActorInfo[i][aSkin], ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], ActorInfo[i][aPosA], ActorInfo[i][aInvulnerable], ActorInfo[i][aHealth], 30);
    //CreateDynamic3DTextLabel(ActorInfo[i][aName], -1, ActorInfo[i][aPosX], ActorInfo[i][aPosY], ActorInfo[i][aPosZ], 15.0);
    }


    Hast du noch irgendeine Lösung parat? :D

    Du meinst also das ich die Actor noch eine ID zuweißen soll, passt! :)
    So, anstatt die Interior ID zu ändern, setze ich die Actor zB in die Virtuelle Welt 30, und wenn ich das Interior Betrete Neu Spawnen lasse, jetzt ist nur meine Frage, wie soll ich den Actor neu Streamen?


    MfG.