Nützliche Codeschnipsel

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Klein aber fein. Ganz gut für diejenigen die die $-Anzeige ersetzen wollen. ^^


    BTW: Warum ein String mit einer Länge von 128? Da reichen sogar schon 12.

  • Ganz oben in script:


    new hospitalpickup;


    In Gamemodinit:


    hospitalpickup = CreatePickup(1240,1,1172.6083,-1323.5745,15.4031); // Hospital


    in OnPlayerPickUpPickup


    if (pickupid == hospitalpickup)
    {
    GameTextForPlayer(playerid, "~r~General Saints Hospital~n~~y~Type /healme to be healed~n~Healing: 300$",5000, 3);
    }
    }


    In OnPlayerCommandText:


    if (strcmp(cmdtext, "/healme", true) == 0)
    {
    if(PlayerToPoint(3, playerid, 1172.6083,-1323.5745,15.4031)) // 24/7 enterance
    if(GetPlayerMoney(playerid) >= 300)
    {
    GivePlayerMoney(playerid,-300);
    SendClientMessage(playerid, COLOR_WHITE, "You have been healed for 300$");
    SendClientMessage(playerid, COLOR_RED, "If you didn't get healed, you");
    SendClientMessage(playerid, COLOR_RED, "obviously don't have enough money.");
    SetPlayerHealth(playerid,100);
    }
    return 1;
    }

    Einmal editiert, zuletzt von Matze_Bellic ()

  • Matze sieht aus wie das aus dem GF
    ausserdem hast du einen Fehler:
    if(GetPlayerMoney(playerid) > 300)
    bedeutet dass wenn man nur $300 hat kann man nicht geheilt werden, besser:
    if(GetPlayerMoney(playerid) >= 300)

    you have been Traceured.


  • ...
    Matze: Lies dir mal bitte die Regeln durch!

    Zitat

    Es ist streng verboten ein fremdes Script als sein eigenes zu veröffentlichen. Bei einer Modifikation fremder Scripte sind stets die ursprünglichen Autoren anzugeben.


    Selbst der Codeschnipsel ist kopiert :O
    http://forum.sa-mp.com/index.p…12197.msg617236#msg617236
    Und sag nich, das ist ein Zufall. Ein Zufall wobei selbst die Nachricht übereinstimmt -.-


    Mit freundlichen Grüßen,
    Mr_Hero

  • Wenn ich wüsste, was das is, könnt ich dir auch ne Antwort geben...


    Ne im Ernst, es is doch kacke, wenn man einfach die Arbeit eines anderen als die seine ausgibt.
    Und in diesem Fall ist sie zu 100% kopiert...
    Wenn ich das Script (auch wenns nur ein "snippet" is) gemacht hätte, würde ich mich tierisch aufregen, wenn jemand es als seins ausgibt...


    Naja, is mir eig. auch egal.
    Sind ja im völlig falschen Thema...back²topic :whistling:


    Mit freundlichen Grüßen,
    Mr_Hero

  • Grab/Podest am Sterbeplatz eines Spielers mit Timer zum Zerstören



    Mit dem Scriptausschnitt erscheint am Sterbeplatz ein Podest + Icon mitdem man ein Menü eröffnet und zb. der Leiche Geld entnimmt


    Optionen




    Zitat


    - Leiche schänden
    - Geld entnehmen
    - Leiche wiederbeleben
    - Leiche zurücklassen


    Ihr könnt das über das Menü einfügen oder auch andere Optionen verwenden



    //=========Oben auf euer Script================//


    new Menu:TotenMenu;
    forward GrabsteinEntf(playerid);


    //=========Unter OnPlayerDeath===============//


    new pName[30], InfoString[30];
    GetPlayerPos(playerid, TotX, TotY, TotZ);
    GetPlayerFacingAngle(playerid, TotAngle);
    GetPlayerName(playerid, pName, 30);
    Grabstein = CreatePlayerObject(playerid, 2745, TotX+2, TotY, TotZ+0.2, 0.0000, 0.0000, TotAngle-180);
    SetTimerEx("GrabsteinEntf", 40000, 0, "i", playerid);
    format(InfoString, 256, "%s hat das Zeitliche gesengnet.", pName);
    SendClientMessage(playerid, YELLOW, InfoString);
    Totenkopf = CreatePickup(1254, 2, TotX, TotY, TotZ);


    //==================Wohin ihr wollt===================//


    public GrabsteinEntf(playerid)
    {
    DestroyPlayerObject(playerid, Grabstein);
    DestroyPickup(Totenkopf);
    return 0;
    }


    //=================Unter Ongamemodeinit=============//


    TotenMenu = CreateMenu("~b~ Inventar:",1,50,220,200,200);
    AddMenuItem(TotenMenu, 0, "Waffenaufheben");
    AddMenuItem(TotenMenu, 0, "Geldmitnehmen");
    AddMenuItem(TotenMenu, 0, "Leiche ausbeuten");
    AddMenuItem(TotenMenu, 0, "Wiederbelebung");
    AddMenuItem(TotenMenu, 0, "Leiche zurucklassen");


    //=============Unter OnPlayerSelectedMenuRow=================//


    if(Current == TotenMenu)
    {
    switch(row)
    {
    case 0:
    {
    SendClientText(playerid, GREEN, "Du hast deine Waffen mitgenommen");
    //Macht hier was auch immer ihr wollt
    }
    case 1:
    {
    SendClientText(playerid, GREEN, "Du hast dein Geld mitgenommen");
    //Macht hier was auch immer ihr wollt
    }
    case 2:
    {
    SendClientText(playerid, GREEN, "Du hast die Leiche ausgebeutet");
    //Macht hier was auch immer ihr wollt
    }
    case 3:
    {
    SendClientText(playerid, GREEN, "Du hast die Leiche wiederbelebt");
    //Macht hier was auch immer ihr wollt
    }
    case 4:
    {
    SendClientText(playerid, GREEN, "Du hast die Leiche zurueckgelassen");
    //Macht hier was auch immer ihr wollt
    }
    }
    }

    [align=center]
    Mta Script Editor - Work in Progress

  • Schnelle + Kurze Kopier Funktion für Textwerte:


    stock StringCopy(destination[], Source[])
    {
    new index = 0;
    while(index < strlen(Source))
    {
    destination[index] = Source[index];
    index++;
    }
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • //Keks: keine Fullquotes

    Würde es so gerne benutzen bekomme aber leider errors :(
    pls help.



    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1144) : error 017: undefined symbol "TotX"
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1145) : warning 213: tag mismatch
    C:\Users\\\Samp Herz\gamemodes\Hayfun.pwn(1147) : error 017: undefined symbol "TotX"
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1151) : error 017: undefined symbol "TotX"
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1158) : warning 213: tag mismatch
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1164) : error 017: undefined symbol "SendClientText"
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1169) : error 017: undefined symbol "SendClientText"
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1174) : error 017: undefined symbol "SendClientText"
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1179) : error 017: undefined symbol "SendClientText"
    C:\Users\\Desktop\Samp Herz\gamemodes\.pwn(1184) : error 017: undefined symbol "SendClientText"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    8 Errors.

    < Beatboxen ist leicht > Beatboxen & Singen/Rappen ist schwerer >

    Einmal editiert, zuletzt von KeksOfDeath ()

  • OK habe jetzt zwei warnings...



    C:\Users\\Desktop\Samp Herz\\.pwn(1148) : warning 213: tag mismatch
    C:\Users\\Desktop\Samp Herz\\.pwn(1161) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.


    Zeile 1148


    GetPlayerFacingAngle(playerid, TotAngle);


    Zeile 1161


    if(Current == TotenMenu)

    Danke

    < Beatboxen ist leicht > Beatboxen & Singen/Rappen ist schwerer >

  • Zitat

    ich hab mal garkein plan von scripten aber ich will nen RL server starten kann mir einer helfen?
    MFG [EGD]Shadow


    ich bin 5 jahre alt kann nicht denken aber ich will in die 10. klasse eines gymnasiums???

  • ......


    Ich glaube jetzt sollten wir mal wieder zum eigentlichen Thema des Topics zurück kehren, nützliche Codeschnipsel.


    Kleine ClearChat Funktionen:
    stock ClearPlayerChat(playerid, lines)
    {
    for(new l = 0; l < lines; l++) SendClientMessage(playerid, 0xFFFFFFFF, "\n");
    return 1;
    }


    stock ClearServerChat(lines)
    {
    for(new l = 0; l < lines; l++) SendClientMessageToAll(0xFFFFFFFF, "\n");
    return 1;
    }


    Dazu noch ein kleines Anti-Moneyhack, ganz einfach :>


    /* Nach ganz oben hin, unter die Includes */
    new PlayerCash[MAX_PLAYERS]


    /* Zu den anderen Defines */
    #define ResetMoneyBar ResetPlayerMoney
    #define UpdateMoneyBar GivePlayerMoney


    /* Nach ganz unten ins Script */
    /* GivePlayerCash Funktion - Gibt dem Spieler Geld. */
    stock GivePlayerCash(playerid, money)
    {
    PlayerCash[playerid] += money;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,PlayerCash[playerid]);
    return PlayerCash[playerid];
    }


    /* TakePlayerCash Funktion - Nimmt dem Spieler Geld. */
    stock TakePlayerCash(playerid, money)
    {
    PlayerCash[playerid] -= money;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid, PlayerCash[playerid]);
    return PlayerCash[playerid];
    }


    /* SetPlayerCash Funktion - Setzt das Geld des Players auf einen bestimmten Wert */
    stock SetPlayerCash(playerid, money)
    {
    PlayerCash[playerid] = money;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,PlayerCash[playerid]);
    return PlayerCash[playerid];
    }


    /* ResetPlayerCash Funktion - Resettet das Geld des Spielers */
    stock ResetPlayerCash(playerid)
    {
    PlayerCash[playerid] = 0;
    ResetMoneyBar(playerid);
    UpdateMoneyBar(playerid,PlayerCash[playerid]);
    return PlayerCash[playerid];
    }


    /* GetPlayerCash Funktion - returnt das Geld des Spielers*/
    stock GetPlayerCash(playerid)
    {
    return PlayerCash[playerid];
    }


    /* Und noch abschließend um das Geld eines Cheaters zurück zu setzen: */


    public OnGameModeInit() {
    SetTimer("AntiMoney", 2487, 1); // MUSS SEIN!
    return 1;
    }


    @AntiMoney(); // Anstelle von "forward"
    @AntiMoney() // Anstelle von "public"
    {
    new h;
    for(; h < MAX_PLAYERS; h++) // Schleife die alle Spieler überprüft
    {
    if(GetPlayerCash(h) != GetPlayerMoney(h)) // Sollten die Funktionen unterschiedliche Werte ausgeben stimmt was nicht
    {
    ResetMoneyBar(h);
    UpdateMoneyBar(h, GetPlayerCash(h));
    }
    }
    return 1;
    }


    EDIT:
    Durch das Benützen dieses bzw. allgemein eines Anti-Moneyhack Scripts kann man Sprunk Automaten, Pay 'n' Spray sowie Tuninggaragen kostenlos benutzen.

    Einmal editiert, zuletzt von [NSG]Bright ()

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