[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
  • Sieht nun so aus.
    Dennoch der selbe Fehler...
    Hab ich was falsch gemacht @Kaliber
    public OnPlayerSpawn(playerid)
    {
    if(PlayerInfo[playerid][pSpawntyp] == 1){
    SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_X], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Y], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_Z], fInfo[PlayerInfo[playerid][pFraction]][fSpawn_R], 0, 0, 0, 0, 0, 0);
    }else{
    SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], -2446.1797, 2512.5159, 15.7003, 279.0161, 0, 0, 0, 0, 0, 0);
    }
    if(PlayerInfo[playerid][pPremium] == 1){
    GivePlayerWeapon(playerid, 24, 50);
    }
    return 1;
    }

  • Nicht unter OnPlayerSpawn..
    Schau dir die Funktionen mal genau an.
    AddPlayerClass unter OnGameModeInit
    oder SetSpawnInfo unter OnPlayerRequestClass


    #Handy

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Weiß jemand wieso mein /set nicht funktioniert?
    Er speichert überhaupt nichts.
    COMMAND:set(playerid, params[])
    {
    new id, item[25], ammount;
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    SendClientMessage(playerid, -1, "Verfügbare Items: Adminlevel, Bargeld, Bankkonto, Festgeld, Leben, Rüstung, Premium");
    SendClientMessage(playerid, -1, "Verfügbare Items: Skin, Level, Kills, Tode, Fraktion, Rang");
    if(sscanf(params, "us[25]i", id, item, ammount))return SendClientMessage(playerid, COLOR_TIP,"Tippe: /set [playerid] [item] [wert] ");
    if(strcmp(item, "Adminlevel", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat dir das Adminlevel %s(Adminlevel: %d) gegeben.", a_rang[ammount],ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pAdmin] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Bargeld", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat dein Bargeld auf %d$ gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pMoney] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Bankkonto", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat dein Bankkonto auf %d$ gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pBmoney] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Festgeld", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    if(ammount >= 1250000)return SendClientMessage(playerid, COLOR_ERROR, "Du kannst nur 1.250.000$ als Festgeld anlegen");
    new string[128];
    format(string,sizeof(string),"Das System hat dein Festgeld auf %d$ gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pFmoney] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Leben", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat dein Leben auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    SetPlayerHealth(id,ammount);
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Rüstung", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat deine Rüstugn auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    SetPlayerArmour(id, ammount);
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Premium", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat dein Premiumstatus auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pPremium] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Skin", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat deinen Skin auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pSkin] = ammount;
    SetPlayerSkin(id, ammount);
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Level", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat deinen Level auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pLevel] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Kills", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat deine Kills auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pKills] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Tode", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat deine Tode auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pDeaths] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Fraktion", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat deine Fraktion auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pFraction] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }
    if(strcmp(item, "Rang", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid, COLOR_ERROR, "Keine Berechtigung");
    {
    new string[128];
    format(string,sizeof(string),"Das System hat deinen Fraktionsrang auf %d gesetzt.", ammount);
    SendClientMessage(id, COLOR_SYSTEM, string);
    PlayerInfo[id][pRang] = ammount;
    SaveUserStats(id);
    return 1;
    }
    }


    return 1;
    }


    stock SaveUserStats(playerid)
    {
    //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
    if(!PlayerInfo[playerid][pLoggedIn]) return 1;
    //Ansonsten speichere sie
    new query[1024];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', bmoney = '%d', fmoney = '%d', kills = '%d', deaths = '%d', admin = '%d', skin = '%d', spawntyp = '%d', fraction = '%d', rang = '%d', leader = '%d', wanted = '%d', wantedreason = '%s', premium = '%d', banned = '%d', banadmin = '%s', banreason = '%s', contracted = '%d', kaution = '%d' WHERE name = '%e'",
    PlayerInfo[playerid][pLevel], GetPlayerMoney(playerid), PlayerInfo[playerid][pBmoney], PlayerInfo[playerid][pFmoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pSpawntyp], PlayerInfo[playerid][pFraction], PlayerInfo[playerid][pRang], PlayerInfo[playerid][pLeader], PlayerInfo[playerid][pWanted], PlayerInfo[playerid][pWantedreason], PlayerInfo[playerid][pPremium],
    PlayerInfo[playerid][pBanned], PlayerInfo[playerid][pBanadmin], PlayerInfo[playerid][pBanreason], PlayerInfo[playerid][pContracted], PlayerInfo[playerid][pKaution], PlayerInfo[playerid][pName]);
    //Das Query wird abgesendet
    mysql_pquery(handle, query);
    printf("Account gespeichert - Name: %s", PlayerInfo[playerid][pName]);
    return 1;
    }

  • Mois,
    Wenn ich einem Anhänger eine Respawntime gebe, heißt ja wenn niemand im Fahrzeug ist...
    Oder respawnt mein Anhänger nicht, wenn dieser an einem LKW dran ist?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wenn ich einem Anhänger eine Respawntime gebe, heißt ja wenn niemand im Fahrzeug ist...
    Oder respawnt mein Anhänger nicht, wenn dieser an einem LKW dran ist?

    Sagen wir mal aus Spaß du gibst ihm eine Respawn-Zeit von 5 Sekunden, dann gilt folgendes:


    • Verschiebst du den Anhänger, respawnt dieser nicht, diese ganze respawn Zeit wird erst getriggert durch das Anhängen an ein Fahrzeug.
    • 5 Sekunden nachdem der Anhänger entkuppelt wurde, respawnt er.
    • 5 Sekunden nachdem der Fahrer ausgestiegen ist, respawnt der Anhänger.
    • Ist der Spieler im Fahrzeug, aber 5 Sekunden AFK, respawnt der Anhänger leider auch.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Vielen Dank Sir,
    Warum auch immer man den 4. Punkt eingeführt hat, sehr fragwürdig...
    Aber was, wenn jemand so lustig ist und meine Anhänger weg schiebt oder sogar mit Modifkationen wohin schießt :D.
    Währe es sinnvoll so alle 5 Minuten einen Timer laufen zu lassen der die Sachen respawnt?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Warum auch immer man den 4. Punkt eingeführt hat, sehr fragwürdig...

    Naja technisch betrachtet, wenn man auf dem Desktop ist, befindet man sich nicht wirklich im Fahrzeug (deshalb greift Punkt 3)


    Ob das mit dem respawn sinnvoll ist oder nicht, das musst du entscheiden xD


    Aber klingt ganz plausibel ;)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Beitrag von FutureStunt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Selbst gefixxt ().
  • Hey, die vorherigen Probleme konnte ich lösen. Es hat eine Spalte in der Tabelle gefehlt. @Kaliber


    Kannst du mir mal nen Denkanstoß geben wieso mein Befehl nicht funktioniert?
    Ich erstelle eine Schleife und gehe Schritt für Schritt durch alle Pickups durch(Pickup ist erstellt).
    Leider kann ich es nicht betreten.
    COMMAND:enter(playerid)
    {
    for(new i=0; i<MAX_ENTERPICKUPS; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, pickInfo[i][pickEnter_X], pickInfo[i][pickEnter_Y], pickInfo[i][pickEnter_Z], 5.0)){
    SetPlayerPos(playerid, pickInfo[i][pickExit_X], pickInfo[i][pickExit_Y], pickInfo[i][pickExit_Z]);
    SetPlayerInterior(playerid, pickInfo[i][pickInterior]);
    }else{
    SendClientMessage(playerid, -1, "Du bist an keinem Eingang");
    }
    }
    return 1;
    }

  • Beitrag von itsMagic. ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Du hast die Parameter in IsPlayerInRangeOfPoint vertauscht.


    Mach es so:



    Das hat den Vorteil, dass du die Funktion immer wieder verwenden kannst.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Guten Morgen,


    Und zwar rechnet er keine 3.5 Prozent Zinsen auf das Geld, warum ?



    new Festgeldstr = Spieler[playerid][pFestgeld];
    floatround(Festgeldstr*3.50/100);

    Einmal editiert, zuletzt von ARCADION ()

  • Was steht denn in der Variable Festgeld?
    Was ist der Unterschied zwischen pFestgeld und Festgeld?

    Festgeld ist sowas wie ein Sparbuch, wo Er 3.5 Prozent Zinsen kriegt.


    Das Festgeld ist unterschiedlich hoch mal 350000 oder mehr als 1000000...

  • Ja, aber auf was soll er jetzt Zinsen bekommen?


    Mach das mal ein Pseudo-Beispiel..


    Zum Beispiel:


    pFestgeld = 5$
    Festegld = 100$
    Zinsen auf beides?! 105$ davon 3% Zinsen = 3.15$ die er zusätzlich bekommt?!

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S



  • floatround(Spieler[playerid][pFestgeld]/3.5);
    Spieler[playerid][pKonto] += Spieler[playerid][pFestgeld];
    format(string,sizeof(string),"* SYSTEM hat dir %d$ überwiesen. Betreff: Festgeld Auszahlung (3.50% Zinsen)",Spieler[playerid][pFestgeld]);
    SendClientMessage(playerid,Gruen,string);


    Er soll nur auf das Festgeld die 3.5 Prozent Zinsen bekommen.

  • Wenn ich dich richtig verstanden habe, dann so:



    Spieler[playerid][pFestgeld] = floatround(floatmul(Spieler[playerid][pFestgeld],1.035));
    Spieler[playerid][pKonto] += Spieler[playerid][pFestgeld];
    format(string,sizeof(string),"* SYSTEM hat dir %d$ überwiesen. Betreff: Festgeld Auszahlung (3.50% Zinsen)",Spieler[playerid][pFestgeld]);
    SendClientMessage(playerid,Gruen,string);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hallo, wie kriege ich raus wie viel Benzin schon von MaxLiter weg ist mittels tLiter ?


    Also wie viel Liter gerade für die Tanke Benötig wird.



    Tanke[tankeID][tLiter]
    Tanke[tankeID][tMaxLiter]