Beiträge von Mr.Pawn

    Guten Abend,


    ich habe das Problem, dass ich einen Runtime Error bekomme, sodern ein Fahrzeug in der Garage steht.



    command(garage, playerid, params[])
    {
    new Float:x, Float:y, Float:z, string[128], mainstring[2000];
    GetPlayerPos(playerid, x, y, z);
    for(new i=0;i<MAX_HAUS;i++){
    if(HausInfo[i][h_erstellt] == 1){
    if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){
    for(new ii=0;ii<3;ii++){
    if(Spieler[playerid][pHaus][ii] == i){
    //SetPVarInt(playerid, "Haussss", i);
    //printf("Haussss = %d", GetPVarInt(playerid, "Haussss"));
    if(IsPlayerInAnyVehicle(playerid)){
    //ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch");
    if(HausInfo[i][g_slot][0] == 0 && HausInfo[i][g_fahrzeug][0] == -1){
    HausInfo[i][g_slot][0] = 1;
    HausInfo[i][g_fahrzeug][0] = GetVehicleModel(GetPlayerVehicleID(playerid));
    DestroyVehicle(GetPlayerVehicleID(playerid));
    return 1;
    }
    else if(HausInfo[i][g_slot][1] == 0 && HausInfo[i][g_fahrzeug][1] == -1){
    HausInfo[i][g_slot][1] = 1;
    HausInfo[i][g_fahrzeug][1] = GetVehicleModel(GetPlayerVehicleID(playerid));
    DestroyVehicle(GetPlayerVehicleID(playerid));
    return 1;
    }
    else if(HausInfo[i][g_slot][2] == 0 && HausInfo[i][g_fahrzeug][2] == -1){
    HausInfo[i][g_slot][2] = 1;
    HausInfo[i][g_fahrzeug][2] = GetVehicleModel(GetPlayerVehicleID(playerid));
    DestroyVehicle(GetPlayerVehicleID(playerid));
    return 1;
    }
    }
    else{
    for(new g=0;g<3;g++){
    if(HausInfo[i][g_slot][g] == 0 && HausInfo[i][g_fahrzeug][g] == -1){
    format(string, sizeof(string), "Frei\n");
    strcat(mainstring, string);
    }
    else if(HausInfo[i][g_slot][g] != 0 && HausInfo[i][g_fahrzeug][g] != -1){
    format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][g], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][g]) - 400]);
    strcat(mainstring, string);
    }
    }
    }
    }
    }
    }
    }
    }
    ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", mainstring, "Rausholen", "Abbruch");
    return 1;
    }



    forward LoadHouseSystem();
    public LoadHouseSystem()
    {
    new rows, fields, HouseText[250], content[120];
    cache_get_data(rows, fields);
    if(rows)
    {
    for(AktuelleHaus = 0; AktuelleHaus < rows; AktuelleHaus++)
    {
    HausInfo[AktuelleHaus][h_erstellt] = 1;
    HausInfo[AktuelleHaus][h_owned] = cache_get_field_content_int(AktuelleHaus,"h_owned");
    cache_get_field_content(AktuelleHaus,"h_besitzer", content);
    format(HausInfo[AktuelleHaus][h_besitzer], 128, "%s", content);
    HausInfo[AktuelleHaus][h_preis] = cache_get_field_content_int(AktuelleHaus,"h_preis");
    HausInfo[AktuelleHaus][h_x] = cache_get_field_content_float(AktuelleHaus,"h_x");
    HausInfo[AktuelleHaus][h_y] = cache_get_field_content_float(AktuelleHaus,"h_y");
    HausInfo[AktuelleHaus][h_z] = cache_get_field_content_float(AktuelleHaus,"h_z");
    HausInfo[AktuelleHaus][hk_x] = cache_get_field_content_float(AktuelleHaus,"hk_x");
    HausInfo[AktuelleHaus][hk_y] = cache_get_field_content_float(AktuelleHaus,"hk_y");
    HausInfo[AktuelleHaus][hk_z] = cache_get_field_content_float(AktuelleHaus,"hk_z");
    HausInfo[AktuelleHaus][hr_x] = cache_get_field_content_float(AktuelleHaus,"hr_x");
    HausInfo[AktuelleHaus][hr_y] = cache_get_field_content_float(AktuelleHaus,"hr_y");
    HausInfo[AktuelleHaus][hr_z] = cache_get_field_content_float(AktuelleHaus,"hr_z");
    HausInfo[AktuelleHaus][h_garage] = cache_get_field_content_int(AktuelleHaus,"h_garage");
    HausInfo[AktuelleHaus][g_x] = cache_get_field_content_float(AktuelleHaus,"g_x");
    HausInfo[AktuelleHaus][g_y] = cache_get_field_content_float(AktuelleHaus,"g_y");
    HausInfo[AktuelleHaus][g_z] = cache_get_field_content_float(AktuelleHaus,"g_z");
    HausInfo[AktuelleHaus][i_x] = cache_get_field_content_float(AktuelleHaus,"i_x");
    HausInfo[AktuelleHaus][i_y] = cache_get_field_content_float(AktuelleHaus,"i_y");
    HausInfo[AktuelleHaus][i_z] = cache_get_field_content_float(AktuelleHaus,"i_z");
    HausInfo[AktuelleHaus][h_locked] = cache_get_field_content_int(AktuelleHaus,"h_locked");
    HausInfo[AktuelleHaus][i_int] = cache_get_field_content_int(AktuelleHaus,"i_int");
    HausInfo[AktuelleHaus][i_vw] = cache_get_field_content_int(AktuelleHaus,"i_vw");



    if(HausInfo[AktuelleHaus][h_garage] == 1){
    HausInfo[AktuelleHaus][g_pickup] = CreateDynamicPickup(1239, 1, HausInfo[AktuelleHaus][g_x], HausInfo[AktuelleHaus][g_y], HausInfo[AktuelleHaus][g_z]);
    }
    if(HausInfo[AktuelleHaus][h_owned] == 0){
    format(HouseText, sizeof(HouseText), "{FFFFFF} Diese Immobilie steht zum Verkauf.\nKosten: %d Euro\nZum Interagieren nutze\ndas Verkaufsschild", HausInfo[AktuelleHaus][h_preis]);
    HausInfo[AktuelleHaus][h_text] = Create3DTextLabel(HouseText, COLOR_WHITE, HausInfo[AktuelleHaus][h_x], HausInfo[AktuelleHaus][h_y], HausInfo[AktuelleHaus][h_z], 10, 0);
    HausInfo[AktuelleHaus][h_obj] = CreateObject(19470, HausInfo[AktuelleHaus][hk_x], HausInfo[AktuelleHaus][hk_y], HausInfo[AktuelleHaus][hk_z], HausInfo[AktuelleHaus][hr_x], HausInfo[AktuelleHaus][hr_y], HausInfo[AktuelleHaus][hr_z]);
    }
    else if(HausInfo[AktuelleHaus][h_owned] == 1){
    format(HouseText,sizeof(HouseText),"{FFFFFF} Diese Immobilie steht nicht zum Verkauf.", HausInfo[AktuelleHaus][h_besitzer], AktuelleHaus);
    HausInfo[AktuelleHaus][h_text] = Create3DTextLabel(HouseText, COLOR_WHITE, HausInfo[AktuelleHaus][h_x], HausInfo[AktuelleHaus][h_y], HausInfo[AktuelleHaus][h_z], 10, 0);
    }
    }
    }
    printf("[HAUSSYSTEM]: Es wurden %d Häuser geladen.", rows);
    return 1;
    }


    Fehler:


    Aktuell wird leider auch nichts mehr geladen, also nichts mehr angezeigt im Spiel.


    Der Fehler bei /garage wenn ein Fahrzeug drin ist:


    Code
    [debug] Run time error 4: "Array index out of bounds"
    [debug]  Accessing element at negative index -400
    [debug] AMX backtrace:
    [debug] #0 0002ad60 in public cmd_garage (0, 13685620) from selfmade.amx
    [debug] #1 native CallLocalFunction () from samp-server.exe
    [debug] #2 00000720 in public OnPlayerCommandText (0, 13685588) from selfmade.amx

    Wie nutzt man den UNIX Timestamp eig. richtig und für was ist dieser da ?
    Man nutzt ihn ja z.B. für einen TimeBan oder sowas. Jedoch, wie nutzt man den ? Er gibt ja die Sekunden aus und keine Zeit oder sowas..
    Bitte um kurze Erläuterung



    Grüße

    So hab ich es jetzt und das Script sagt, Nein.



    command(garage, playerid, params[])
    {
    new Float:x, Float:y, Float:z, string[128], mainstring[2000];
    GetPlayerPos(playerid, x, y, z);
    for(new i=0;i<MAX_HAUS;i++){
    if(HausInfo[i][h_erstellt] == 1){
    if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){
    for(new ii=0;ii<3;ii++){
    if(Spieler[playerid][pHaus][ii] == i){
    SetPVarInt(playerid, "Haussss", i);
    if(IsPlayerInAnyVehicle(playerid)){
    ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch");
    }
    else{
    for(new g=0;g<3;g++){
    if(HausInfo[i][g_slot][g] == 0 && HausInfo[i][g_fahrzeug][g] == 0){
    format(string, sizeof(string), "Frei\n");
    strcat(mainstring, string);
    }
    else if(HausInfo[i][g_slot][g] != 0 && HausInfo[i][g_fahrzeug][g] != 0){
    format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][g], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][g]) - 400]);
    strcat(mainstring, string);
    }
    }
    }
    }
    }
    }
    }
    }
    ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", mainstring, "Rausholen", "Abbruch");
    return 1;
    }


    Code
    [debug] Run time error 4: "Array index out of bounds"
    [debug]  Accessing element at negative index -400
    [debug] AMX backtrace:
    [debug] #0 0002ad60 in public cmd_garage (0, 13685620) from selfmade.amx
    [debug] #1 native CallLocalFunction () from samp-server.exe
    [debug] #2 00000720 in public OnPlayerCommandText (0, 13685588) from selfmade.amx

    So funktioniert jetzt alles, eine Frage ist jedoch noch da. Im Dialog zeigt er mir nur eine Zeile an, ist da bei der Schleife was falsch wo es um das Fahrzeug geht ?



    command(garage, playerid, params[])
    {
    new Float:x, Float:y, Float:z, string[128], mainstring[2000];
    GetPlayerPos(playerid, x, y, z);
    for(new i=0;i<MAX_HAUS;i++){
    if(HausInfo[i][h_erstellt] == 1){
    if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){
    for(new ii=0;ii<3;ii++){
    printf("%d pHaus", Spieler[playerid][pHaus][ii]);
    if(Spieler[playerid][pHaus][ii] == i){
    if(IsPlayerInAnyVehicle(playerid)){
    ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch");
    }
    else{
    for(new g=0;g<3;g++){
    if(HausInfo[i][g_slot][ii] == 0 && HausInfo[i][g_fahrzeug][ii] == 0){
    format(string, sizeof(string), "Frei\n");
    strcat(mainstring, string);
    }
    else if(HausInfo[i][g_slot][ii] != 0 && HausInfo[i][g_fahrzeug][ii] != 0){
    format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][ii], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][ii]) - 400]);
    strcat(mainstring, string);
    }
    }
    ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", string, "Rausholen", "Abbruch");
    }
    }
    }
    }
    }
    }
    return 1;
    }

    <p>
    </p>

    Wieso sagt er mir immer, dass ich keine Befugnisse habe, trotz ich den Schlüssel ganz klar auf einen der pHaus Slots habe. pHaus wurde mit pHaus[3] erstellt.


    command(garage, playerid, params[]){ new Float:x, Float:y, Float:z, string[128], mainstring[2000]; GetPlayerPos(playerid, x, y, z); for(new i=0;i<MAX_HAUS;i++){ if(HausInfo[i][h_erstellt] == 1){ printf("%d", i); if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){ for(new ii=0;ii<3;ii++){ if(Spieler[playerid][pHaus][ii] == i){ if(IsPlayerInAnyVehicle(playerid)){ ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch"); } else{ for(new g=0;g<3;g++){ if(HausInfo[i][g_slot][ii] == 0 && HausInfo[i][g_fahrzeug][ii] == 0){ format(string, sizeof(string), "Frei\n"); strcat(mainstring, string); } else if(HausInfo[i][g_slot][ii] != 0 && HausInfo[i][g_fahrzeug][ii] != 0){ format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][ii], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][ii]) - 400]); strcat(mainstring, string); } } ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", string, "Rausholen", "Abbruch"); } } } return SendClientMessage(playerid, -1, ""#SERVERF" Du hast keine Befugniss für diese Garage!"); } } } return 1;}

    Wieso sagt er mir immer, dass ich keine Befugnisse habe, trotz ich den Schlüssel ganz klar auf einen der pHaus Slots habe. pHaus wurde mit pHaus[3] erstellt.



    command(garage, playerid, params[])
    {
    new Float:x, Float:y, Float:z, string[128], mainstring[2000];
    GetPlayerPos(playerid, x, y, z);
    for(new i=0;i<MAX_HAUS;i++){
    if(HausInfo[i][h_erstellt] == 1){
    printf("%d", i);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){
    for(new ii=0;ii<3;ii++){
    if(Spieler[playerid][pHaus][ii] == i){
    if(IsPlayerInAnyVehicle(playerid)){
    ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch");
    }
    else{
    for(new g=0;g<3;g++){
    if(HausInfo[i][g_slot][ii] == 0 && HausInfo[i][g_fahrzeug][ii] == 0){
    format(string, sizeof(string), "Frei\n");
    strcat(mainstring, string);
    }
    else if(HausInfo[i][g_slot][ii] != 0 && HausInfo[i][g_fahrzeug][ii] != 0){
    format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][ii], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][ii]) - 400]);
    strcat(mainstring, string);
    }
    }
    ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", string, "Rausholen", "Abbruch");
    }
    }
    }
    return SendClientMessage(playerid, -1, ""#SERVERF" Du hast keine Befugniss für diese Garage!");
    }
    }
    }
    return 1;
    }

    Ich möchte dir ja keine Vorurteile stellen,aber es liegt zu 100 Prozent an dir,dass dein Projekt nicht gut läuft.Ich persönlich zocke bei euch wegen einem gewissen Teammitglied nicht was denkt alles übernehmen zu können.

    Ist leider so. Ihr habt euer letztes Projekt gegen die Wand gefahren und denkt(vielleicht) das es durch ein neues besser wird, niemals. Das Script ist einfach das gleiche, man kennt es.


    B2T:
    Es ist eher schleppend in meinen Augen. Überall wird gejammert. Die Deutschen sind eher die Meinung, 1000 kleine Server aufzubauen, statt einen großen. Mensch, dann macht man halt ein Script für Reallife und Roleplay. Verschiedene Welten und fertig. Aber aktuell ist es einfach so, dann es nur geflame gibt, egal bei welchem Server.


    Grüße

    Wieso wird bei mir immer nur ein Object erstellt ?



    forward LadeBlitzerSystem();
    public LadeBlitzerSystem(){
    new rows, fields, result[128], Blitzerr = 0;
    cache_get_data(rows, fields);
    if(rows){
    while(Blitzerr < rows){
    if(Blitzerr < MAX_BLITZER){
    Blitzer[Blitzerr][b_x] = cache_get_field_content_float(0, "x");
    Blitzer[Blitzerr][b_y] = cache_get_field_content_float(0, "y");
    Blitzer[Blitzerr][b_z] = cache_get_field_content_float(0, "z");
    Blitzer[Blitzerr][b_a] = cache_get_field_content_float(0, "a");
    Blitzer[Blitzerr][b_gesch] = cache_get_field_content_int(0, "geschwindigkeit");
    cache_get_field_content(0, "position", result);
    format(Blitzer[Blitzerr][b_ort], 100, "%s", result);
    if(Blitzer[Blitzerr][b_x] != 0.0){
    Blitzer[Blitzerr][b_erstellt] = 1;
    Blitzer[Blitzerr][b_obj] = CreateDynamicObject(18880,Blitzer[Blitzerr][b_x],Blitzer[Blitzerr][b_y],Blitzer[Blitzerr][b_z]-2.0,0.0,0.0,Blitzer[Blitzerr][b_a]+180);
    }
    Blitzerr++;
    }
    }
    }
    printf("[BLITZERSYSTEM] Es wurden %d Blitzer geladen.", rows);
    return 1;
    }

    Du machst den Apacheserver an, öffnest deinen Browser und gibst in der Adressleiste einfach "localhost/phpmyadmin" ein.
    Oder du lädst dir einfach Navicat Lite runter, gibst die Datenbank Daten an und kannst dann ebenfalls drauf zugreifen.