Beiträge von iceberq

    Du setzt beim laden gar nicht gzInfo[i][gz_id] bzw...wieso nutzt du das überhaupt?


    Schreib es doch einfach so:


    Ich danke dir vielmals! :D

    Geht denn mysql_log(LOG_ALL); oder wenn das nicht geht: mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);

    Danke dir, das geht.





    Ich sehe da keinen Fehler.. Test wird im Endeffekt angezeigt, Flugzeugfriedhof nicht..
    Danke dir schon mal !
    MFG

    Hast du mysql_log(ALL); unter OnGameModeInit?


    Dann wird ein Ordner Namens logs erstellt (nicht in den scriptfiles, sondern eins drüber, beim server_log)

    Wird bei mir nicht erstellt.. ich habe mysql_log(); bei OnGameModeInit stehen, weil sobald ich all einsetze bekomme ich den Fehler, dass all nicht definiert ist

    Sehr gut, jetzt weißt du, dass der Fehler beim Laden liegt :)
    Musst mal in den MySQL Log schauen :D

    Ich peil das irgendwie gar nicht. Heute morgen ging das noch einwandfrei.. Dann habe ich nur die Farben geändert und plötzlich passiert so was ?(
    Es erstellt sich auch keine mysql log Datei, in der ich vielleicht sehen könnte, woran es liegt... :thumbdown:

    Musste mal n print setzen in der Schleife unter OnPlayerSpawn und schauen, was für Werte die einzelnen Sachen haben.


    Sind denn die 3DTextLabel da?

    Die 3D Label sind auch nicht da...



    Was mich sehr verwundert ist aber folgendes in den Logs:


    Ich habe mir mal den String printen lassen... Und anscheinend kommt es beim Laden der anderen Gebiete zu komplikationen. Die Besitzerfraktion und der Name des Gebietes werden nicht ausgelesen, somit die Koordinaten auch nicht



    [13:47:49] >> Beispiel<< Gebiet der Da Nang Boys. Zum Erobern tippe /gf
    [13:47:49] >> << Gebiet der Zivilist. Zum Erobern tippe /gf
    [13:47:49] >> << Gebiet der Zivilist. Zum Erobern tippe /gf
    [13:47:49] >> << Gebiet der Zivilist. Zum Erobern tippe /gf
    [13:47:49] >> << Gebiet der Zivilist. Zum Erobern tippe /gf

    Vielen Dank.
    Irgendwie verstehe ich aber gerade nicht, warum mir nur ein Gebiet angezeigt wird, obwohl ich drei in der Datenbank habe :S
    Es wird immer nur der letzte Eintrag angezeigt. Also wenn ich Gebiet id1 id2 id3 habe, wird nur das mit id3 angezeigt :?: Das ist merkwürdig
    Der Code ist im Grunde immer noch derselbe:

    public OnPlayerSpawn(playerid)
    {
    for(new i=0; i<sizeof(gzInfo);i++)
    {
    new string[128];
    GangZoneShowForAll(GangZoneCreate(gzInfo[i][min_x],gzInfo[i][min_y],gzInfo[i][max_x],gzInfo[i][max_y]),fInfo[gzInfo[i][gz_besitzer]][f_gzcolor]);
    CreatePickup(1239,1,gzInfo[i][gzp_x],gzInfo[i][gzp_y],gzInfo[i][gzp_z],0);
    format(string,sizeof(string),">> %s << Gebiet der %s. Zum Erobern tippe /gf",gzInfo[i][gz_name],fInfo[gzInfo[i][gz_besitzer]][f_name]);
    Create3DTextLabel(string,Ak,gzInfo[i][gzp_x],gzInfo[i][gzp_y],gzInfo[i][gzp_z],10,0,1);
    }



    public OnGzLoad()
    {
    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=getFreeGzID();
    gzInfo[id][min_x] = cache_get_field_content_float(i,"min_x",dbhandle);
    gzInfo[id][min_y] = cache_get_field_content_float(i,"min_y",dbhandle);
    gzInfo[id][max_x] = cache_get_field_content_float(i,"max_x",dbhandle);
    gzInfo[id][max_y] = cache_get_field_content_float(i,"max_y",dbhandle);
    gzInfo[id][gzp_x] = cache_get_field_content_float(i,"gzp_x",dbhandle);
    gzInfo[id][gzp_y] = cache_get_field_content_float(i,"gzp_y",dbhandle);
    gzInfo[id][gzp_z] = cache_get_field_content_float(i,"gzp_z",dbhandle);
    new tmp_name[MAX_PLAYER_NAME];
    cache_get_field_content(i,"gz_name",tmp_name,dbhandle);
    strmid(gzInfo[id][gz_name],tmp_name,0,sizeof(tmp_name),sizeof(tmp_name));
    gzInfo[id][gz_besitzer] = cache_get_field_content_int(i,"gz_besitzer",dbhandle);
    }
    return 1;



    }



    getFreeGzID()
    {
    for(new i=0; i<sizeof(gzInfo);i++)
    {
    if(gzInfo[i][gz_id]==0) return i;
    }
    return -1;
    }

    Guten Morgen, ich hätte mal eine kleine Frage.
    Wie kriege ich das hin, dass die Farbe, welche eine Gangzone hat, transparent ist?


    Also, dass die Farbe (in diesem Fall dunkelblau) nicht die Map verdeckt. Habe auch schon hellere Farben probiert, hat nichts gebracht :|


    Danke im Voraus

    Es handelt sich um ein Query, wo ein WHERE Statement steht.

    Den Fehler im Query mit WHERE habe ich gefixt. Das geht nun alles. Jedoch werden die Gebiete immer noch nicht geladen :/


    Aktuell Code: Siehe meinen ersten Beitrag.


    MFG

    Mahlzeit

    eventuell wird kein eintrag geladen dann überprüfe den tabellennamen in deinem query, dass du gepostet hast.

    Also der Tabellenname stimmt überein.



    public OnGzLoad()
    {
    new num_fields,num_rows,string[128];
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows;i++)
    {
    gzInfo[i][min_x] = cache_get_field_content_float(i,"min_x",dbhandle);
    gzInfo[i][min_y] = cache_get_field_content_float(i,"min_y",dbhandle);
    gzInfo[i][max_x] = cache_get_field_content_float(i,"max_x",dbhandle);
    gzInfo[i][max_y] = cache_get_field_content_float(i,"max_y",dbhandle);
    gzInfo[i][gzp_x] = cache_get_field_content_float(i,"gzp_x",dbhandle);
    gzInfo[i][gzp_y] = cache_get_field_content_float(i,"gzp_y",dbhandle);
    gzInfo[i][gzp_z] = cache_get_field_content_float(i,"gzp_z",dbhandle);
    new tmp_name[MAX_PLAYER_NAME];
    cache_get_field_content(i,"gz_name",tmp_name,dbhandle);
    strmid(gzInfo[i][gz_name],tmp_name,0,sizeof(tmp_name),sizeof(tmp_name));
    gzInfo[i][gz_besitzer] = cache_get_field_content_int(i,"gz_besitzer",dbhandle);
    gzInfo[i][gz_id] = cache_get_field_content_int(i,"gz_id",dbhandle);
    new gz=GangZoneCreate(gzInfo[i][min_x],gzInfo[i][min_y],gzInfo[i][max_x],gzInfo[i][max_y]);
    GangZoneShowForAll(gz, fInfo[gzInfo[i][gz_besitzer]][f_gzcolor]);
    CreatePickup(1239,1,gzInfo[i][gzp_x],gzInfo[i][gzp_y],gzInfo[i][gzp_z],0);
    format(string,sizeof(string),"Gangzone der %s\nZum Erobern tippe /gf",fInfo[gzInfo[i][gz_besitzer]][f_name]);
    Create3DTextLabel(string,Ak,gzInfo[i][gzp_x],gzInfo[i][gzp_y],gzInfo[i][gzp_z],15,0,1);
    }
    return 1;
    }


    Habe es jetzt mal so geschrieben, bringt leider nichts... Bekomme immer noch denselben MySQL Fehler :(
    Trotzdem Danke schonmal


    MFG

    Ich heiße nicht nur iceberq, sondern euch auch herzlich willkommen zu diesem Thread :)


    Ich habe "versucht" ein Gangzone System einzubauen... hat nicht so geklappt wie erwartet..
    Zunächst habe ich mit einem Enum begonnen:
    enum gzEnum{
    Float:min_x,
    Float:min_y,
    Float:max_x,
    Float:max_y,
    Float:gzp_x, <- Diese Floats(gzp_x etc.) sind für ein Pickup und ein 3DLabel, welche ich mitten im Gebiet erstellen möchte, die den Besitzer des Gebietes angeben. Den Namen des Gebietes (in diesem Fall "Flugzeugfriedhof" sollte auch rein)habe ich aber vergessen...
    Float:gzp_y,
    Float:gzp_z,
    gz_name[MAX_PLAYER_NAME],
    gz_besitzer,
    gz_id,
    gzid_x
    }


    Hier werden unter OnGameModeInit alle Gebiete geladen:


    //GF Gebiete laden
    new gzquery[128];
    format(gzquery,sizeof(gzquery),"SELECT * FROM gz");
    mysql_function_query(dbhandle,gzquery,true,"OnGzLoad","");


    Mein Forward:
    forward OnGzLoad();


    der Public dazu:

    public OnGzLoad()
    {
    new num_fields,num_rows,string[128];
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows;i++)
    {
    new id=getFreeGzID();
    gzInfo[id][min_x] = cache_get_field_content_float(i,"min_x",dbhandle);
    gzInfo[id][min_y] = cache_get_field_content_float(i,"min_y",dbhandle);
    gzInfo[id][max_x] = cache_get_field_content_float(i,"max_x",dbhandle);
    gzInfo[id][max_y] = cache_get_field_content_float(i,"max_y",dbhandle);
    new tmp_name[MAX_PLAYER_NAME];
    cache_get_field_content(i,"gz_name",tmp_name,dbhandle);
    strmid(gzInfo[id][gz_name],tmp_name,0,sizeof(tmp_name),sizeof(tmp_name));
    gzInfo[id][gz_besitzer] = cache_get_field_content_int(i,"gz_besitzer",dbhandle);
    gzInfo[id][gz_id] = cache_get_field_content_int(i,"gz_id",dbhandle);
    gzInfo[id][gzid_x] = GangZoneCreate(gzInfo[id][min_x],gzInfo[id][min_y],gzInfo[id][max_x],gzInfo[id][max_y]);
    GangZoneShowForAll(gzInfo[id][gzid_x], fInfo[gzInfo[id][gz_besitzer]][f_gzcolor]);
    CreatePickup(1239,1,gzInfo[id][gzp_x],gzInfo[id][gzp_y],gzInfo[id][gzp_z],0);
    format(string,sizeof(string),"Gangzone der %s\nZum Erobern tippe /gf",fInfo[gzInfo[id][gz_besitzer]][f_name]);
    Create3DTextLabel(string,Ak,gzInfo[id][gzp_x],gzInfo[id][gzp_y],gzInfo[id][gzp_z],15,0,1);
    }
    return 1;
    }



    getFreeGzID()
    {
    for(new i=0; i<sizeof(gzInfo);i++)
    {
    if(gzInfo[i][gz_id]==0) return i;
    }
    return 0;
    }


    Ich habe in der Mysql Datenbank schon ein Gebiet zum Test eingefügt, jedoch wird dieses nicht geladen und ich bekomme in der mysql log Datei folgenden Fehler


    Die Datenbank:



    gz_besitzer steht in dem Fall für die Gang/Mafia, der das Gebiet gehört, in diesem Fall die LCN: (ach ja und ak steht für weiß.)

    //Fraktionen
    new fInfo[][fraktEnum] = {
    {"Zivilist", 1267.6949,1458.4530,10.8130,291.4855,0,0,Ak,Ak},
    {"LVPD", 2281.9646,2424.5161,3.4692,356.6202,0,0,Ak,Ak},
    {"La Cosa Nostra",937.8108,1733.3275,8.8516,271.5520,0,0,Ak,Dunkelblau},
    {"FBI",1039.2556,1013.7105,11.0000,332.4610,0,0,Ak,Ak},
    {"Da Nang Boys",2481.4900,1525.2753,11.7821,318.8811,0,0,Ak,Hellgrau},
    {"Rote Guerilla",1105.7994,-299.8442,74.5391,81.3161,0,0,Ak,Ak},
    {"Fahrschule",2199.4680,2719.3987,10.8203,16.0619,0,0,Ak,Ak},
    {"SAMD",1603.6674,1815.5087,10.8203,351.9129,0,0,Ak,Ak},
    {"Hitman",-932.7607,2026.6654,61.5907,222.0614,0,0,Ak,Ak}
    };


    Quellcode
    Quellcode bearbeiten

    • [21:27:42] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='1'' at line 1

    Ich weiß, dass ich in letzter Zeit viel störe, jedoch möchte ich ein komplettes Selfmade auf die Beine stellen(bin auch schon gut dabei) und kann es nicht akzeptieren, einfach das, was ich nicht blicke, aus nem fremden GF zu kopieren.. Hoffentlich könnt ihr mir helfen..


    MfG :/

    Das Problem ist, dass das alles überschrieben wird, falls noch ein Spieler stirbt.


    Das kann man elegant lösen, sogar ohne globale Variablen:


    Vielen,vielen DANK!

    Hallo,


    es geht darum, dass ich beim Tod eines Spielers einen Pickup und ein Label an seiner Position erstellen möchte, welcher aber nach einer Zeit verschwinden soll.


    Globale Variablen:

    new Text3D:totsign;
    new totsignpickup;


    Bei OnPlayerDeath:

    new Float:xv,Float:yv,Float:zv,vWorld,totstring[128];
    sInfo[killerid][kills]++;
    GetPlayerPos(playerid,xv,yv,zv);
    vWorld = GetPlayerVirtualWorld(playerid);
    format(totstring,sizeof(totstring),"† %s †\n~\n Mörder: %s",getPlayerName(playerid),getPlayerName(killerid));
    totsignpickup = CreatePickup(1254,1,xv,yv,zv,vWorld);
    totsign = Create3DTextLabel(totstring,Blutrot,xv,yv,zv,10,vWorld,1);
    SetTimer("totVanish",/*300000*/60000,false);


    Mein Public zum Timer:

    public totVanish()
    {
    DestroyPickup(totsignpickup);
    Delete3DTextLabel(totsign);
    return 1;
    }


    Das Problem ist, dass sowohl das Pickup, als auch das Label nicht verschwinden bzw. dauerhaft da sind. Ich hoffe, dass mir jemand weiterhelfen kann.


    MfG :)

    Irgendwie klappt das immer nicht...

    format(string,sizeof(string),"Du bist also %s Jahre alt.",inputtext);
    SendClientMessage(playerid,Gelb,string);
    format(query,sizeof(query),"UPDATE user SET 'alter'='%s' WHERE id='%i'",inputtext,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");

    Code
    [17:55:03] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''alter'='18' WHERE id='24'' at line 1

    Hallo :) Meine Altersabfrage ist fehlerhaft.



    if (dialogid==DIALOG_ALTER)
    {
    new string[128];
    if(response)
    {
    new query[128];
    if(strlen(inputtext) > 2 || strlen(inputtext) < 2)
    {
    SendClientMessage(playerid,Kaminrot,"SERVER: Das glaube ich nicht.");
    ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Dein Alter","Wie alt bist du?","Weiter","Kick");
    }
    else
    {
    format(string,sizeof(string),"Du bist also %s Jahre alt.",inputtext);
    SendClientMessage(playerid,Gelb,string);
    format(query,sizeof(query),"UPDATE user SET alter='%i' WHERE id='%i'",inputtext,sInfo[playerid][db_id]);
    mysql_function_query(dbhandle,query,false,"","");
    }
    }
    else
    {
    format(string,sizeof(string),"[KICKED] %s hat die Registration abgebrochen.",getPlayerName(playerid));
    SendClientMessageToAll(Blutrot,string);
    Kick(playerid);
    }
    }


    Errorcode aus der mysql_log.txt:

    Code
    [18:17:03] [ERROR] CMySQLQuery::Execute[()] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'alter='49' WHERE id='16'' at line 1


    Könnte mir bitte jemand weiterhelfen?

    Der Default Wert beträgt 100.0
    Eine normale Stream-Distance, wie z.B. die von Objekten beträgt 300.0


    Kann aber auch bis zu 600.0 gehen, das ist dann aber schon sehr weit

    Danke! Und wie kann ich diese Map Icons auch auf der großen Karte anzeigen lassen? Auf der Minimap sind sie zusehen, aber auf der Karte nicht (Esc -> MAP).