Beiträge von CaZe

    Ich würde dir raten nutze Alt+N oder STRG+N ansosten müssten du noch Abfragen ob shift gedrück wär und ich weiß leider gerade nicht wie das geht. Musst dich ein bisschen bei AHK einfinden.

    Ich werde mir diese API mal nicht runterladen aus Sicherheitsgründen.
    Probier es mal so:

    Code
    N::
    If(IsDialogOpen() || IsChatOpen())
    return
    SendChat("Hallo!")
    return


    Btw.: || = oder | && = ist gleich

    Ja aber dies hier ist doch wohl kein Enum:

    if(step){
    for(new i=0; i<cache_get_row_count(); i++){
    if(MarkerData[i][Label] != Text3D:INVALID_3DTEXT_ID){
    Delete3DTextLabel(Text3D:MarkerData[i][Label]);
    MarkerData[i][Label] = Text3D:INVALID_3DTEXT_ID;
    }
    MarkerData[i][ID] = cache_get_field_content_int(i,"ID",db_H);
    MarkerData[i][MX] = cache_get_field_content_float(i,"X",db_H);
    MarkerData[i][MY] = cache_get_field_content_float(i,"Y",db_H);
    MarkerData[i][MZ] = cache_get_field_content_float(i,"Z",db_H);
    cache_get_field_content(i, "fwort", MarkerData[i][Wort],db_H,20);
    cache_get_field_content(i, "solution", MarkerData[i][Loesung],db_H,20);
    MarkerData[i][Gewinn] = cache_get_field_content_int(i,"cash",db_H);
    MarkerData[i][status] = cache_get_field_content_int(i,"state",db_H);
    new string[55];format(string,sizeof(string),"{0087FF}[Event]\n{FFFFFF}Gesucht:\n%s",MarkerData[i][Wort]);
    MarkerData[i][Label] = Create3DTextLabel(string,0xFFFFFFFF,MarkerData[i][MX],MarkerData[i][MY],MarkerData[i][MZ],45.0,0,1);
    MarkerData[i][timestamp] = tsp;
    printf("%d",i);
    m_count++;
    }


    Schreibe es so:

    if(step){
    for(new i=0; i<cache_get_row_count(); i++){
    if(MarkerData[i][Label] != INVALID_3DTEXT_ID){
    Delete3DTextLabel(MarkerData[i][Label]);
    MarkerData[i][Label] = INVALID_3DTEXT_ID;
    }
    MarkerData[i][ID] = cache_get_field_content_int(i,"ID",db_H);
    MarkerData[i][MX] = cache_get_field_content_float(i,"X",db_H);
    MarkerData[i][MY] = cache_get_field_content_float(i,"Y",db_H);
    MarkerData[i][MZ] = cache_get_field_content_float(i,"Z",db_H);
    cache_get_field_content(i, "fwort", MarkerData[i][Wort],db_H,20);
    cache_get_field_content(i, "solution", MarkerData[i][Loesung],db_H,20);
    MarkerData[i][Gewinn] = cache_get_field_content_int(i,"cash",db_H);
    MarkerData[i][status] = cache_get_field_content_int(i,"state",db_H);
    new string[55];format(string,sizeof(string),"{0087FF}[Event]\n{FFFFFF}Gesucht:\n%s",MarkerData[i][Wort]);
    MarkerData[i][Label] = Create3DTextLabel(string,0xFFFFFFFF,MarkerData[i][MX],MarkerData[i][MY],MarkerData[i][MZ],45.0,0,1);
    MarkerData[i][timestamp] = tsp;
    printf("%d",i);
    m_count++;
    }

    Befindet sich an diesen Koordinaten:

    Code
    246.9844, 303.5781, 998.7500


    Interior ID kann ich dir nicht sagen da ich diesen gerade selber im SAMP Map editor suchen musste.

    Eigentlich könntest du aus fast jedem Interior einen leeren machen. Einfach in den SAMP Map editor gehen und den Umriss kopieren damit du nur das "Gerüst" hast.
    Geht z.B. mit dem Interior auf dieser Positon:

    Code
    267.1509,304.9328,999.1484


    Ist auf der weedar Seite der Interior Namens: Katie Room

    Code
    [02:16:28] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE accounts SET waffenslot11='0',ammoslot11='0',waffenslot12", callback: "(null)", format: "(null)"
    [02:16:28] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [02:16:28] [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 ''3' at line 1
    [02:16:28] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError


    Wo werden diese Parameter aufgerufen? In deimen PlayerUpdate sind sie ja nicht vorhanden. Es befindet sich dort ein Syntax fehler.

    PlayerUpdate(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][eingeloggt]==0)return 1;


    //Speichern
    new query[128];
    PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
    format(query,sizeof(query),"UPDATE accounts SET level='%i',money='%i',alevel='%i',premiumlevel='%i',haus='%i',eingemietet='%i' WHERE id='%i'",
    PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pCash],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pDonateRank],PlayerInfo[playerid][Haus],PlayerInfo[playerid][eingemietet],PlayerInfo[playerid][db_id]);
    mysql_pquery(dbhandle,query);
    }
    return 1;
    }
    Du musst die query natürlich auch übebringen/"absenden"

    Du sollst mir zeigen wie du diesse hier nun geschrieben hast:
    Du sagtest ja du hättest es überarbeitet

    PlayerUpdate(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][eingeloggt]==0)return 1;


    //Speichern
    new query[128];
    format(query,sizeof(query),"INSERT INTO accounts (level,money,alevel,premiumlevel,haus,eingemietet) VALUES ('%i','%i','%i','%i','%i')",
    PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pCash],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pDonateRank],PlayerInfo[playerid][Haus],PlayerInfo[playerid][eingemietet]);
    }
    return 1;
    }

    Zeige mal bitte die Funktion wie du sie nun mit Update ... geschrieben hast. Überprüfe nochmal genau ob die Namen der caches wie du sie im skript angegeben hast auch mit der Datenbank übereinstimmen.

    //EDIT::
    enum interEnum
    {
    int_ID,
    Float:int_exitX,
    Float:int_exitY,
    Float:int_exitZ,
    Float:int_exitA,
    int_type
    };


    new InteriorInfo[][interEnum] =
    {
    //Apartments
    {1,244.411987,305.032989,999.148437,265.2689,1},
    /*Little edit*/{2,267.1509,304.9328,999.1484,265.6090,1},
    //Houses
    {8,2807.7825,-1174.4812,1025.5703,3.5707,2},
    {3,2495.9944,-1692.4015,1014.7422,182.3604,2},
    //Muss gemapped werden{5,2352.3496,-1180.6302,1027.9766,92.6137,2},
    //Vielleicht Mappen{1,2524.4817,-1679.3834,1015.4986,267.9829,2},
    //Villas
    {12,2324.4504,-1149.1239,1050.7101,5.4272,3},
    {5,1261.4669,-785.3972,1091.9063,268.5041,3}
    };


    die Zahlen am Ende sind der Type, also ob es ein Apartment,Haus oder eine Villa ist.


    //EDIT2::
    Btw. exitA ist die Rotation die ich selber gesetzt habe

    In dem Array sind ja nur die Positionen des Interiors angegeben, also wo man hingeportert wird wenn man das Haus betritt.
    Die Eingangs-Positionen sind ja da wo das PickUp etc. erstellt wird und dies wird ja per GetPlayerPos ermittelt.

    Hm, wenn ich das jetzt richtig verstehe darf ich keine Haus mit dem exakt gleichen Type sowie Interior erstellen oder wie sieht das aus?

    Hier die Debug Nachrichten(Original)
    Ich habe lediglich 2x hintereinander exakt das gleiche Haus erstellt.


    //EDIT::
    Btw. die PickUps die "anscheinend" noch da sind werden trotzdem gelöscht aber noch für die jenigen angezeigt, in deren Reichweite das PickUp gestreamed wurde. Also da ist das eigentlich egal.