Beiträge von Nesoc

    Wollt heute mal mein eigenes Tutorial schaffen, es geht um ein Duty-System für Fraktionen, um z.B. Rüstungen & Waffen zu erhalten.
    Hoffe, es ist verständlich und klappt! Bei mir tut es dies jedenfalls.
    --------------------------------------------------------------------------------------------------------------------------------
    Wir stellen uns erstmal vor, was wir machen müssen:


    • Einen bestimmten Ort, wo man Duty machen kann, durch Pickup darstellen
    • Abfragen, ob der Spieler in der Fraktion ist
    • Abfragen, ob er in der Nähe des Duty-Punktes ist
    • Waffen/Rüstung geben


    Ich weise hier nochmal draufhin: Ihr müsst das Script bestimmt auf eures anpassen. Ich kann, wenn ich die Zeit habe, euch gerne helfen!
    --------------------------------------------------------------------------------------------------------------------------------
    Ich benutze als Beispiel ein Duty-Punkt für das SFPD
    ------------------------------------------------------------------
    Erstmal brauchen wir zwei New's, das sind Variablen.


    new Duty;
    new sfpddutypickup;


    Als nächstes brauchen wir ein Pickup für den Duty-Punkt:
    sfpddutypickup = CreatePickup(1239, 1 , x,y,z, 0); //1239 ist die MODELID des Pickups (Information-Pickup), 1 steht dafür das man es nicht aufnehmen kann und x,y,z ersetzt ihr durch eure Koordinaten!


    Jetzt kommen wir zum eigentlichen Befehl:
    Erstmal:
    ocmd:duty(playerid, params[])
    {
    Jetzt müssen wir natürlich schauen, zu welcher Fraktion er gehört. Ich lass es auslesen undzwar so:
    ocmd:duty(playerid, params[]) //Befehl
    {


    switch(pInfo[playerid][Member]) //So schauen wir, welche Waffen der Spieler bekommt.
    {


    jetzt brauchen wir natürlich die Aktionen..
    Ich ordne das in verschiedene cases, ihr könnt das auch anders machen..


    ocmd:duty(playerid, params[])
    {


    switch(pInfo[playerid][Member])
    {
    case 0: //Ist er ein Zivilst, kann er es natürlich nicht ausführen
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du hast keine Rechte dazu!");
    }
    case 1://San Andreas Police Department
    {
    if(pInfo[playerid][Member] == 2)
    if(IsPlayerInRangeOfPoint(playerid, 5.0, x,y,z)) return SendClientMessage(playerid, 0xFF0A00FF , "Du bist nicht am Duty-Punkt!"); // 1. Wird abgefragt, ob er beim Duty-Punkt ist. 5.0 steht für die Distanz, in der man sich entfernen kann. XYZ durch Koordinaten ersetzen!
    GivePlayerWeapon(playerid, 3 , 1); //Gibt dem Spieler ein Knüppelstock (3 ist die Waffen-ID, 1 steht für die Munitionsanzahl)
    GivePlayerWeapon(playerid, 24, 100); //Gleiche wie oben
    GivePlayerWeapon(playerid, 31, 230); //Gleiche wie oben
    SetPlayerArmour(playerid, 100); //Setzt die Rüstung auf 100
    return 1;
    }
    }
    return 1;
    }


    Und jetzt machen wir noch einen /unduty Befehl um wieder aus dem Dienst zu treten.


    ocmd:unduty(playerid, params[])
    {


    switch(pInfo[playerid][Member])
    {
    case 0: //Ist er ein Zivilst, kann er es natürlich nicht ausführen
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Du hast keine Rechte dazu!");
    }
    case 1://San Andreas Police Department
    {
    if(pInfo[playerid][Member] == 2)
    if(IsPlayerInRangeOfPoint(playerid, 5.0, x,y,z)) return SendClientMessage(playerid, 0xFF0A00FF , "Du bist nicht am Duty-Punkt!"); // 1. Wird abgefragt, ob er beim Duty-Punkt ist. 5.0 steht für die Distanz, in der man sich entfernen kann. XYZ durch Koordinaten ersetzen!
    ResetPlayerWeapons(playerid); //Waffen abnehmen
    SetPlayerArmour(playerid, 0); //Setzt die Rüstung auf 0
    return 1;
    }
    }
    return 1;
    }



    Hoffe konnt einigen helfen! Und nicht zu hart bewerten, ich bin teilweise noch Anfänger :)

    Danke dir, es klappt!
    Jetzt brauch ich nurnoch Hilfe bei meinem Prison Befehl.. er geht, nur weiß ich nicht wie ich nen Timer einbaue, der vom Admin bestimmt wird.
    Zurzeitiger Befehl: /prison [ID] [Grund]
    und das soll werden: /prison [ID] [Grund] [Zeit]
    Nachdem die Zeit fertig ist, soll der Spieler respawnt werden. Wie stell ich das an?
    Befehl bis jetzt:


    ocmd:prison(playerid, params[])
    {
    new ID, Grund[256];
    if(sscanf(params,"ds[256]",ID,Grund)) return SendClientMessage(playerid, COLOR_GRAD2,"Nutze: /prison [ID] [Grund]");
    if(pInfo[playerid][Admin] < 2) return SendClientMessage(playerid, COLOR_GRAD2,"Du hast keine Rechte dazu!");
    if(AdminDuty[playerid] == 0) return SendClientMessage(playerid, COLOR_GRAD2, "Du bist nicht im Dienst!");
    if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, COLOR_GRAD2,"Dieser Spieler ist nicht Online!");
    SetPlayerPos(ID, 227.3365,110.3244,999.0156);
    SetPlayerInterior(ID, 10);
    new string[512], string2[512];
    format(string, sizeof(string),"%s wurde von %s ins Prison gesteckt! Grund: %s.",GetName(ID),GetName(playerid),Grund);
    format(string2, sizeof(string2),"Du wurdest von %s ins Prison gesteckt! Grund: %s.",GetName(playerid),Grund);
    SendClientMessageToAll(COLOR_RED, string);
    SendClientMessage(ID, COLOR_RED, string2);
    return 1;
    }

    Hmm, bringt mir nur einen Error und diese Warnings:


    C:\Users\kaan\Desktop\WAYNE\gamemodes\RP.pwn(2076) : warning 213: tag mismatch
    C:\Users\kaan\Desktop\WAYNE\gamemodes\RP.pwn(2076) : warning 213: tag mismatch
    C:\Users\kaan\Desktop\WAYNE\gamemodes\RP.pwn(2077) : error 001: expected token: ")", but found "{"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    Wie schaffe ich es, das nur Mitglieder ihren eigenen /f Chat lesen können?
    Hab bisher das:


    ocmd:f(playerid, params[])
    {
    new Text[512], string[512];
    if(sscanf(params,"s[512]", Text)) return SendClientMessage(playerid, COLOR_GRAD2, "Nutze: /f [Text]");
    format(string, sizeof(string),"{FFA000}(( {AAAAAA}Fraktiosnchat | {FFA000}%s{AAAAAA} sagt: %s{FFA000} ))",GetName(playerid), Text);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(pInfo[i][Member] == 1)
    {
    SendClientMessage(i, COLOR_WHITE, string);
    }
    }
    return 1;
    }

    Da jeder seinen Account verkauft, mach ich das auch mal. Ich hab für ihn keine Verwendung mehr & jemand anderes soll damit glücklich werden!
    -------------------------------------------------------------------------------------------------------------------------------------------

    Informationen:


    • Username: Lenks56
    • Kosten: 5€ (PSC)
    • Mittelmann: Ja (Trusted/einige Known)


    Beweise:


    Link: http://www.minecraft.net/haspaid.jsp?user=Lenks56
    Screen:


    Interesse?


    Meld dich per Skype! - max_hofmann3

    Danke aber:


    Errors:

    Zitat

    C:\Users\max\Desktop\Rockstar Games\Grand Theft Auto San Andreas\Neuer Ordner (5)\gamemodes\RP.pwn(182) : error 001: expected token: "}", but found "{"
    C:\Users\max\Desktop\Rockstar Games\Grand Theft Auto San Andreas\Neuer Ordner (5)\gamemodes\RP.pwn(183) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Code:
    new Float:CPs[][enterpoints] = {
    {1480.8563,-1771.0015,18.7958,179.4753,0,"Stadthalle",384.808624,173.804992,1008.382812,0.0,3,"Los Santos"},
    {1352.4375,-1758.0865,13.5078,180.4584,0,"24/7",-25.884498,-185.868988,1003.546875,0.0,17,"Los Santos"},
    {1173.5315,-1323.3701,15.1953,90.4332,0,"San Andreas Medical Center Dach",1160.1516,-1329.2712,31.5027,2.7442,0,"Los Santos"}
    {1555.2870,-1675.7909,16.1953,97.8468,0,"LAPD Eingang",246.375991,109.245994,1003.218750,2.7442,0.0,10,"Los Santos"} //182
    }; //183

    Hey, ich hab ein kleines Problem. Wenn ich mich einlogge, bekomm ich nen Grafikfehler/Bug oder sowas..
    Da komm dann:
    "Spiel lädt...
    Stay within the World Boundries"


    Dann verschwindets und ich bin irgendwo im schwarzen. Weiß nicht woran es liegt, hab kein SetPlayerWorldBound oder sowas..
    Hoffe jemand kann helfen!