[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • new pickstr[] = "ABCDEFGH0123456789";
    new endstr[11], rand;
    for(new i=0; i<sizeof(endstr); i++)
    {
    rand = random(strlen(pickstr));
    format(endstr, sizeof(endstr), "%s%c", endstr, pickstr[rand]);
    strdel(pickstr, rand, rand+1);
    }


    In endstr steht dann sowas wie: 604A73HEC1

  • Hey,


    Ich habe ein Problem mit einem System von mir welches eine selbst Generierte DNA auslesen soll doch er zeigt mir nichts an.
    Hab keine fehler o.ä.
    public Laborcheck(playerid)
    {
    SendClientMessage(playerid,-1,"Die DNA Lautet: ");
    new rows = cache_get_row_count(), string[145];
    for(new i=0; i < rows; i++)
    {
    cache_get_row(i, 0, string);
    SendClientMessage(playerid,-1,string);
    }
    return 1;
    }


    ocmd:leichencheck(playerid, params[])
    {
    new query[256], pID;
    if(!isPlayerInFrakt(playerid,4))return SendClientMessage(playerid,-1,"Du bist nicht bei der Spurensicherung.");
    if(sscanf(params,"d",pID))return SendClientMessage(playerid,-1,"Tippe: /leichencheck [Spieler]");
    mysql_format(mysqlHandle, query, sizeof(query), "SELECT DNA FROM accounts WHERE Name = '%s'",pID);
    mysql_tquery(mysqlHandle, query, "OnLaborCheck", "d", pID);
    return 1;
    }

  • ocmd:leichencheck(playerid, params[])
    {
    new query[256], pID;
    if(!isPlayerInFrakt(playerid,4))return SendClientMessage(playerid,-1,"Du bist nicht bei der Spurensicherung.");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,-1,"Tippe: /leichencheck [Spieler]");
    mysql_format(mysqlHandle, query, sizeof(query), "SELECT DNA FROM accounts WHERE Name = '%s'",SpielerName(pID));
    mysql_tquery(mysqlHandle, query, "Laborcheck", "d", playerid);
    return 1;
    }


    public Laborcheck(playerid)
    {
    if(!cache_get_row_count()) return SendClientMessage(playerid,0xFF0000FF,"Spieler nicht gefunden.");
    SendClientMessage(playerid,-1,"Die DNA Lautet: ");
    cache_get_row(0, 0, string);
    SendClientMessage(playerid,-1,string);
    return 1;
    }


    Versuche es so.

  • Hätte mehrere Fragen.
    Wie fragt man ab mit IsPlayerInVehicle ob er in einem Taxi Fahrzeug ist die schon mit TaxiCar[0,1,2,...] erstellt wurden richtig ab da habe ich paar probleme. (for-Schleifen weiss ich.)
    Wie berechnet man 19% vom Gehalt den man an den Staat zahlen muss.


    1. Code:
    ocmd:taxiduty(playerid, params[])
    {
    new viiid;
    if(GetPVarInt(playerid, "TaxiDuty") == 0)
    {
    new preis_taxi, taxi_schild[64];
    if(pInfo[playerid][pJob] != 2)return scm(playerid, COLOR_RED, "Du bist kein Taxifahrer!");
    if(sscanf(params,"i",preis_taxi))return scm(playerid, COLOR_YELLOW, "Benutzung: /taxiduty [Preis/Pro Fahrt]");
    if(preis_taxi < 0 || preis_taxi > 999)return scm(playerid, COLOR_GREY, "Minimum: 0$ || Maximum: 999$!");
    format(taxi_schild, sizeof(taxi_schild), "Eine Fahrt kostet %i SA-$", preis_taxi);
    for(new xo=0; xo<sizeof(TaxiCar); xo++)
    {
    if(IsPlayerInVehicle(playerid, TaxiCar[xo]))
    {
    TaxiSchild[viiid]=Create3DTextLabel(taxi_schild, COLOR_CYAN, 0.0, 0.0, 0.0, 45, 0, 0);
    Attach3DTextLabelToVehicle(TaxiSchild[viiid], viiid, 0.0, 0.0, 1.0);
    TaxiPreis[viiid] = preis_taxi;
    SetPVarInt(playerid, "TaxiVeh", viiid);
    SetPVarInt(playerid, "TaxiDuty", 1);
    return 1;
    }
    else
    {
    scm(playerid, COLOR_RED, "Du sitz in keinem Taxi-Fahrzeug!");
    return 1;
    }
    }
    }
    else if(GetPVarInt(playerid, "TaxiDuty") == 1)
    {
    if(IsPlayerInVehicle(playerid, GetPVarInt(playerid, "TaxiVeh")))
    {
    viiid = GetPVarInt(playerid, "TaxiVeh");
    Delete3DTextLabel(TaxiSchild[viiid]);
    TaxiPreis[viiid] = 0;
    DeletePVar(playerid, "TaxiVeh");
    SetPVarInt(playerid, "TaxiDuty", 0);
    RepairVehicle(viiid);
    RemovePlayerFromVehicle(playerid);
    SetVehicleToRespawn(viiid);
    return 1;
    }
    else
    {
    scm(playerid, COLOR_RED, "Du sitz nicht in deinem Taxi-Fahrzeug!");
    return 1;
    }
    }
    return 1;
    }


    Ich hoffe ihr könntet es mir beantworten.


    LG,
    Skoam

  • Nimm das hier aus der Schleife raus:
    else
    {
    scm(playerid, COLOR_RED, "Du sitz in keinem Taxi-Fahrzeug!");
    return 1;
    }


    Nach der Schleife (nicht darin!) schreibst du dann:
    scm(playerid, COLOR_RED, "Du sitz in keinem Taxi-Fahrzeug!");
    return 1;


    Dann geht's.


    Zwecks den 19%:
    Mit oder ohne Komma? Also ist dein Gehalt ein Float oder ein Integer?

  • Hallo ich hab mal ne frage ich mache gerade ein Drivein system wo ich die Hp und Geld und so in Enums habe aber wenn ich /Drivein eingebe und dann Hamburger wähle dann will ich bei OnDialogRespons abfragen ob
    GetPlayerMoney (playerid)<drivein [//was muss hier rein ?][menueGeld1] ist aber wie ?

  • for(new i=0; i<sizeof(drivein); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, drivein[i][x], drivein[i][y], drivein[i][z]))
    {
    if(GetPlayerMoney(playerid) >= drivein[i][MenueGeld1])
    {
    //Kann es kaufen
    }
    else
    {
    //nicht genug Geld
    }
    return 1;
    }
    }
    //Nicht nahe eines Ladens

  • Hey,
    ich habe diesen Fehler:

    Code
    error 006: must be assigned to an array
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.


    Hier:
    if(dialogid == DIALOG_REGISTER)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    if(strlen(inputtext) < 4)return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Willkommen auf German Police Life,\n\n es wurde kein Account mit dem Namen in unserer Datenbank gefunden.\n Bitte Registrieren Sie sich.\n Merken Sie sich das Passwort und geben Sie es an keinen Dritten weiter.\n Das German Police Life Team wird Sie nicht nach ihrem Passwort fragen!", "Registration", "Abbrechen");
    format(key, 50, "%s", inputtext);
    new pickstr[] = "ABCDEFGH0123456789";
    new endstr[11], rand;
    for(new i=0; i<sizeof(endstr); i++)
    {
    rand = random(strlen(pickstr));
    format(endstr, sizeof(endstr), "%s%c", endstr, pickstr[rand]);
    strdel(pickstr, rand, rand+1);
    }
    mysql_escape_string(NamePlayer(playerid), NamePlayer(playerid)), mysql_escape_string(key, key);
    format(query, sizeof(query), "INSERT INTO accounts (`Name`, `Passwort`) VALUES ('%s',('%s'))", NamePlayer(playerid), key);
    mysql_tquery(mysqlHandle, query);
    format(query, sizeof(query), "UPDATE accounts SET DNA = '%s' WHERE Name = '%s'", endstr, NamePlayer(playerid));
    mysql_tquery(mysqlHandle, query);
    SendClientMessage(playerid, -1, "Dein Account wurde erstellt.");
    SpielerInfo[playerid][pPasswort] = inputtext; //Hier ist der Fehler
    LoadAccount(playerid);
    SpawnPlayer(playerid);
    printf("Account erstellt %s",NamePlayer(playerid));
    }

  • Hab ich :P


    Warum wird das Passwort und die DNA nicht gespeichert nach relogg?
    if(dialogid == DIALOG_REGISTER)
    {
    if(!response)
    {
    return Kick(playerid);
    }
    if(strlen(inputtext) < 4)return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Willkommen auf German Police Life,\n\n es wurde kein Account mit dem Namen in unserer Datenbank gefunden.\n Bitte Registrieren Sie sich.\n Merken Sie sich das Passwort und geben Sie es an keinen Dritten weiter.\n Das German Police Life Team wird Sie nicht nach ihrem Passwort fragen!", "Registration", "Abbrechen");
    format(key, 50, "%s", inputtext);
    new pickstr[] = "ABCDEFGH0123456789";
    new endstr[11], rand;
    for(new i=0; i<sizeof(endstr); i++)
    {
    rand = random(strlen(pickstr));
    format(endstr, sizeof(endstr), "%s%c", endstr, pickstr[rand]);
    strdel(pickstr, rand, rand+1);
    }
    mysql_escape_string(NamePlayer(playerid), NamePlayer(playerid)), mysql_escape_string(key, key);
    format(query, sizeof(query), "INSERT INTO accounts (`Name`, `Passwort`) VALUES ('%s',('%s'))", NamePlayer(playerid), key);
    mysql_tquery(mysqlHandle, query);
    format(query, sizeof(query), "UPDATE accounts SET DNA = '%s' WHERE Name = '%s'", endstr, NamePlayer(playerid));
    mysql_tquery(mysqlHandle, query);
    SendClientMessage(playerid, -1, "Dein Account wurde erstellt.");
    format(SpielerInfo[playerid][pPasswort], 32, inputtext);
    format(SpielerInfo[playerid][pDNA], 32, endstr);
    LoadAccount(playerid);
    SpawnPlayer(playerid);
    printf("Account erstellt %s",NamePlayer(playerid));
    }


    Keine Fehler.

  • Die Markierung war aber noch nicht da als ich gepostet habe. ;)


    mysql_escape_string(NamePlayer(playerid), NamePlayer(playerid)), mysql_escape_string(key, key);
    format(query, sizeof(query), "INSERT INTO accounts (`Name`, `Passwort`) VALUES ('%s',('%s'))", NamePlayer(playerid), key);
    mysql_tquery(mysqlHandle, query);
    format(query, sizeof(query), "UPDATE accounts SET DNA = '%s' WHERE Name = '%s'", endstr, NamePlayer(playerid));


    zu:
    mysql_format(mysqlHandle, query, sizeof(query), "INSERT INTO accounts (`Name`, `Passwort`, `DNA`) VALUES ('%e','%e','%e')", NamePlayer(playerid), key, endstr);

  • Geht nicht in den Mysql_Logs zeigt er mir das an

    Code
    [23:40:03] [DEBUG] mysql_escape_string - source: "FerienFreak", connection: 1, max_len: 24[23:40:03] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM accounts WHERE Name='FerienFreak'", callback: "UserCheck", format: "i"[23:40:03] [DEBUG] CMySQLQuery::Execute[UserCheck] - starting query execution[23:40:03] [DEBUG] CMySQLQuery::Execute[UserCheck] - query was successfully executed within 121.634 milliseconds[23:40:03] [DEBUG] CMySQLResult::CMySQLResult() - constructor called[23:40:03] [DEBUG] Calling callback "UserCheck"..[23:40:03] [DEBUG] cache_get_data - connection: 1[23:40:03] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called[23:40:11] [DEBUG] mysql_format - connection: 1, len: 256, format: "INSERT INTO accounts (`Name`, `Passwort`, `DNA`) VALUES ('%e','%e','%e')"[23:40:11] [DEBUG] mysql_tquery - connection: 1, query: "INSERT INTO accounts (`Name`, `Passwort`, `DNA`) VALUES ('Ferien", callback: "(null)", format: "(null)"[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Geld", connection: 1[23:40:11] [DEBUG] CMySQLQuery::Execute[] - starting query execution[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Level", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Kills", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Tode", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Adminlevel", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "IP", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Banned", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Bangrund", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Banadmin", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Fraktion", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Rang", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Verwarnungen", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Passwort", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "DNA", connection: 1[23:40:11] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 111.432 milliseconds[23:40:11] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:11] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Verbrechen", connection: 1[23:40:11] [WARNING] cache_get_field_content_int - no active cache[23:40:41] [DEBUG] mysql_format - connection: 1, len: 256, format: "SELECT DNA FROM accounts WHERE Name = '%s'"[23:40:41] [DEBUG] mysql_tquery - connection: 1, query: "SELECT DNA FROM accounts WHERE Name = 'FerienFreak'", callback: "Laborcheck", format: "d"[23:40:41] [DEBUG] CMySQLQuery::Execute[Laborcheck] - starting query execution[23:40:41] [DEBUG] CMySQLQuery::Execute[Laborcheck] - query was successfully executed within 104.893 milliseconds[23:40:41] [DEBUG] CMySQLResult::CMySQLResult() - constructor called[23:40:41] [DEBUG] Calling callback "Laborcheck"..[23:40:41] [DEBUG] cache_get_row_count - connection: 1[23:40:41] [DEBUG] cache_get_row - row: 0, field_idx: 0, connection: 1, max_len: 125[23:40:41] [DEBUG] CMySQLResult::GetRowData - row: '0', field: '0', data: "F87ADC2HB4"[23:40:41] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called[23:41:01] [DEBUG] mysql_escape_string - source: "FerienFreak", connection: 1, max_len: 24[23:41:01] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE accounts SET Geld='0',Level='0',Adminlevel='7',IP='',Bann", callback: "(null)", format: "(null)"[23:41:01] [DEBUG] CMySQLQuery::Execute[] - starting query execution[23:41:01] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 112.603 milliseconds[23:41:01] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving[23:42:28] [DEBUG] mysql_close - connection: 1[23:42:28] [DEBUG] CMySQLConnection::Disconnect - connection was closed[23:42:28] [DEBUG] CMySQLConnection::Disconnect - connection was closed[23:42:28] [DEBUG] CMySQLHandle::~CMySQLHandle - deconstructor called


    Jeffry: