Beiträge von dnlk

    Besser als jede Map von magnussoft: ( Bitte hau mich nicht :( )



    Für eine Oldschool Map sicher nicht Schlecht
    Du müsstet aber meiner meinung nach ein bisschen Sauberer die Objekte platzieren

    printf("rows: %d | fields: %d",rows,fields);



    Schreib mal darunter:


    printf("rows: %d | fields: %d",rows,fields);


    Code
    [13:57:12]   Filterscript '../scriptfiles/Maps/Detrimental Depth II/Detrimental Depth II.amx' loaded.
    [13:57:12] OnTopTimesLoaded: rows: 2 | fields: 4
    [13:57:12] GetUsernameFromDatabase: rows: 1 | fields: 5
    [13:57:12] GetUsernameFromDatabase: rows: 0 | fields: 5

    Habe da mal ein kleines problem mit BlueG's MySQL Plugin (R39-2)


    Die mysql_log.txt sagt mir folgendes:


    SQL
    [13:34:16] [ERROR] cache_get_row_int - invalid datatype
    [13:34:16] [WARNING] CMySQLResult::GetRowData - invalid row ('1') or field index ('2')
    [13:34:16] [ERROR] cache_get_row_int - invalid datatype
    [13:34:16] [WARNING] CMySQLResult::GetRowData - invalid row ('1') or field index ('3')
    [13:34:16] [ERROR] cache_get_row_int - invalid datatype
    [13:34:16] [WARNING] CMySQLResult::GetRowData - invalid row ('2') or field index ('2')
    [13:34:16] [ERROR] cache_get_row_int - invalid datatype
    [13:34:16] [WARNING] CMySQLResult::GetRowData - invalid row ('2') or field index ('3')
    [13:34:16] [ERROR] cache_get_row_int - invalid datatype


    Code:


    new query[256];
    format(query, sizeof(query),"SELECT * FROM s_toptimes WHERE formap = '%s' ORDER BY timestamp LIMIT 5",RACE:(Map));
    mysql_tquery(mysqlHandle, query, "OnTopTimesLoaded");


    PUBLIC: OnTopTimesLoaded() then
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows) then
    new ttTime[3];
    TextDrawSetFormat(TD_ttNames[0], "1. %s", GetUsernameFromDatabase(cache_get_row_int(0,2,mysqlHandle)));
    ConvertTimestamp(cache_get_row_int(0,3,mysqlHandle),ttTime[0],ttTime[1],ttTime[2]);
    TextDrawSetFormat(TD_ttTimes[0], "%d:%02d:%03d",ttTime[0],ttTime[1],ttTime[2]);


    if(rows > 1) then
    TextDrawSetFormat(TD_ttNames[1], "2. %s", GetUsernameFromDatabase(cache_get_row_int(1,2,mysqlHandle)));
    ConvertTimestamp(cache_get_row_int(1,3,mysqlHandle),ttTime[0],ttTime[1],ttTime[2]);
    TextDrawSetFormat(TD_ttTimes[1], "%d:%02d:%03d",ttTime[0],ttTime[1],ttTime[2]);
    end
    if(rows > 2) then
    TextDrawSetFormat(TD_ttNames[2], "3. %s", GetUsernameFromDatabase(cache_get_row_int(2,2,mysqlHandle)));
    ConvertTimestamp(cache_get_row_int(2,3,mysqlHandle),ttTime[0],ttTime[1],ttTime[2]);
    TextDrawSetFormat(TD_ttTimes[2], "%d:%02d:%03d",ttTime[0],ttTime[1],ttTime[2]);
    end
    if(rows > 3) then
    TextDrawSetFormat(TD_ttNames[3], "4. %s", GetUsernameFromDatabase(cache_get_row_int(3,2)));
    ConvertTimestamp(cache_get_row_int(3,3,mysqlHandle),ttTime[0],ttTime[1],ttTime[2]);
    TextDrawSetFormat(TD_ttTimes[3], "%d:%02d:%03d",ttTime[0],ttTime[1],ttTime[2]);
    end
    if(rows > 4) then
    TextDrawSetFormat(TD_ttNames[4], "5. %s", GetUsernameFromDatabase(cache_get_row_int(4,2)));
    ConvertTimestamp(cache_get_row_int(4,3,mysqlHandle),ttTime[0],ttTime[1],ttTime[2]);
    TextDrawSetFormat(TD_ttTimes[4], "%d:%02d:%03d",ttTime[0],ttTime[1],ttTime[2]);
    end
    end
    end


    stock GetUsernameFromDatabase(userid) then
    new uName[32];
    format(uName, sizeof(uName), "Guenther");

    new query[257];
    format(query, sizeof(query),"SELECT * FROM sw_accounts WHERE userid = '%d'",userid);
    mysql_query(mysqlHandle, query, true);
    new rows,fields;
    cache_get_data(rows, fields);
    if(rows) then
    new temp[32];
    cache_get_row(0,1,temp,mysqlHandle,sizeof(temp));
    SendFormatToAll(-1, "Username: %s", temp);
    end
    return uName;
    end


    Tabellen:


    Ich sehe da keinen fehler
    Wenn mir irgentjemand sagen könnte was ich falsch gemacht habe, fände ich das echt super :thumbup:


    (Fragt nicht warum ich then und end benutze.. bin einfach nur faul)


    Fast.


    for(new i=0;i<=sizeof(topTimes);i++)
    {
    if(tick-MapTimeDM < topTimes[i] || topTimes[i] == 0) {
    topTimes[i] = tick-MapTimeDM;
    format(str, sizeof(str), "DM/%s/toptimes.xml", currentMapFolder);
    new File:editTopTimes = fopen(str,io_write);
    if(editTopTimes)
    {
    new fwritestring[400];
    format(fwritestring, sizeof(fwritestring), "<toptimes>\n<first>\n<user>%d</user>\n<time>%d</time>\n</first>\n<second>\n\
    <user>%d</user>\n<time>%d</time>\n</second>\n<third>\n<user>%d</user>\n<time>%d</time>\n\
    </third>\n<fourth>\n<user>%d</user>\n<time>%d</time>\n</fourth>\n<fifth>\n<user>%d</user>\n\
    <time>%d</time>\n</fifth>\n</toptimes>", topTimes[5],topTimes[0],topTimes[6],topTimes[1],topTimes[7],topTimes[2],topTimes[8],topTimes[3],topTimes[9],topTimes[4]);
    fwrite(editTopTimes,fwritestring);
    }
    fclose(editTopTimes);
    SendFormatToAll(-1,"{FF6347}[ TOP TIME ] {FFFFFF}%s made a new %d. Top Time! (%02d:%02d:%03d)", ReturnPlayerName(playerid),i+1,rMin, rS, rMS);
    break;
    }
    }
    tick-MapTimeDM soll anstelle von topTimes[i ] stehen und und topTimes[i ] anstelle von topTimes[i+1] usw.


    Weißt du was ich meine?


    Bin nicht Gut im Erklären :P

    Also,


    Ich habe 10 Variablen . (topTimes[10])


    topTimes[0] und topTimes[5] gehören zusammen
    topTimes[1] und topTimes[6] gehören zusammen
    usw.


    Wie kann ich z.B. ab der 2. Variable (topTimes[1] und topTimes[6]) alle einen nach hinten "verschieben"
    also das topTimes[1] = topTimes[2], topTimes[2] = topTimes[3] usw. und topTimes[0] bzw. topTimes[5] bleibt die gleiche.


    Hoffe das mir dabei jemand Helfen kann.

    Kleine Frage zum XML Plugin:


    Wie kriege ich aus einer XML Datei diese Rot Markierten dinge heraus?


    <meta>
    <info name="[DM] Infra v4 - One Desire"></info>
    <map src="DMInfrav4.map"></map>
    <settings>
    <setting name="#weather" value="[ 17 ]"></setting>
    </settings>
    </meta>


    Hoffe mir kann da jemand helfen, mir fällt es gerade echt nicht ein :S

    Angefangenes Freeroam / Stunt / DM Script + UCP


    Das UCP hat noch nicht viele Funktionen


    Informationen zum Script:
    Info: Das Script wurde in Englisch geschrieben


    - Login / Register ( MySQL )
    - Datenbank wird vom Script erstellt
    - Passwörter werden mit Whirlpool Verschlüsselt


    - Admin Befehle
    - [TRIAL ADMIN] /slap «|» /slay «|» /kick «|» /ban «|» /ip «|» /serial «|» /cc (/clearchat) «|» /a «|» /spec
    - [ADMIN] /tp «|» /tphere «|» /unban
    - [LEAD ADMIN] /setpremium
    - [HEAD ADMIN] /restart
    - [OWNER] /setadmin


    - Andere Befehle wie /teleport (/tele) «|» /help «|» /report «|» /ask «|» /admins «|» /kill (/suicide) «|» /stats «|» /skin «|» /v (Vehicle)


    - Angefangenes Anti - Cheat
    - Anti Fakekill


    - Anti Flyhack


    - Anti Jetpack


    - Anti Moneyhack


    - Anti Armour Hack ( Niemals die Schutzweste eines Spieler auf 100 setzen )


    - Anti Ban-Evade , vergleicht den Serial des Spielers beim Einloggen mit den Serials von gebannten Benutzern, wenn eine Übereinstimmung gefunden wurde, wird eine Nachricht an die Admins gesendet , wird außerdem noch hier gespeichert : scriptfiles/Logs/possible_ban_evade_log.log
    Warnung: Nicht jeder Serial ist einzigartig

    Auch im UCP Sichtbar:


    - derzeit 3 DM Räume


    - 1 Score pro Kill
    - Premium Level 1 -> 1 * 2
    - Premium Level 2 -> 1 * 3
    - Premium Level 3 -> 1 * 4
    - Premium Level 4 -> 1 * 5


    - Zufälliges Geld pro Kill ( Zwischen $300 und $700 )
    - Premium Level 1 -> random * 1.50
    - Premium Level 2 -> random * 2
    - Premium Level 3 -> random * 2.50
    - Premium Level 4 -> random * 3


    Screenshots


    Informations Box & Tacho


    Teleport Menü


    UCP


    Benötigte Plugins und Includes ( Alle im Archiv enthalten )


    Plugins: sscanf , streamer , mysql , whirlpool , xml


    Includes: fixes , xml , banfix , a_mysql , streamer , sscanf , ForEachPlayer , callbacks