Beiträge von Cody09

    megainput war nur ein Beispiel, geplant hatte ich es so:


    new query[10000];
    format(sql,sizeof(sql),"hier steht meine query1",inserts);
    format(sql,sizeof(sql),"%s hier steht meine query2",inserts);
    format(sql,sizeof(sql),"%s hier steht meine query3",inserts);


    //usw natürlich sind die querys länger und ca 10000 reicht dazu und danach alles per query ausführen
    mysql_query(sql);


    //edit, fehler entfernt

    Hallo,


    meine Frage:


    gibt es ein Limit bei der Funktion


    http://wiki.sa-mp.com/wiki/Format format()?


    oder kann ich ganzeinfach machen:



    new megabigstring[10000];
    format(megabigstring,sizeof(megabigstring),"%s",megabiginput);



    da ich dies dann in eine mysql_query eintragen wollte oder ist das maximum 1024?


    MfG. Cody09 :thumbup:

    Kann mir jemand von euch mal die Funktion


    OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat)


    erklären, ich kapier die nicht ganz, was ich verstanden habe ist,


    die wird aufgerufen wenn man ein Auto wegschiebt, bzw wenn sich das Auto bewegt durch einen Spieler


    also wird dann die playerid und die vehicleid returnt


    was wird denn returnt wenn das Auto einfach nur den Berg runterrollt?
    Was wird returnt wenn ein auto mit/ohne Spieler das Leere Auto rammt?
    Wozu gibt es passenger_seat und was wird da returnt?


    Hoffe ihr könnt mir weiterhelfen,thx

    ja, da wenn ich /stats aufrufe wurden die drogen/materialien in die Savebox gelegt, bzw rausgenommen


    vorhin hab ich nochwas getestet, ich habe ein sentclientmessage so gemacht also


    SendClientMessage(playerid, COLOR_GRAD1, "test");
    das wurde angezeigt,
    und was ich noch herausgefunden habe ist, das die volle funktion ausgeführt wird, nur nicht angezeigt wird(durch debugs herausgefunden)

    So,


    wie ihr in meinem Titel schon vielleicht rauslesen konntet hängt es zurzeit bei mir an der Funktion format() zumindest denke ich das:


    if(dialogid == DIALOG_SAVEBOX_TRANSFER)
    {
    new imputtext2 = strval(inputtext);
    if(response)
    {
    switch(GetPVarInt(playerid, "Savebox_Art_Transfer"))
    {
    case 1:
    {
    if(imputtext2 == 0 || imputtext2 > PlayerInfo[playerid][pMaterialien])
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Der Wert muss größer als 0 sein oder du hast nicht so viele Materialien bei dir!");
    format(string, sizeof(string), "Bitte gebe unten die Menge an\ndie du in die Savebox legen möchtest\nim Moment hast du \n{FF0000}%d {FFFFFF}Materialien in der Savebox\n{FF0000}%d{FFFFFF} Materialien bei dir", PlayerInfo[playerid][pSavedMats],PlayerInfo[playerid][pMaterialien]);
    ShowPlayerDialog(playerid,DIALOG_SAVEBOX_TRANSFER,DIALOG_STYLE_INPUT,"Materialien reinlegen",string,"Reinlegen","Abbrechen");
    }else{
    PlayerInfo[playerid][pSavedMats] = imputtext2 + PlayerInfo[playerid][pSavedMats];
    PlayerInfo[playerid][pMaterialien] = PlayerInfo[playerid][pMaterialien] - imputtext2;
    format(string, sizeof(string), "Du hast erfolgreich {FF0000} %d {FFFFFF}Materialien in die Savebox gelegt. Du hast noch{FF0000}%d{FFFFFF} Materialien bei dir und {FF0000}%d{FFFFFF} Materialien in der Savebox",imputtext2,PlayerInfo[playerid][pSavedMats],PlayerInfo[playerid][pMaterialien]);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    }
    }
    }else ShowPlayerDialog(playerid,DIALOG_SAVEBOX,DIALOG_STYLE_LIST,"Savebox","Materialien\nDrogen","Auswählen","Abbrechen");
    }


    hier die Stelle, es ist der Dialog unter OnDialogResponse in dem hier im Bsp. Materialien in die Savebox gelegt werden, ich habe case 2-4 rausgenommen da diese ähnlich aufgebaut sind.
    Mein Problem ist, es geht alles soweit, nur sobald Materialien ERFOLGREICH reingelegt wurden, also die Stelle Nach dem "else" aufgerufen wird wird es nicht angezeigt, also sozusagen läuft die Funktion bis
    PlayerInfo[playerid][pMats] = PlayerInfo[playerid][pMaterialien] - imputtext2;
    und dann geht sie nicht mehr weiter...


    Ich hoffe ihr könnt mir helfen... Ich habe das gleiche Problem nochmal hier:


    forward PublicNewsTimer();
    public PublicNewsTimer()
    {
    new string[256];
    SendClientMessageToAll(0xFF9700FF, "========================================={FF0000}Wichtige Meldung{FF9700}=========================================");
    for(new n = 1; n < sizeof(NewsInfo), n++;)
    {
    if(NewsInfo[n][newsTextAktiv] == 1)
    {
    format(string,sizeof(string),"%s",NewsInfo[n][newsText]);
    SendClientMessageToAll(0xE600FFFF, string);
    }
    }
    SendClientMessageToAll(0xFF9700FF, "===================================================================================================================");//wird nicht angezeigt
    return 1;
    }
    da wird das letzte SendClientMessageToAll einfach nicht im Chat InGame angezeigt?


    Gibt es da sowas wie ein Limit??


    bei Fragen einfach fragen^^


    MfG. Cody09


    PS: wegen PlayerInfo[playerid][pSavedMats] = imputtext2 + PlayerInfo[playerid][pSavedMats]; ich benutze es so eher umständlich da es bei =+ irgendein schei* zusammengerechnet hat.
    PS²: woran kann das liegen? Fehlt ein Return oder sonst was?


    //edit besser formatiert+text hinzugefügt

    naja, dein script ist nicht so effektiv:
    if(accs_tmp >= MAX_PLAYERS)


    dauert nen bissle lange oder? da MAX_PLAYERS standart auf 500 ist, und wenn man isplayerconnected einbaut geht laut deinem script es trotzdem bis 500
    ich glaube ich werde morgen mal methode 1 versuchen

    Guten Tag,


    ich habe folgendes Problem:


    wir haben so täglich +140 User online, wir speichern die Accountdaten per MySql.


    Ich benutze einen Timer der jede 30 min alle Accountdaten speichert. Jedoch kommt es dabei immer zu einem ca. 10 sec Lag wo nichts mehr funktioniert.
    Ich habe die Querys schon auf das Mindeste Reduziert, jetzt wollte ich fragen, was man noch machen kann.


    Meine Ideen waren:


    1. Sobald ein Wert geändert wird im Script. z.B. Geld abheben wird der Account gespeichert.
    2. Für jeden Spieler einen Timer wenn er connected von 30 min
    3. Accountdaten nacheinander Speichern, also z.b. nach 30 min wird eine Funktion aufgerufen die Speichert alle Accountdaten nur nacheinander



    zu 2. Ich denke das ist quatsch da dies eh ressourcenfressender ist.
    zu 3. Also ich meine das so: Es wird jede 30 Min ne Funktion aufgerufen, der Speichert die Accountdaten NACHEINANDER



    Jetzt noch 3 Fragen:
    1. Was ist am effektievsten?
    2. Bzw. was würdet ihr machen??
    3. Und bring 3. überhaupt was, wenn ja, könntet ihr mir helfen wie ich das Scripten müsste?


    MfG. Cody09

    Guten Tag,


    ich bin grade vor diesem Problem:


    diesen Fehler habe ich noch nie mit "Argument 5" gesehen, und andere Foren helfen auch nicht weiter, sodass ich mich jetzt hier an euch wenden muss.


    die Zeile ist diese:


    SendClientMessage(playerid, blau, string);
    mysql_SetString("NaviPunkte", "Name", NaviInfo[GetPVarInt(playerid, "NaviMenuID")][naName], "id", GetPVarInt(playerid, "NaviMenuID"));//zeile mit dem Fehler..
    mysql_query(query);


    das Pvar wird durch


    SetPVarInt(playerid, "NaviMenuID", n);


    gesetzt in einem Dialog früher.


    das "n" entpricht dem Symbol in der for() Schleife, also


    for(new n = 1; n <sizeof(NaviInfo);n++)


    Ich hoffe ihr könnt mir helfen, wäre euch sehr dankbar.



    MfG. Cody09


    //edit: Mfg Vergessen ;)

    Wenn doch, dann pingst du einfach die Adresse der MySql Tabelle von Ohost an und lässt dir somit die IP anzeigen der MySql Tabelle allso bei Windows



    Start->Ausführen->CMD


    dort eingeben:


    ping [die klammern weglassen aber hier die adresse der mysql tabelle rein]