Beiträge von a6150

    Du speicherst beim Gamemodeinit den Namen des Spielers in einem String.
    Wenn du nur den Namen hast, aber nicht die ID kannst du dann mit einer for Schleife alle Spieler durchgehen und Überprüfen ob den Name übereinstimmt.

    Sehr gut, hast du Skype??
    // IMMER NOCH KEINE LÖSUNG GEFUNDEN!


    ////////////////// HAUS - SYSTEM ///////////////
    stock CreateHouse(Float:x,Float:y,Float:z,preis,inhaber[32],interior)
    {
    new query[256];
    format(query, sizeof(query), "INSERT INTO `houses` (`x`, `y`,`z`,`preis`,`inhaber`,`interior`) VALUES ('%f', '%f','%f','%d','%s','%d')",x,y,z,preis,inhaber,interior);
    mysql_query(query);
    LoadHaus(mysql_insert_id());
    }
    ocmd:hcreate(playerid,params[])
    {
    if(GetPVarInt(playerid,"Adminlevel")< 5)
    {
    SendClientMessage(playerid,ROT,"Sie sind nicht befugt diesen Befehl zu benutzen!");
    }
    else
    {
    new hauspreis;
    new interior;
    if(sscanf(params,"dd",hauspreis,interior))
    {
    return SendClientMessage(playerid,WEISS,"Benutze:/hcreate [preis][interior]");
    }
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    CreateHouse(x,y,z,hauspreis,"Zu verkaufen",interior);
    }
    return 1;
    }

    stock LoadHaus(hausid)
    {
    new query[500];
    format(query, sizeof(query), "SELECT * FROM `houses` WHERE id='%d'",hausid);
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row(query))
    {
    sscanf(query, "p<|>is[24]fffdddds[24]s[24]s[24]s[24]d",
    HausInfo[hausid][hID],
    HausInfo[hausid][haus_inhaber],
    HausInfo[hausid][haus_x],
    HausInfo[hausid][haus_y],
    HausInfo[hausid][haus_z],
    HausInfo[hausid][haus_preis],
    HausInfo[hausid][haus_interior],
    HausInfo[hausid][haus_miete],
    HausInfo[hausid][haus_mietbar],
    HausInfo[hausid][mieter][0],
    HausInfo[hausid][mieter][1],
    HausInfo[hausid][mieter][2],
    HausInfo[hausid][mieter][3],
    HausInfo[hausid][haus_mietbar],
    HausInfo[hausid][haus_virtualworld]);
    CreateHouseOnMap(hausid);
    mysql_free_result();
    printf(query);
    }
    return 1;
    }


    stock CreateHouseOnMap(hausid)
    {
    new Text[100];
    if(HausInfo[hausid][haus_miete] == 1)
    {
    format(Text,sizeof(Text),"Besitzer: %s",HausInfo[hausid][haus_inhaber]);
    HausInfo[hausid][haus_symbol] = CreateDynamicPickup(1239, 1, HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z], -1);//Enter
    }else{
    printf("works");
    format(Text,sizeof(Text),"Das Haus ist zu verkaufen\nPreis: %d$\n/buyhouse - Haus kaufen", HausInfo[hausid][haus_preis]);
    HausInfo[hausid][haus_symbol] = CreateDynamicPickup(1273, 1, HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z], -1);//Enter
    }
    HausInfo[hausid][haus_label] = Create3DTextLabel(Text,WEISS, HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z], 15, 0);
    return 1;
    }


    P.S Skript speichert das Haus korrekt in die Datenbank. Skript lädt dieses auch korrekt, jedoch scheint der Server dabei "abzustürzen". Innerhalb von LoadHaus() wird kein einziges printf() ausgeführt und auch andere Pickups ( z.B LSPD Enter) funktionieren danach nicht mehr. Wenn ich LoadHaus() bei GameModeInit ausführe, so werden gar keine Pickups mehr geladen!

    Nach Slash's Hilfe sehen die Befehle anders aus. Trotzdem funktioniert das System nicht. Nach "x" hört es auf.


    stock CreateHouse(Float:x,Float:y,Float:z,preis,inhaber[32],interior)
    {
    new query[256];
    format(query, sizeof(query), "INSERT INTO `houses` (`x`, `y`,`z`,`preis`,`inhaber`,`interior`) VALUES ('%f', '%f','%f','%d','%s','%d')",x,y,z,preis,inhaber,interior);
    mysql_query(query);
    new test[32];
    format(test,sizeof(test),"%d",mysql_insert_id());
    printf(test);
    LoadHaus(mysql_insert_id());
    }
    ocmd:hcreate(playerid,params[])
    {
    if(GetPVarInt(playerid,"Adminlevel")< 5)
    {
    SendClientMessage(playerid,ROT,"Sie sind nicht befugt diesen Befehl zu benutzen!");
    }
    else
    {
    new hauspreis;
    new interior;
    if(sscanf(params,"dd",hauspreis,interior))
    {
    return SendClientMessage(playerid,WEISS,"Benutze:/hcreate [preis][interior]");
    }
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    CreateHouse(x,y,z,hauspreis,"Zu verkaufen",interior);
    }
    return 1;
    }
    stock LoadHaus(hausid)
    {
    new data[50],query[100];
    format(query,sizeof(query),"SELECT * FROM `houses` WHERE `id`='%d'",hausid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())
    {
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(data,"x");
    HausInfo[hausid][haus_x]=floatstr(data);
    mysql_fetch_field_row(data,"y");
    HausInfo[hausid][haus_y]=floatstr(data);
    mysql_fetch_field_row(data,"z");
    HausInfo[hausid][haus_z]=floatstr(data);//söllte so funktionieren. MOMENT ^^ Siehst du das? sieht so aus als hat er nach X kein bock mehr. aber wieso?
    mysql_fetch_field_row(data,"preis");
    HausInfo[hausid][haus_preis]=strval(data);
    mysql_fetch_field_row(data,"interior");
    HausInfo[hausid][haus_interior]=strval(data);
    mysql_fetch_field_row(data,"miete");
    HausInfo[hausid][haus_miete]=strval(data);
    mysql_fetch_field_row(data,"mieter1");
    format(HausInfo[hausid][mieter][0],MAX_PLAYER_NAME,"%s",data);
    mysql_fetch_field_row(data,"mieter2");
    format(HausInfo[hausid][mieter][1],MAX_PLAYER_NAME,"%s",data);
    mysql_fetch_field_row(data,"mieter3");
    format(HausInfo[hausid][mieter][2],MAX_PLAYER_NAME,"%s",data);
    mysql_fetch_field_row(data,"mieter4");
    format(HausInfo[hausid][mieter][3],MAX_PLAYER_NAME,"%s",data);
    mysql_fetch_field_row(data,"mietbar");
    HausInfo[hausid][haus_mietbar]=strval(data);
    mysql_fetch_field_row(data,"virtualworld");
    HausInfo[hausid][haus_virtualworld]=strval(data);
    mysql_fetch_field_row(data,"inhaber");
    format(HausInfo[hausid][haus_inhaber],MAX_PLAYER_NAME,"%s",data);
    }
    }
    if(!strcmp(HausInfo[hausid][haus_inhaber],"Zu verkaufen"))
    {
    HausInfo[hausid][haus_symbol] = CreatePickup(1273 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
    new label[192];
    format(label,sizeof(label),"HAUS ID: %d\nZu verkaufen\nPreis:%d",hausid,HausInfo[hausid][haus_preis]);
    HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
    }
    else
    {
    HausInfo[hausid][haus_symbol] = CreatePickup(1272 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
    new label[192];
    new freiraum[MAX_HAUS];
    for(new i=0;i<4;i++)
    {
    new besetzt[MAX_HAUS];
    if(!strcmp(HausInfo[hausid][mieter][i],""))
    besetzt[hausid]++;
    freiraum[hausid]=4-besetzt[hausid];
    }
    if(freiraum[hausid] < 0)return freiraum[hausid]=0;
    format(label,sizeof(label),"HAUS ID: %d\nBesitzer:%s\nMiete:%d\nFreie Räume:%d",hausid,HausInfo[hausid][haus_inhaber],HausInfo[hausid][haus_miete],freiraum[hausid]);
    HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
    }
    mysql_free_result();
    return 1;
    }

    Sehr geehrte Breadfish User,
    ich habe leider ein Problem mit meinem Haussystem. Es wird bei LoadHaus(hausid) entweder gar keine Abfrage gemacht oder das Pickup erscheint einfach nicht.


    P.S mysql_getfloat erfordert bei dem 4. Argument einen String, daher die Umwandlung.


    ////////////////// HAUS - SYSTEM ///////////////
    stock CreateHouse(Float:x,Float:y,Float:z,preis,inhaber[32],interior)
    {
    new query[256];
    format(query, sizeof(query), "INSERT INTO `houses` (`x`, `y`,`z`,`preis`,`inhaber`,`interior`) VALUES ('%d', '%d','%d','%d','%s','%d')",x,y,z,preis,inhaber,interior);
    mysql_query(query);
    return LoadHaus(mysql_insert_id());
    }
    ocmd:hcreate(playerid,params[])
    {
    if(GetPVarInt(playerid,"Adminlevel")< 5)
    {
    SendClientMessage(playerid,ROT,"Sie sind nicht befugt diesen Befehl zu benutzen!");
    }
    else
    {
    new hauspreis;
    new interior;
    if(sscanf(params,"dd",hauspreis,interior))
    {
    return SendClientMessage(playerid,WEISS,"Benutze:/hcreate [preis][interior]");
    }
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    CreateHouse(x,y,z,hauspreis,"Zu verkaufen",interior);
    }
    return 1;
    }
    stock LoadHaus(hausid)
    {
    new haus[32];
    format(haus,sizeof(haus),"%d",hausid);
    HausInfo[hausid][haus_x] = mysql_GetFloat("houses","x","id",haus);
    HausInfo[hausid][haus_y] = mysql_GetFloat("houses","y","id",haus);
    HausInfo[hausid][haus_z] = mysql_GetFloat("houses","z","id",haus);
    HausInfo[hausid][haus_preis] = mysql_GetInt("houses","preis","id",haus);
    //HausInfo[hausid][haus_verkauft] = mysql_GetInt("houses","verkauft","id",haus);
    HausInfo[hausid][haus_interior] = mysql_GetInt("houses","interior","id",haus);
    HausInfo[hausid][haus_miete] = mysql_GetInt("houses","miete","id",haus);
    format(HausInfo[hausid][mieter][0],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter1","id",haus));
    format(HausInfo[hausid][mieter][1],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter2","id",haus));
    format(HausInfo[hausid][mieter][2],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter3","id",haus));
    format(HausInfo[hausid][mieter][4],MAX_PLAYER_NAME,"%s",mysql_GetString("houses","mieter4","id",haus));
    HausInfo[hausid][haus_mietbar]=mysql_GetInt("houses","mietbar","id",haus);
    HausInfo[hausid][haus_virtualworld]=mysql_GetInt("houses","virtualworld","id",haus);
    format(HausInfo[hausid][haus_inhaber],32,"%s",mysql_GetString("houses","inhaber","id",haus));
    if(!strcmp(HausInfo[hausid][haus_inhaber],"Zu verkaufen"))
    {
    HausInfo[hausid][haus_symbol] = CreatePickup(1273 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
    new label[192];
    format(label,sizeof(label),"HAUS ID: %d\nZu verkaufen\nPreis:%d",hausid,HausInfo[hausid][haus_preis]);
    HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
    }
    else
    {
    HausInfo[hausid][haus_symbol] = CreatePickup(1272 ,23,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],0);
    new label[192];
    new freiraum[MAX_HAUS];
    for(new i=0;i<4;i++)
    {
    new besetzt[MAX_HAUS];
    if(!strcmp(HausInfo[hausid][mieter][i],""))
    besetzt[hausid]++;
    freiraum[hausid]=4-besetzt[hausid];
    }
    if(freiraum[hausid] < 0)
    {
    freiraum[hausid]=0;
    }
    format(label,sizeof(label),"HAUS ID: %d\nBesitzer:%s\nMiete:%d\nFreie Räume:%d",hausid,HausInfo[hausid][haus_inhaber],HausInfo[hausid][haus_miete],freiraum[hausid]);
    HausInfo[hausid][haus_label] = Create3DTextLabel(label,WEISS,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],20.0,0);
    }
    return 1;
    }

    Im Grunde genommen sind Definitionen nichts anderes als "Verschönerungen". Durch Definitionen weißt du einem Bestimmten String einen Wert zu. In deinem Fall somit #define TEAM_POLIZEI 1.
    Somit machst du dann nichts anderes als in einer Funktion die Zahl 1, d.h. die Nummer einer Fraktion, durch das leicht lesbare und nachvollziehbare TEAM_POLIZEI zu ersetzen.
    Es ist somit ein Mehraufwand und ein kleiner Zeitverlust zu vermelden. Mit stellt sich hierbei nur die Frage, ob eine "Klarstellung" der Kontanten während des Compilierungsprogresses stattfindet oder aktiv im Skript ausgeführt wird?




    Mfg. a6150

    Hey Leute,
    in der letzten Zeit habe ich folgendes Problem.
    Meine externe Medion Festplatte ist durch ein eSATA Kabel mit dem PC verbunden.
    Windows erkennt die Festplatte beim Start und sie lässt sich auch durchgehend bedienen.
    Ich mache Let's Plays und speichere meine Fraps - Aufnahmen auf dieser externen Festplatte.


    Doch nun zum Problem:
    Mitten in einer Aufnahme kriege ich einen Megalagg ( ca. 5 sec.) und danach stoppt die Aufnahme und die externe Festplatte verschwindet aus dem Windows Explorer! Erst nach einem Reboot wird diese wieder sichtbar und lässt sich ansteuern.


    Infos:
    - Die Festplatte hat ca. 400 GB freien Speicherplatz
    - Die Festplatte ist in FAT32 formatiert
    - Die Festplatte ist nicht fragmentiert.



    Hat jemand eine Idee, wieso sich die Festplatte aushängt?


    Hoffe auf baldige Hilfe. :thumbup:


    Mit freundlichen grüßen,
    a6150