Beiträge von Stylernero

    COMMAND:getguns(playerid,params[])
    {
    new gID,str[124];
    if(sscanf(params, "d",gID))return SendClientMessage(playerid,0xC8C8C8FF,"/getguns [Anzahl]");
    if(gID < 1 || gID > 5) return SendClientMessage(playerid,0xC8C8C8FF, "Die Anzahl muss zwischen 1 und 5 liegen!");
    if(pInfo[playerid][hGuns] >= 5)return SendClientMessage(playerid,0xC8C8C8FF,"Mehr als 5 Waffeneinheiten kannst du nicht kaufen!");
    if(IsPlayerInRangeOfPoint(playerid,2,-682.3103,965.5809,12.1328) && pInfo[playerid][Job] == 1)
    {
    for(new i = 0; i < sizeof(wdcars); i++)
    {
    if(GetPlayerVehicleID(playerid) == wdcars[i])
    {
    pInfo[playerid][hGuns]+= gID;
    GivePlayerMoney(playerid,gID* -300);
    format(str,sizeof(str),"Du hast dir %d Waffeneinheiten für %d $ gekauft",gID,gID* 300);
    SendClientMessage(playerid,0x00A8FFFF,str);
    }
    else { return SendClientMessage(playerid,0xC8C8C8FF, "Du sitzt in keinem der Pickups!"); }
    }
    }
    else { return SendClientMessage(playerid,0xC8C8C8FF, "Du bist nicht am Waffenspot oder kein Waffendealer!"); }
    return 1;
    }

    Positive: Du hast das geil gemappt, vlt die geilste mapp die ich hier gesehen habe.


    Negatives: Wo ist der Stadtort der Mapp ?? 1. Er muss zufinden sein und darf nicht zu weit von der Stadt entfernt wein. SF, LS, LV oder BS ??


    EDIT: Danke, downloade mir die !


    Bewertung:
    Idee: 2/3 (Gibt es eigentlich schon öfters)
    Arbeit: 4/4 (Hamma)
    Umsetzung: 3/3 (Das ist was ich mir unter einem Gefängis vorstelle)
    _______________
    Gesammt: 9/10


    gut (plus)

    Eignet sich vielleicht für einen Stunt Server aber glaube nicht das für nen Stuntserver gemacht wurde.
    Es gefällt mir persönlich nicht ! Deswegen diese Bewertung:


    Idee: 1/3
    Umsetzung: 2/4
    Arbeit: 2/3
    ________________
    Gesamt: 5/10


    ausreichend (minus)
    nach schulnoten system

    Ich hab eine frage bezüglich einem teil meines Krankenhaus Systems. Ich möchte das wenn die Spieler ihre Krankenhaus zeit noch nicht abgesessen haben, nach dem relog die restliche Zeit noch im Krankenhaus absitzen müssen.


    Und das der Timer auf 4 Minuten gestellt wird. Wäre nett wenn mir das einer schnell hier rein posten könnte.


    Hier die Teile des Systems:
    forward KrankenhausTimer(playerid);
    public KrankenhausTimer(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(KrankenhausAufenthalt[playerid] == 1)
    {
    KrankenhausAufenthalt[playerid] = 0;
    SpawnPlayer(playerid);
    SendClientMessage(playerid,weiß,"|____ Krankenhaus ____|");
    SendClientMessage(playerid,weiß,"Du wurdest entlassen. Die Behandlung kostet allerdings.");
    SendClientMessage(playerid,weiß,"Da du über keine Krankenversicherung verfügst, musst du den Betrag bezahlen.");
    SendClientMessage(playerid,weiß,"Kosten der Behandlung: 80$.");
    SendClientMessage(playerid,weiß,"|_____________________|");
    }
    }
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(OnlineSpawn[playerid] == 1)
    {
    for (new MSGC=0; MSGC<=100; MSGC++)
    SendClientMessage(playerid,weiß,"");
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,weiß,"|____ Krankenhaus ____|");
    SendClientMessage(playerid,weiß,"Du bist nun im Krankenhaus. Du wirst gerade behandelt und darfst das Krankenhaus");
    SendClientMessage(playerid,weiß,"nicht verlassen bis die Ärtze mit der Untersuchung fertig sind. Dieser Vorgang");
    SendClientMessage(playerid,weiß,"wird eine Zeit von mindestens 3 Minuten nach sich ziehen.");
    SendClientMessage(playerid,weiß,"|_____________________|");
    SetTimerEx("KrankenhausTimer",KRANKENHAUS_ZEIT*1000,0,"i",playerid);
    TogglePlayerControllable(playerid, 0);
    SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);
    SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105);
    SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119);
    SetPlayerInterior(playerid, 0);
    KrankenhausAufenthalt[playerid] = 1;
    }
    return 1;
    }

    Hier sind die Zeilen:
    if(listitem == 2)
    {
    new String[128];
    new Name[MAX_PLAYER_NAME];
    new Geld = Spieler[playerid][Bankguthaben];
    GetPlayerName(playerid,Name,sizeof Name);
    format(String,sizeof(String),"[Kontostand von %s]\nGeld: %d\nSparkasse",Name,Geld);
    ShowPlayerDialog(playerid,DIALOG_STYLE_MSGBOX,0,"Sparkasse Kontostand",String,"Weiter","Weiter");
    return 1;
    }


    C:\Dokumente und Einstellungen\Patrick Jansch\Desktop\SERVER\gamemodes\sf.pwn(1827) : warning 219: local variable "Geld" shadows a variable at a preceding level
    C:\Dokumente und Einstellungen\Patrick Jansch\Desktop\SERVER\gamemodes\sf.pwn(1829) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Patrick Jansch\Desktop\SERVER\gamemodes\sf.pwn(1827) : warning 204: symbol is assigned a value that is never used: "Geld"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Warnings.

    Was für ein string wäre es bei diesen Sätzen:


    format(string,sizeof string,"AdmCmd: %s wurde von %s gebannt. Grund: %s.",spieler2,spieler,grund)
    SendClientMessageToAll(adminrot,string)
    format(string,sizeof string,"AdmCmd: Du wurdest vom Admin %s gebannt und kannst nun nicht mehr connecten.",spieler);
    SendClientMessage(pID,adminrot,string);

    Wie genau kann ich feststellen welche anzahl ich für z.b string nehmen muss ??
    Kann mir das vielleicht jemand anhand eines befehls zeigen ?
    Wäre echt nett. Hab satt immer ins GF gucken zu müssen ! -.-

    Hallo,
    ich wollte nun auch endlich mal was auf Breadfish starten, und dachte mir das ich einfach mal nen kleines Tutorial machen werden.
    Mein Tutorial beinhaltet das Thema wie man ein funktionstüchtiges (/kick) System erstellen kann. Ich werde es mit der Script Version
    DCMD und SSCANF vor Scripten.


    Es ist nichts großes, aber sollte für Anfänger eigentlich ganz nützlich sein.


    Okay, fangen wir an.


    __________________________________________________________________________________________________________________________________________________________


    Den Befehl scripten wir wie gewohnt unter
    public OnPlayerCommandText(playerid, cmdtext[])


    Als aller erstes erstellen wir den Befehl.
    Man schreibt den Befehl so aufgebaut direkt unter OnPlayerCommandtext. So sieht er aus: dcmd(BEFEHL,BUCHSTABEN ANZAHL,cmdtext);. Direkt darunter setzten wir return 0;


    Ist dies erfolt sollte es bei OnPlayerCommandtext so aussehen:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(kick,4,cmdtext);
    return 0;
    }


    WICHTIG: Ihr müsst die richtige Buchstaben Anzahl angeben. Ist diese Falsch, wird der Server den Befehl nicht erkennen und würde euch sagen, dass es diesen Befehl nicht gibt.
    Ich sage es noch einmal. Die Zeile ist so aufgebaut: dcmd(ANAHL, BUCHSTABENANZAHL,cmdtext);


    _______________________________________________________________________________________________________________________________________________________


    Nun scripten wir den Befehl.Alle Informationen stehen rechts neben jeder gescripteten Zeile:


    Als erstes: So sollte der Befehl ohne meine Grünen Informationen aussehen.


    dcmd_kick(playerid,params[]) // Erstellt den Befehl
    {
    new pID; // Erstellt die ID des anderen Spieler (des Spielers der gekickt werden soll.)
    new string[128]; // string sollte eigentlich klar sein. 128 ist die länge des Strings.
    new grund[128]; // DAs ist die Variabel des Grundes (Im Befehl muss man /kick [playerid] und den [Grund] eingeben.
    new spieler[MAX_PLAYER_NAME], spieler2[MAX_PLAYER_NAME]; // Gehört zur erstellung der IDs von uns und des anderen Spielers. (spieler sind wir, spieler 2 der andere spieler)


    if(Spieler[playerid][Adminlevel] >= 3) // Wenn der Spieler admin rank 3 ist oder einen höheren besitzt. alles dadrunter kann den befehl nicht ausführen.
    {
    if(sscanf(params,"us",pID,grund)) // was soll alles geschehen ?? (einmal soll die id des Spielers angegeben werden und danach der Grund.. "u = ID, s = grund"
    return SendClientMessage(playerid,weiß,"Verwendung: /kick [playerid] [Grund]"); // siehe eine Zeile oben
    if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,weiß,"Der Spieler ist offline"); } // Wenn der angegebene Spieler nicht da ist.
    GetPlayerName(playerid,spieler,sizeof spieler);//erstellt unsere ID und dient dazu damit später unser name in der nachricht angezeigt werden kann
    GetPlayerName(pID,spieler2,sizeof spieler2); // erstellt die ID des gekickten spielers. pID = spieler2. Dient auch für die spätere Nachricht
    format(string,sizeof string,"AdmCmd: %s wurde von %s gekickt. Grund: %s.",spieler2,spieler,grund); // ist die nachricht und sollte eigentlich klar sein,
    SendClientMessageToAll(adminrot,string); // diese nachricht wird dem Server angezeigt. bei %s werden die Ids angezeigt und der angegebene Grund.
    format(string,sizeof string,"AdmCmd: Du wurdest von %s gekickt. Grund: %s.",spieler,grund); // diese nachricht wird dem gekickten spieler vor dem kick mit
    SendClientMessage(pID,adminrot,string); // kick (pID) angezeigt.
    Kick(pID); // kickt den spieler im anschluss
    }
    return 1;
    }


    _______________________________________________________________________________________________________________________________________________________


    Bitte Bewerten und Kommentieren. Ich würde gerne eure Meinungen über dieses Tutorial wissen !! :)
    Feedback erlaubt :)


    MFG