Beiträge von German_ScripterHD

    Danke, das mit dem ATM geht schonmal aber nochmal zu der Abfrage GetPlayerCars:


    Wenn ich jetzt einegebe /mycars dann kommt du hast 8 Fahrzeuge, das stimmt auch.
    Ich möchte aber das ganze noch in eine Variable formatieren. Leider kommt dann beim print in der Konsole "0" herraus...


    Code:


    format(PlayerCars[playerid],sizeof(PlayerCars[]),"%i",GetPlayerCars(playerid));
    printf("%i",PlayerCars[playerid]);

    Okay habe es jetzt so: (Bekomme diesen Fehlercode : [warning 213: tag mismatch])

    ocmd:nearestatm(playerid)
    {
    new closestID = -1,closestMeter = 10000;
    for(new i=0; i<MAX_ATMS; i++)
    {
    new Float:dist = GetPlayerDistanceFromPoint(playerid,atmInfo[i][atm_x],atmInfo[i][atm_y],atmInfo[i][atm_z]); //Fehler
    if(dist < closestMeter)
    {
    closestID = i;
    closestMeter = dist;
    }
    }
    SetPlayerCheckpoint(playerid,atmInfo[closestID][atm_x],atmInfo[closestID][atm_y],atmInfo[closestID][atm_z],3.0);
    return 1;
    }

    Vielen Dank, klappt^^


    Ich habe noch eine Frage, undzwar hat diese jetzt nichts mit diesem Theama zutun. Ich möchte wenn man /nearestatm eintippt, das der Näheset ATM angezeigt wird...


    Kann man das irgewendie in diese richtung machen?:


    for(new i=0; i<MAX_ATMS; i++)
    {
    GetPlayerDistanceFromPoint(playerid, atmInfo[i][atm_x] , atmInfo[i][atm_y], atmInfo[i][atm_z])
    //...... Und dann irgenwie mit > & < oder so :)
    }

    Also wenn ein Spieler am Autohaus ein Auto kauft, wird meine createcarforplayer Funktion ausgeführt.


    createcarforplayer(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
    {
    for(new i=0; i<sizeof(cInfo); i++)
    {
    if(cInfo[i][id_x]!=0)continue;
    cInfo[i][besitzer]=sInfo[playerid][db_id];
    cInfo[i][c_x]=x;
    cInfo[i][c_y]=y;
    cInfo[i][c_z]=z;
    cInfo[i][c_r]=r;
    cInfo[i][model]=modelid;
    cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
    tank[cInfo[i][id_x]] = 100;
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }


    saveCarToDB(playerid,carid)
    {
    new query[1000];
    format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",sInfo[playerid][db_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
    mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
    return 1;
    }

    Hall Brotfische,


    Ich möchte abfragen wie viel Autos ein Spieler hat, dazu möchte ich gerne einen Stock machen der mir dann die Anzahl der Fahrzeuge liefert. Nun weiß ich nicht genau wie ich das machen soll...


    Ich hoffe ihr könnt mir helfen :)


    MfG :thumbup:

    Hallo Brotfische,


    Ich möchte ein Navisystem scripten, nun will ich auch, das man die Hausnummer eintragen kann und dorthin ein Checkpoint gesetzt wird. Soweit funktioniert das auch, aber nur bei Hausnummer 1 und 2... dannach kommt immer die Hausnummer ist nicht verfügbar.


    Mein Testcode:

    ocmd:navitest(playerid,params[])
    {
    new hID;
    if(sscanf(params, "d", hID))return SendClientMessage(playerid, COLOR_RED, "INFO: /navitest [Hausnummer]");
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(hInfo[i][h_id]==hID)
    {
    SetPlayerCheckpoint(playerid,hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z],1.0);
    }
    else
    {
    SendClientMessage(playerid,C_Error,"Diese Hausnummer ist nicht verfügbar.");
    }
    break;
    }
    return 1;
    }


    Ich hoffe ihr könnt mir helfen :)


    MfG :thumbup:

    public OnHausesLoad()
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields);
    if(!num_rows)return 1;
    for(new i = 0; i < MAX_HOUSES; i++)
    {
    new id = getFreeHausID();
    new string[24];
    hInfo[id][h_x] = cache_get_field_content_float(i, "h_x", dbhandle);
    hInfo[id][h_y] = cache_get_field_content_float(i, "h_y", dbhandle);
    hInfo[id][h_z] = cache_get_field_content_float(i, "h_z", dbhandle);
    if(hInfo[id][h_x] == 0 && hInfo[id][h_y] == 0 && hInfo[id][h_z] == 0)continue;
    hInfo[id][ih_x] = cache_get_field_content_float(i, "ih_x", dbhandle);
    hInfo[id][ih_y] = cache_get_field_content_float(i, "ih_y", dbhandle);
    hInfo[id][ih_z] = cache_get_field_content_float(i, "ih_z", dbhandle);
    hInfo[id][h_interior] = cache_get_field_content_int(i, "h_interior", dbhandle);


    cache_get_field_content(i, "besitzer", string);
    format(hInfo[id][h_besitzer], sizeof(string), string);


    hInfo[id][h_id] = cache_get_field_content_int(i, "id", dbhandle);
    hInfo[id][h_preis] = cache_get_field_content_int(i, "h_preis", dbhandle);
    hInfo[id][h_mietpreis] = cache_get_field_content_int(i, "h_mietpreis", dbhandle);
    hInfo[id][h_maxmieter] = cache_get_field_content_int(i, "h_maxmieter", dbhandle);
    new printstring[90];
    format(printstring,sizeof(printstring),"i = %d - id = %d - MySQLID: %d - Besitzer: %s", i, id, hInfo[id][h_id],hInfo[id][h_besitzer]);
    print(printstring);
    CreatePickup(19523,1,hInfo[id][ih_x],hInfo[id][ih_y],hInfo[id][ih_z],id);
    }


    print("Zweite Schleife:");


    new highid = getFreeHausID();
    for(new i = 0; i < highid; i++)
    {
    updateHaus(i);
    }
    return 1;
    }

    @ SLaYz,


    Das funkioiert irgenwie garnicht...


    Es geht nur so... aber dann komme ich halt am anderen Haus raus...

    ocmd:enterexit(playerid,params[])
    {
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!IsPlayerInRangeOfPoint(playerid,8,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]))continue;
    SetPlayerPos(playerid, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!hInfo[i][h_id])continue;
    if(hInfo[i][ih_x]==0.0)continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]))continue;
    SetPlayerPos(playerid,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]);
    SetPlayerInterior(playerid,hInfo[i][h_interior]);
    SetPlayerVirtualWorld(playerid,i);
    if(IsPlayerMieter(playerid,hInfo[i][h_id])) SendClientMessage(playerid,COLOR_GRAY,"Mieter...");
    return 1;
    }
    return 1;
    }


    Vllt. geht das auch so nicht, weil ich seit vorhin (habs erst jetzt gemerkt) Errors in der Mysql_Log bekomme.

    Spoiler anzeigen

    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('8')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('8')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('8')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('9')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('9')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('9')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('10')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('10')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('10')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('11')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('11')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('11')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('12')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('12')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('12')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('13')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('13')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('13')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('14')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('14')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('14')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('15')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('15')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('15')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('16')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('16')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('16')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('17')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('17')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('17')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('18')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('18')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('18')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('19')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('19')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('19')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('20')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('20')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('20')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('21')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('21')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('21')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('22')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('22')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('22')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('23')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('23')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('23')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('24')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('24')
    [21:24:41] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('24')

    Spoiler anzeigen
    ........

    Spoiler anzeigen
    [21:24:42] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('498')
    [21:24:42] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('498')
    [21:24:42] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('498')
    [21:24:42] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('499')
    [21:24:42] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('499')
    [21:24:42] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('499')

    Spoiler anzeigen
    Also es startet bei 8... und hört bei 499 auf. Kleine Info :) Es werden momentan genau 8 Häuser die geladen werden da momentan nur 8 Häuser in der Datenbank eingetragen wurden.

    Setzt von dem jewaligen Haus die HausID als Virtuellewelt und prüfe beim Ausgang, ob der Spieler in der nähe des jewaligen Ausgangs mit der Virtuellenwelt ist.
    Oder erstelle eine Spieler-Variabele mit der HausID die dort Zwichengespeicher wird, und rufe diese dann ab.


    Ich verstehe nicht ganz wie du das mit "Setzt von dem jewaligen Haus die HausID als Virtuellewelt und prüfe beim Ausgang..." meinst... ?(

    Erstellst du es an der gleichen Position aber in einer anderen virtuellen Welt? Oder wie unterscheidest du es?


    Also, ich habe das erste Haus mit dem Type "16" erstellt und dann ein paar anderen mit anden Typen und später an einer anderen Stelle habe ich wieder ein Haus mit Type "16" erstell. Wenn ich jetzt in das erste Haus reingege und drücke Enter (ocmd_enterexit(playerid,""); wird dort ausgeführt) komme ich an dem ersten Haus raus, so wie es soll. Nun wenn ich in das Zweite Haus reingehe, komme ich am ersten Haus raus.


    Also ich erstelle beide in der Virtuelworld "0"


    MfG :thumbup:

    Hallo Brotifsche


    Ich bin heute mit meine Haussystem soweit ferig geworden, nun habe ich das Probelm wenn ich ein Haus mit einem Interior erstelle, was ich davor schonmal irgenwo erstellt habe, komme ich nicht an dem Haus raus, sondern an dem anderen Haus.


    Code:


    ocmd:chaus(playerid, params[])
    {
    if(!isAdmin(playerid, 1337))return SendClientMessage(playerid, COLOR_RED, "Dein Adminrang ist zu niedrig.");
    new Float:xc, Float:yc, Float:zc;
    GetPlayerPos(playerid, xc, yc, zc);
    new preis,type,mietpreis,maxmieter;
    if(sscanf(params,"iiii",type, preis, mietpreis, maxmieter)) return SendClientMessage(playerid,COLOR_WHITE,"Verwende: /chaus [Typ] [Preis] [Mietpreis] [Max. Mieter]");
    new id=getFreeHausID();
    hInfo[id][h_x]=xc;
    hInfo[id][h_y]=yc;
    hInfo[id][h_z]=zc;
    hInfo[id][ih_x]=gHausType[type][haus_x];
    hInfo[id][ih_y]=gHausType[type][haus_y];
    hInfo[id][ih_z]=gHausType[type][haus_z];
    hInfo[id][h_interior]=gHausType[type][haus_interior];
    format(hInfo[id][h_besitzer],25,"Staat");
    hInfo[id][h_preis]=preis;
    hInfo[id][h_mietpreis] = mietpreis;
    hInfo[id][h_maxmieter] = maxmieter;
    updateHaus(id);
    //In Datenbank abspeichern
    new query[256];
    format(query, sizeof(query),
    "INSERT INTO houses (h_x, h_y, h_z, ih_x, ih_y, ih_z, h_interior, h_preis, h_mietpreis, h_maxmieter) VALUES ('%f', '%f', '%f', '%f', '%f', '%f', '%i', '%i', '%i', '%i')",
    xc, yc, zc ,hInfo[id][ih_x] ,hInfo[id][ih_y] ,hInfo[id][ih_z], hInfo[id][h_interior] ,hInfo[id][h_preis], hInfo[id][h_mietpreis], hInfo[id][h_maxmieter]);
    mysql_function_query(dbhandle, query, true, "OnHausCreated", "i", id);
    return 1;
    }


    ocmd:enterexit(playerid,params[])
    {
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!IsPlayerInRangeOfPoint(playerid,8,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]))continue;
    SetPlayerPos(playerid, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!hInfo[i][h_id])continue;
    if(hInfo[i][ih_x]==0.0)continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]))continue;
    SetPlayerPos(playerid,hInfo[i][ih_x],hInfo[i][ih_y],hInfo[i][ih_z]);
    SetPlayerInterior(playerid,hInfo[i][h_interior]);
    SetPlayerVirtualWorld(playerid,i);
    if(IsPlayerMieter(playerid,hInfo[i][h_id])) SendClientMessage(playerid,COLOR_GRAY,"Mieter...");
    return 1;
    }
    return 1;
    }



    Ich hoffe ihr könnt mir helfen :)


    MfG :thumbup:

    Hall Brotfische,


    Wenn ich mein Server starte steht das im mysql_log:


    [15:58:54] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('0')
    [15:58:54] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('1')
    [15:58:54] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('2')
    [15:58:54] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('3')
    [15:58:54] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('4')
    [15:58:54] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('5')
    [15:58:54] [WARNING] CMySQLResult::GetRowData - invalid row ('0') or field index ('6')


    Diese Narichten kommen um genau zusein 3260 mal, wenn ich den Server einmal starte.


    Leider weiß ich auch nicht an was das liegt, vllt. könnt ihr mir ja helfen...


    MfG :thumbup: