[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
  • Du musst abfragen, ob beide Personen (Täter & Opfer 8o) in den bestimmten Zone sind (IsPlayerInArea-Funktion).
    Wenn der Täter den Opfer in dieser bestimmten Zone getroffen hat, dann musst du das Heal / Armour abfragen was abgezogen werden würde, und wieder geben.


    Das war's eigentlich schon

    Einmal editiert, zuletzt von AirM4X () aus folgendem Grund: Expander entfernt -> war nicht die beste Idee

  • Beitrag von Kinimod ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von Jeffry ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Eine frage wie kann ich das so machen das wenn man einen NPC headshottet ihn one hit hat ?


    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    if(issuerid != INVALID_PLAYER_ID && weaponid == 34 && bodypart == 9)
    {
    SetPlayerHealth(playerid, 0.0);
    }
    return 1;
    }


    also so wäre es mit der sniper auf jeden spieler wie mache ich das es nur auf npc's so geht ?
    benutze das include: a_rnpc
    also was müsste ich oben ändern?
    ps: man kann die npc's bereits töten aber mit headshot nich onehitten

  • Mit der Abfrage IsPlayerNPC(playerid);
    Würde dann ungefähr so aussehen..



    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
    {
    if(issuerid != INVALID_PLAYER_ID && weaponid == 34 && bodypart == 9)
    {
    if(IsPlayerNPC(playerid))
    {
    SetPlayerHealth(playerid, 0.0);
    }
    }
    return 1;
    }


    Mit freundlichen Grüßen
    Zeuto

  • Beitrag von Kinimod ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Wieso kommt dieser Warning?
    C:\Users\kevin\Desktop\server\gamemodes\self.pwn(177) : warning 204: symbol is assigned a value that is never used: "rollerpoint"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    rollerpoint = CreatePickup(1239,1,604.7900,-1489.4922,14.9479,0);

  • Weil du "rollerpoint" nirgends verwendest.
    Du hast nur:
    new rollerpoint;
    und
    rollerpoint = CreatePickup(1239,1,604.7900,-1489.4922,14.9479,0);


    Das macht die Variable sinnlos, daher die Warnung. Du kannst sie genauso gut weglassen, das würde nichts ändern.


    => Entweder verwenden, oder weg machen.


    Verwenden wäre zum Beispiel eine if-Verknüpfung oder zum Beispiel in DestroyPickup.

  • Für das Grundprinzip von MySQL ist das ausreichend, ja. Wenn du später mehr lernen willst, dann würde ich dir folgendes raten auch mal in die neuen Releases (R39-2 zur Zeit) einen Blick zu werfen, diese sind von der Performance besser, allerdings für Anfänger schwerer zu verstehen, daher ist es gut, wenn du mit diesem Tutorial anfängst und dann weiter machst.

  • 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.

  • for(new i=4; i>=1; i--)
    {
    topTimes[i+1] = topTimes[i];
    topTimes[i+5] = topTimes[i+5];
    }


    Das würde den Wert von 4 auf 5 verschieben, den Wert von 3 auf 4, von 2 auf 3 und von 1 auf 2, sodass du bei 1 den neuen Wert setzen kannst und der bei 0 bleibt gleich. Jeweils das selbe mit den Positionen +5.


    Ist das was du willst?


  • 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

  • Hmm, nicht wirklich.


    So?
    for(new i=0;i<=sizeof(topTimes)/2;i++)
    {
    if(tick-MapTimeDM < topTimes[i] || topTimes[i] == 0)
    {
    for(new p=4; p>=i; p--)
    {
    topTimes[p] = topTimes[p-1];
    topTimes[p+5] = topTimes[p+4];
    }
    topTimes[i] = tick-MapTimeDM;
    topTimes[i+5] = 1; //Hier die User ID eintragen
    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-4,rMin, rS, rMS);
    break;
    }
    }

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()

  • Oh ja, stimmt. Der Code von mir hat nicht gepasst, als ich deinen Code verglichen habe, habe ich dann auch dein Prinzip verstanden, was du eigentlich vor hast damit. Ich hätte es mit zwei Variablen gemacht, aber du geht es auch, etwas kompliziert eben.


    Ich habe meinen Code nochmals geändert, so dürfte es auch klappen. Aber wenn du es hast passt es ja, das war ja das Ziel. Super! :good:

  • Moin,
    Habe eine Mysql datenbank die über mein Rechner läuft also Xampp. Habe im Script die Daten eingeben
     #define SQL_HOST "localhost"
    #define SQL_USER "root"
    #define SQL_PASS ""
    #define SQL_DATA "samp"


    Aber wenn ich auf Server starten will dann sagt er mir das er keine Verbindung zur Db aufbauen kann...

    Spoiler anzeigen

    SA-MP Dedicated Server
    ----------------------
    v0.3z, (C)2005-2014 SA-MP Team

    Spoiler anzeigen
    [02:07:02] filterscripts = "" (string)
    [02:07:02]
    [02:07:02] Server Plugins
    [02:07:02] --------------
    [02:07:02] Loading plugin: mysql
    [02:07:02]

    Spoiler anzeigen
    > MySQL plugin R5 successfully loaded.

    Spoiler anzeigen
    [02:07:02] Loaded.
    [02:07:02] Loaded 1 plugins.

    Spoiler anzeigen
    [02:07:03]
    [02:07:03] Filterscripts
    [02:07:03] ---------------
    [02:07:03] Loaded 0 filterscripts.

    Spoiler anzeigen
    [02:07:03] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
    [02:07:03] <-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!
    [02:07:03] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
    [02:07:03] <-| [MYSQL] Der Server wird nun beendet!
    [02:07:03]
    ----------------------------------
    [02:07:03] Blank Gamemode by your name here
    [02:07:03] ----------------------------------

    Spoiler anzeigen
    [02:07:03] Number of vehicle models: 0
    [02:07:03] --- Server Shutting Down.


    kann mir wer sagen woran der Fehler liegen kann?