Beiträge von InternetInk aka Benjamin

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

    mach das new f weg



    RaceVehs[0] = AddStaticVehicleEx(571,-1405.6307,-246.6154,1042.7747,349.7903,0,0,300); // kart
    RaceVehs[1] = AddStaticVehicleEx(571,-1403.4564,-247.1150,1042.7632,349.8049,0,0,300); //
    RaceVehs[2] = AddStaticVehicleEx(571,-1401.4236,-247.5456,1042.7507,347.9943,0,0,300); //
    RaceVehs[3] = AddStaticVehicleEx(571,-1407.1610,-246.4111,1042.7970,351.5680,0,0,300); //
    RaceVehs[4] = AddStaticVehicleEx(571,-1399.7994,-247.8190,1042.7484,349.2680,0,0,300); //
    RaceVehs[5] = AddStaticVehicleEx(560,-1395.2437,-265.5819,1043.6250,17.8552,6,6,300); //


    for(new rc = 0; rc < sizeof(RaceVehs); rc++)
    {
    LinkVehicleToInterior(RaceVehs[rc], 7);
    }


    Pawn ist die Scriptsprache und Pawno ist der Editor dazu.
    Die zu einer .amx kompilierten .pwn Scripte funktionieren sowohl auf Windows als auch auf Linux da die entsprechenden Server-Dateien die .amx lesen und nicht das Betriebsystem selbst.


    Tutorials findest du hier im Tutorial Bereich, die angepinnten Themen sind durchaus einen Blick wert.

    Sicher, dauert einen moment ich editiere dann den Beitrag hier.


    //Edit
    ======================================================================
    Okay du willst also dem "Killer" eine Nachricht zukommen lassen wen er grade getötet hat.


    Im richtigen public bist du schonmal, OnPlayerDeath.
    OnPlayerDeath gibt dir einige Parameter an die Hand, die du bei unsicherheit immer in der Wiki nachlesen kannst:
    http://wiki.sa-mp.com/wiki/OnPlayerDeath
    Folgende sind gegeben:
    playerid - Die ID des Spielers der gestorben ist (Der Grund dafür das dieses public aufgerufen wird)
    killerid - Die ID des Spielers der playerid getötet hat
    reason - Ein vordefinierter Grund der mitgeliefert wird, enthält z.B. die Mordwaffe bzw. Todesart, spielt hier aber erstmal keine Rolle


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SendDeathMessage(killerid,playerid,reason);// Zeigt die Todesnachricht rechts im Label an..
    //Die Death Message ist so in Ordnung und die folgende if-Abfrage auch
    if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
    //Sie fragt ob die killerid ungleich der Standard ID für Ungültig ist, wenn ja , wenn also ein Connecteter Spieler playerid gekillt hat, bekommt der killer Score plus
    //Es kann ja auch sein das playerid durch einen Sturz stirbt, dann ist killerid gleich der Ungültigen ID und die if-Abfrage wird nicht ausgeführt.
    GivePlayerMoney(killerid,1000);
    //Auch in Ordnung


    //nun kommt es
    SendClientMessage(killerid,ROT,"Glückwunsch, du hast %s gekillt.");
    //und Dafür spring ich mal aus dem pwn bereich raus

    Wenn du einen Namen in einen String (String = Zeichenkette/Zeichenfolge) einbauen willst musst du diese formatieren.
    Dazu gibt es die format Funktion.
    Dort musst du nun Parameter angeben,
    output[] - Der String, welcher ausgegeben werden soll
    len - Die maximale Länge, welche ausgegeben werden soll
    format[] - Der formatierte String
    {Float,_}:... - Argumente jeder Art
    Anhand der [] weiß man das es sich bei dem Parameter um strings handelt und anhand des eingeklammerten Floats um eine Aufzählung.
    Wir brauchen also einen neuen string, da es in Pawn streng genommen keinen Datentyp string gibt bauen wir uns selbst einen indem wir einer Variable einfach ein Array geben.


    new playername[MAX_PLAYER_NAME];
    In dem string der 24 Zeichen groß ist (weil MAX_PLAYER_NAME mit 24 definiert ist) können wir nun den Namen speichern.


    Dazu brauchen wir die GetPlayerName Funktion


    GetPlayerName(playerid,playername,sizeof(playername));
    Wir speichern den namen von playerid in den playername string.


    Jetzt haben wir schonmal den namen, nun brauchen wir noch einen string indem wir die Nachricht packen.
    new dstring[128];
    diesen formatieren wir jetzt, dazu geben wir format folgende dinge an:
    ersteinmal worein er speichern soll,wie lang das maximal sein soll, dann unser Text mit den %'ten als Platzhalter für die einzusetzenden Variabeln und schließlich unsere Variabeln.


    format(dstring,sizeof(dstring),"Glückwunsch, du hast %s gekillt.",playername);


    Das wars, den dstring können wir nun versenden:
    SendClientMessage(killerid,ROT,dstring);


    Fertig sieht das dann so aus:

    public OnPlayerDeath(playerid, killerid, reason)
    {
    SendDeathMessage(killerid,playerid,reason);// Zeigt die Todesnachricht rechts im Label an..


    if(killerid != INVALID_PLAYER_ID)
    {
    new playername[MAX_PLAYER_NAME];
    new dstring[128];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(dstring,sizeof(dstring),"Glückwunsch, du hast %s gekillt.",playername);
    SendClientMessage(killerid,ROT,dstring);
    SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
    GivePlayerMoney(killerid,1000);
    }
    return 1;
    }