[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
  • PAWN Quelltext
    1
    2
    new string[20];
    format(string,sizeof(string),"%d-%d-%d %d:%d:%d",Jahr,Monat,Tag,Stunden,Minuten,Sekunden):


    new query[256], Jahr, Monat, Tag, Stunden, Minuten, Sekunden;
    gettime(Stunden, Minuten, Sekunden);
    getdate(Jahr, Monat, Tag);
    format(FormatString,SizeOfFormatString,"%d-%d-%d %d:%d:%d",Jahr,Monat,Tag,Stunden,Minuten,Sekunden)
    format(query, sizeof(query), "UPDATE samp_players SET lastlogin = %i WHERE SpielerName = '%s'", FormatString, GetName(playerid));
    mysql_query(query);
    print(query);


    so?

  • Strings müssen in Anführungszeichen übergeben werden.


    format(query, sizeof(query), "UPDATE samp_players SET lastlogin = '%s' WHERE SpielerName = '%s'", FormatString, GetName(playerid));


    DeaN Hunter: Gewöhne dir auch gleich eine ungeschriebene Programmiererregel an: Variablen werden am Anfang immer klein geschrieben.

  • Hallo allerseits!


    Ich habe eine Frage bezüglich eines enums. Und zwar möchte ich gerne eine auflistung machen, wo ich alle variablen namen sehe und dessen wert. Es handelt sich um meine Spieler Variable PlayerInfo. Es soll so ermöglicht werden, dass ein Admin die Variablen im Spiele sehen kann und nun ist die frage ob es da einen einfacheren weg gibt, als alles einzeln mit einem format zu formatieren.


    Mit freundlichen Grüßen
    ChaoZz

  • Hey ;)
    Ich habe eine Frage und zwar zu mein Car System, wegen der Versteuerung.
    Wenn User X 3 Fahrzeuge hat (Infernus: 3000$), Sultan(1500$), Bullet(2000$) soll er 6500$ weniger zum Payday Kriegen.
    Aber ich weiß nicht wie ich das addieren soll von der Datenbank aus.
    Ich finde einfach kein ansatz.
    Wenn der Spieler ein auto besitzt oder mehr wird immer nur das erste auto versteuert, die anderen nicht.
    Hat jemand ein bsp code oder so? Ich arbeite mit der MySQL version R39.

  • for(new i=0; i<num_rows; i++)
    {
    new id = GetFreeCarID();
    cInfo[id][model] = cache_get_field_content_int(i,"model",dbhandle);
    new tmp_name[MAX_PLAYER_NAME];
    cache_get_field_content(i,"besitzer",tmp_name,dbhandle);
    strmid(cInfo[id][besitzer],tmp_name,0,sizeof(tmp_name),sizeof(tmp_name));
    cInfo[id][c_x] = cache_get_field_content_float(i,"cSpawnX",dbhandle);
    cInfo[id][c_y] = cache_get_field_content_float(i,"cSpawnY",dbhandle);
    cInfo[id][c_z] = cache_get_field_content_float(i,"cSpawnZ",dbhandle);
    cInfo[id][c_r] = cache_get_field_content_float(i,"cSpawnR",dbhandle);
    cInfo[id][clr1] = cache_get_field_content_int(i,"farbe1",dbhandle);
    cInfo[id][clr2] = cache_get_field_content_int(i,"farbe2",dbhandle);
    cInfo[id][d_id] = cache_get_field_content_int(i,"id",dbhandle);
    cInfo[id][csteuern] = cache_get_field_content_int(i,"steuern",dbhandle);
    cInfo[id][c_lock] = cache_get_field_content_int(i,"c_lock",dbhandle);
    cInfo[id][id_x] = CreateVehicle(cInfo[id][model],cInfo[id][c_x],cInfo[id][c_y],cInfo[id][c_z],cInfo[id][c_r],cInfo[id][clr1],cInfo[id][clr2],-1);
    gas[cInfo[id][id_x]] = 100;
    new engine, lights, alarm, doors, boonet, boot, objective;
    GetVehicleParamsEx(cInfo[id][id_x], engine, lights, alarm, doors, boonet, boot, objective);
    SetVehicleParamsEx(cInfo[id][id_x], engine, lights, alarm, cInfo[id][c_lock], boonet, boot, objective);
    }

  • Beitrag von Kinimod ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

  • stock NameDerFunktion(playerid){
    for(new i=0; i<MAX_VEHICLES; i++){
    new name[MAX_PLAYER_NAME], abzug;
    GetPlayerName(playerid, name, sizeof(name));
    if(!strcmp(name, cInfo[i][besitzer])){
    if(cInfo[i][model] == 560){ //Sultan
    abzug += 1500;
    }else if(cInfo[i][model] == 411){ //Infernus
    abzug += 3000;
    } //und so weiter
    }
    }
    return abzug;
    }


    Aus dem Kopf geschrieben und ungetestet.


    //E: http://pastebin.com/LEKPk07j

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Sooo da bin ich wieder,


    da ich sowas erstellt wo immer eins dazu gezählt wird, wenn man bei einem Team beitritt also von 0/46 auf 1/46 und so weiter. Aber ich kann so oft draufdrücken wie es geht, und er soll eigentlich nur einmal draufdrücken können... mein derzeitger Code:



    if(playertextid == Textdraw11[playerid])//US Army
    {
    if(CheckTeamAussuche == 1)
    {
    SendClientMessage(playerid,0xFF0000FF,"[FEHLER] {FFFFFF}Sie haben schon ein Team aussgesucht! Bitte wähle Sie jetzt ein Spielmode aus!");
    }
    else if(USArmyPlayerStatus > 46)return SendClientMessage(playerid,0xFF0000FF,"[FEHLER] {FFFFFF}Das Team {FF0000} 'US Army' {FFFFFF}ist zu voll!");
    {
    USArmyPlayerStatus++;
    CheckTeamAussuche = 1;
    if(GetPVarInt(playerid,"Eingeloggt") == 1 && CheckTeamAussuche == 0)
    {
    SpielerInfo[playerid][pTeamAuswahl] = 1;
    }
    }
    }


    //EDIT:


    Das mit der CheckTeamAussuche ist eine einfache Globale Variable

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

    Einmal editiert, zuletzt von [GeD]Max ()

  • Hey,
    bei mir wird Ingame nach Einfrieren nichts mehr angezeigt, warum?

    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    if(PI[playerid][pAdmin] > ADM_NONE)
    {
    if(!ADuty[playerid]) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
    new string[100],str[120];
    ClickedPlayerID[playerid] = clickedplayerid;
    if(PI[playerid][pAdmin] >= ADM_MODER)
    {
    strcat(string,"Zufluestern\n");
    strcat(string,"Scheine geben\n");
    strcat(string,"Statistiken\n");
    strcat(string,"Waffen\n");
    strcat(string,"Beobachten\n");
    strcat(string,"Kicken\n");
    strcat(string,"Respawnen\n");
    strcat(string,"Schlagen\n");
    strcat(string,"Verwarnen\n");
    if(PI[playerid][pAdmin] >= ADM_SUPER_MODER)
    {
    strcat(string,"Einfrieren\n");
    strcat(string,"Auftauen\n");
    strcat(string,"Testbefehl\n");
    if(PI[playerid][pAdmin] >= ADM_ADMIN)
    {
    strcat(string,"Ban IP\n");
    strcat(string,"Job kuendigen\n");
    strcat(string,"Test Befehl\n");
    strcat(string,"Hinporten\n");
    strcat(string,"Herporten\n");
    strcat(string,"Fraktion entlassen\n");
    if(PI[playerid][pAdmin] >= ADM_ADMIN)
    {
    strcat(string,"Waffen entziehen\n");
    strcat(string,"Leben setzten\n");
    if(PI[playerid][pAdmin] >= ADM_SUPER_ADMIN)
    {
    strcat(string,"Ruestung setzen\n");
    strcat(string,"Prison\n");
    strcat(string,"Aus haft\n");
    strcat(string,"Spitzname aendern\n");
    if(PI[playerid][pAdmin] >= ADM_GRAND_ADMIN)
    {
    strcat(string,"Admin setzen\n");
    }
    }
    }
    }
    }
    }

  • forward klauen(playerid,giveplayerid);
    public klauen(playerid,giveplayerid)
    {
    if (ProxDetectorS(5.0, playerid, giveplayerid))
    {
    new string[256],playername[24],giveplayer[24];
    GetPlayerName(playerid,playername,sizeof(playername);
    GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer);
    new money = GetPlayerMoney(giveplayerid)/4;
    format(string,sizeof(string),"[INFO] Spieler %s hat dir $%d geklaut.",playername,money);
    SendClientMessage(giveplayerid,COLOR_YELLOW,string);
    format(string,sizeof(string),"[INFO] Du hast dem Spieler %s $%d geklaut.",giveplayer,money);
    SendClientMessage(giveplayerid,COLOR_YELLOW,string);
    GivePlayerMoney(playerid,money);
    GivePlayerMoney(giveplayerid,-money);
    klauen[playerid] = 1;
    SetTimerEx("StopKlauen", 1800000, false, "i", playerid); // Alle 30 Minuten klauen
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"» Dein Opfer befindet sich nicht mehr in der Nähe.");
    return 1;
    }
    return 1;
    }


    Pawn Compiler spackt ab. Verstehe nur gerade nicht warum. Kein Klammerfehler im Script vorhanden.

  • Hallo,
    es gibt doch bestimmt ne einfachere Methode ein Script mehrsprachig zu gestalten, oder ?
    Also Englisch / Deutsch.


    Spontan fällt mir nur so was ein


    if(Sprache == 1) SendClientMessage(playerid, -1, "Deutsch");
    else SendClientMessage(playerid, -1, "English");

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen