[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
  • Er sagt ja er möchte ein automatisches Unmute System. Wenn einer für 6 Stunden gemutet ist müsste er sich bei deiner Lösung dann extra ausloggen um wieder fragen zu können. Ich mache solche Systeme ganz einfach. Ich frage den jetzigen Timestamp ab und addiere die Mute Zeit in Millisekunden dazu und setze diese Zeit in einer Variabel.
    Bei jedem Chat oder alles wo man gemutet ist frag ich dann einfach den jetzigen Timestamp ab und wenn dieser unter dem in der gespeicherten Variable ist, ist der Spieler weiterhin gemuted. Andersfalls wird der Spieler entmuted.


    mfg

    RFT

  • Ich habe von den Speichersystem noch jetzt wenig Ahnung deswegen verwende ich MySQL, weil ich da schon mehr Erfahrung habe (2 Jahre)


    Andere Frage, wie füge ich einen Transparenzgrad zu einem Gangzone Gebiet zu? Hab ich vergessen ^^

    SA:MP in 2020?

  • Beitrag von YaBroo ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: not updated ().
  • Hab da noch mal ne Frage, wie entfernt man den "standard" Kontent?


    Geld für Stunts, Interrior Eingänge ausm Singleplayer etc.

    DisableInteriorEnterExits(); // Entfernung der Interior-Ein,-Ausagänge
    EnableStuntBonusForAll(0); // Entfernung des Stuntbonus


    Beides unter OnGameModeInit

    KleineHilfe 2.0

  • Hey ich habe ein Problem
    Undzwar wenn sich Spieler aufm Server ein haus kaufen und dort spawnen wollen geben sie /spawnchange ein.
    Dann sollten sie NORMAL in ihrem Haus SPAWNEN.Aber sie spawnen am Strand HausID 0
    if(strcmp("/spawnchange", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pPhousekey] != -1)
    {
    if(PlayerInfo[playerid][pSpawn] == 1)
    {
    SendClientMessage(playerid, COLOR_GREEN, " Beim nächsten Mal spawnst du am normalen Platz!");
    PlayerInfo[playerid][pSpawn] = 0;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN, " Beim nächsten Mal spawnst du an deinem eigenen/gemieteten Haus!");
    PlayerInfo[playerid][pSpawn] = 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN, " Du hast kein Haus / Wohnung!");
    return 1;
    }
    }
    return 1;
    }
    Spawnchange befehl






    Und wenn ich allgemein Spawne Sterbe ich auch andere spieler...
    OnPlayerSpawn
    public OnPlayerSpawn(playerid)
    {
    L_AntiWeaponHack(playerid);
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, sizeof(playername));
    //Server Bots
    new plrIP[16];
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
    if(strcmp(plrIP, "80.82.222.105", true) == 0)
    {
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new string[123];
    format(string, sizeof(string), "UPDATE `users` SET `Status`='1' WHERE `Name`='%s'", sendername);
    self_mysql_queryEx(string);
    format(string, sizeof(string), "UPDATE `users` SET `Legende`='1' WHERE SQLid = '%d'", PlayerInfo[playerid][pSQLID]);
    self_mysql_queryEx(string);
    new Level = random(20) + 1;
    SetPlayerSkin(playerid, 1);
    SetPlayerScore(playerid, Level);
    PlayerInfo[playerid][pLevel] = Level;
    PlayerInfo[playerid][pSex] = 1;
    SetCameraBehindPlayer(playerid);
    PlayerInfo[playerid][pTut] = 1;
    StopAudioStreamForPlayer(playerid);
    PlayerInfo[playerid][pNummer] = 56854;
    PlayerInfo[playerid][pPhousekey] = -1;
    PlayerInfo[playerid][pBizKey] = -1;
    PlayerInfo[playerid][pBank] = 103456;
    GivePlayerMoneys(playerid, 5211);
    PlayerInfo[playerid][pCrimes] = 3;
    PlayerInfo[playerid][pArrested] = 0;
    PlayerInfo[playerid][pArrestTime] = 0;
    PlayerInfo[playerid][pKills] = 21;
    PlayerInfo[playerid][psKills] = 0;
    PlayerInfo[playerid][pDeaths] = 0;
    PlayerInfo[playerid][pMember] = -1;
    PlayerInfo[playerid][pLeader] = -1;
    /*Scheine*/
    PlayerInfo[playerid][pGunLic] = 1;
    PlayerInfo[playerid][pFlyLic] = 1;
    PlayerInfo[playerid][pCarLic] = 1;
    PlayerInfo[playerid][pBikeLic] = 1;
    gPlayerLogged[playerid] = 1;
    }

  • Zuerst bei diesem
    Befehlif(strcmp("/rentroom", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    GetPlayerName(playerid, playername, sizeof(playername));
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 1 && HouseInfo[h][hRentabil] == 1)
    {
    if(PlayerInfo[playerid][pPhousekey] != -1 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du besitzt bereits ein Haus, benutze /sellhouse um das Haus zu verkaufen und dich hier einmieten zu können.");
    return 1;
    }
    if(PlayerInfo[playerid][pPhotelkey] != -1)
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du bist noch in einem Hotel angemeldet, benutze /abmelden.");
    return 1;
    }
    if(PlayerInfo[playerid][pCash] > HouseInfo[h][hRent])
    {
    PlayerInfo[playerid][pPhousekey] = h;
    GivePlayerMoneys(playerid,-HouseInfo[h][hRent]);
    HouseInfo[h][hKasse] += HouseInfo[h][hRent];
    PlayerPlayMusic(playerid);
    SetPlayerInterior(playerid,HouseInfo[h][hInt]);
    SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
    new h2 = h + 300;
    SetPlayerVirtualWorld(playerid,h2);
    GameTextForPlayer(playerid, "~w~Willkommen Zuhause~n~Du kannst das Haus jederzeit mit /exit verlassen", 5000, 3);
    PlayerInfo[playerid][pLocal] = h+300;
    SendClientMessage(playerid, COLOR_WHITE, "Gratulation, du bist nun in deinem gemieteten Haus.");
    SendClientMessage(playerid, COLOR_WHITE, "Benutze /help um die neuen Befehle zu sehen.");
    PlayerInfo[playerid][pSpawn] = 1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " So viel Geld hast du nicht !");
    return 1;
    }
    }
    }
    }
    return 1;
    }
    if(strcmp("/spawnchange", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pPhousekey] != -1)
    {
    if(PlayerInfo[playerid][pSpawn] == 1)
    {
    SendClientMessage(playerid, COLOR_GREEN, " Beim nächsten Mal spawnst du am normalen Platz!");
    PlayerInfo[playerid][pSpawn] = 0;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN, " Beim nächsten Mal spawnst du an deinem eigenen/gemieteten Haus!");
    PlayerInfo[playerid][pSpawn] = 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREEN, " Du hast kein Haus / Wohnung!");
    return 1;
    }
    }
    return 1;
    }
    @YaBroo

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wie sollte ich das am besten anstellen? Hab noch nie mehrere strings in einer Zeile benutzt.

    stringtotal[1024];
    string1,[256],string2[256],string3[256],string4[256];
    format(stringtotal,1024,%s%s%s%s,string1,string2,string3,string4);

    Bitte sowas nicht machen, das ist extrem speicher-verschwendend und dazu ziemlich unübersichtlich.


    Da in Queries meistens Platzhalter benötigt werden fällt strcat weg, mit format macht man es am besten so:

    new query[1024];
    format(query,sizeof(query),"UPDATE tabelle ");
    format(query,sizeof(query),"%s SET spalte = '%d', ", query, 1);
    format(query,sizeof(query),"%s spalte2 = '%d', ", query, 2);
    format(query,sizeof(query),"%s spalte3 = '%d' ", query, 3);
    format(query,sizeof(query),"%s WHERE id = '%d'", query, 1337);

  • Sonst mach doch einfach, falls es eine bestimmte Wand ist, if(PlayerIsInRangeOfPoint(playerid, radius, x, y, z);


    Edit: Nochmal ne Frage von mir: Wie verknüpft man Objekte mit Spielern und Fahrzeugen richtig? Das hab ich ein mal versucht ging aber irgendwie schief.


    (AttachObjectToPlayer oder sowas :P)


    Habe nämlich vor Sirenen an Fahrzeugen wie Sultan, Infernus und so weiter anzubauen, damit sie als "undercover" Fahrzeuge verwendet werden können so wie man es Deutschland oder Amerika kennt.
    Per Befehl abbaubar und anbaubar

    SA:MP in 2020?