Beiträge von Skypolee

    Hey ihr Brotfische :D
    Übermorgen kommt Fast Furios 6 raus, wie findet ihr den Trailer?

    Externer Inhalt youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Ich finde es geil :D

    Bei mir kommen leider diese Fehler !


    C:\Users\Ahmad El-Zain\Desktop\GTA San Andreas\2Live_Server by Ahmad\gamemodes\2L.pwn(576) : error 017: undefined symbol "sInfo"
    C:\Users\Ahmad El-Zain\Desktop\GTA San Andreas\2Live_Server by Ahmad\gamemodes\2L.pwn(576) : warning 215: expression has no effect
    C:\Users\Ahmad El-Zain\Desktop\GTA San Andreas\2Live_Server by Ahmad\gamemodes\2L.pwn(576) : error 001: expected token: ";", but found "]"
    C:\Users\Ahmad El-Zain\Desktop\GTA San Andreas\2Live_Server by Ahmad\gamemodes\2L.pwn(576) : error 029: invalid expression, assumed zero
    C:\Users\Ahmad El-Zain\Desktop\GTA San Andreas\2Live_Server by Ahmad\gamemodes\2L.pwn(576) : fatal error 107: too many error messages on one line


    Hast du evt. im enum pInfo gemacht?
    Hast ja sInfo geschrieben ;)
    EDIT: Fehler gefunden?
    2: Wie gefällt euch das tut?

    Hey Brotfische :)
    Ich erkläre euch heute mal wie man ganz einfach Fraktionen erstellen kann.
    Ich habe nochmal alles mit einem Kommentar kommentiert, damit ihr es auch versteht ;)
    Nun, zuerst solltet ihr euch Farben definieren, falls ihr noch keine in eurem Script habt, das geht so:
    #define Blau 0x0087FFFF //Definiert die Farbe Blau,
    dann bräuchtet ihr noch zwei includes, die ihr unter #include <a_samp> einfügt,
    einmal ocmd und sscanf.
    Das sollte so aussehen:
    #include <a_samp>
    #include <ocmd>
    #include <sscanf>
    Ihr braucht auch Spielervariablen, wofür man enum oder PVar's nimmt.
    Ich benutze dafür enum's, da ich lieber mit der Funktion arbeite.
    Ein neuen enum erstellt ihr mit
    enum Name
    {
    Name1,
    Name2
    }
    new SpielerInfo[MAX_PLAYERS][Name];
    Nun zur Erklärung, mit enum erstellt ihr halt einen neuen enum mit dem Namen "Name".
    Dann kommt eine geschweifte Klammer ({) , dann die Spielervariable Name1 und Name2, dann kommt halt die andere geschweifte Klammer (}).
    Nun könnt ihr zbsp die Variable Name1 des Spielers auf den Wert 1 setzen:
    SpielerInfo[playerid][Name1] = 1;
    abfragen kann man es so:
    if(SpielerInfo[playerid][Name1] == 1).
    Ich erstelle nun einen Enum für den Spieler.
    enum Spieler //erstellt den enum mit den Namen Spieler
    {
    pLeader, //Erstellt die Spielervariable pLeader
    pMember, //Erstellt die Spielervariable pMember
    pAdmin, //Erstellt die Spielervariable pAdmin
    eingeladen
    }
    new sInfo[MAX_PLAYERS][Spieler]; //deklariert die Variable sInfo, [MAX_PLAYERS] steht für Spieler, also das jeder seine eigenen Variablen hat und [Spieler] für den enum Spieler


    Nun wollen wir jemanden zu einem Leader machen können, dass geht so:
    ocmd:makeleader(playerid,params[])
    {
    if(sInfo[playerid][pAdmin]>=4)
    {
    new frakid, pID; //Deklariert die Variablen frakid und pID
    if(sscanf(params,"us",pID,frakid))return SendClientMessage(playerid,0xFF0000,"Richtige Benutzung: /makeleader [id] [frakid]"); //Falls er /makeleader unvollständig eingibt
    sInfo[pID][pLeader]=frakid; //Setzt die Variable pLeader auf den Wert den man eingegeben hat.
    SendClientMessage(pID,Blau,"Du wurdest Leader einer Fraktion gemacht.");
    }
    else //Falls er nicht das Adminlevel 4 besitzt
    {
    SendClientMessage(playerid,Blau,"Du hast nicht die benötigten Adminrechte!");
    }
    return 1;
    }
    Als nächstes erkläre ich euch den invite Befehl:
    ocmd:invite(playerid,params[])
    {
    if(sInfo[playerid][pLeader]==1) //Fragt ab ob die Spielervariable pLeader den Wert 1 hat
    {
    new pID; //Deklariert die Variable pID
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFF0000,"Richtige Benutzung: /invite [id]"); //Fragt ab ob der Leader den Befehl /invite vollständig eingegeben hat
    SendClientMessage(pID,Blau,"Du wurdest zur Fraktion LSPD eingeladen. Benutze /annehmen um der Fraktion beizutreten.");// Sendet dem Spieler pID die Nachricht
    sInfo[playerid][eingeladen]=1; //Setzt die Spielervariable "eingeladen" auf 1
    }
    return 1;
    }
    Nun brauchen wir natürlich auch einen Befehl zum annehmen :)
    ocmd:annehmen(playerid,params[])
    {
    if(sInfo[playerid][eingeladen]==1) //Fragt ob die Spielervariable eingeladen den Wert 1 hat
    {
    sInfo[playerid][pMember]=1; //Setzt die Spielervariable pMember auf 1
    SendClientMessage(playerid,Blau,"Du hast die Einladung angenommen."); // Schickt dem Spieler die Nachricht
    }
    /*
    if(sInfo[playerid][eingeladen]==2)//Beispiel für die Abfrage für frak 2
    */
    return 1;
    }
    Um jemanden wieder zu uninviten, brauchen wir natürlich auch wiederum einen Befehl ^^
    ocmd:uninvite(playerid,params[]) {
    if(sInfo[playerid][pLeader]==1) { ////Fragt ab, ob die Variable pLeader den Wert 1 hat und führt eine Aktion aus wenn er leader ist
    new pID; //Deklariert die Variable pID
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,0xFF0000,"Richtige Benutzung: /uninvite [id]"); // Grobe Übersetzung: Wenn sscanf im params keine spielerid/name findet returnt es... wenn doch wird der wert von pID zum wert des ersten paramenters gemacht
    if(sInfo[pID][pMember] != sInfo[playerid][pLeader]) //Fragt ab ob der Spieler in der gleichen Fraktion ist
    { return SendClientMessage(playerid,Blau,"Der Spieler ist nicht in ihrer Fraktion); }
    sInfo[pID][pMember]=0;//Uninvitet ihn letzendlich
    }
    return 1;
    }
    Um im LSPD intern zu schreiben, erstelle ich den Befehl "/d"
    ocmd:d(playerid,params[])
    {
    if(sInfo[playerid][pMember]==1 || sInfo[playerid][pLeader]==1) //Fragt ab ob die Spielervariable pMember oder pLeader den Wert 1 besitzen
    {
    new text, //Deklariert die Variable text und name
    name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,0xFF0000,"Richtige Benutzung: /d [TEXT]"); //Fragt ab ob die Person "/d" vollständig eingegeben hat
    for(new i = 0; i < MAX_PLAYERS; i++) //Startet eine Schleife durch alle Spieler
    {
    if(sInfo[i][pMember]==1 || sInfo[i][pLeader]==1) //fragt ab wer Leader oder Member des LSPD's ist
    {
    new string[128];
    format(string,sizeof(string),"%s: %s",name,text);
    SendClientMessage(i,Blau,string); //Schickt jedem Mitglied des LSPDs die Nachricht
    }
    }
    }
    return 1;
    }
    Damit man auch direkt in der Base spawnt, muss man im Callback OnPlayerSpawn abfragen ob die Person in der Fraktion ist:
    public OnPlayerSpawn(playerid)
    {
    if(sInfo[playerid][pMember]==1 || sInfo[playerid][pLeader]==1) //Wenn die Spielervariable bei dem Spieler pMember oder pLeader auf 1 steht, soll dass passieren:
    {
    SetPlayerPos(playerid,288.745971,169.350997,1007.171875);//Den Spieler zu den Koordinaten teleportieren, die das stehen
    SetPlayerInterior(playerid,3); //Den Spieler ins Interior mit der ID 3 teleportieren
    }
    return 1;
    }

    So, dass war ja nun auch schon das meiste.
    Nun möchten wir aber auch noch Autos für das LSPD einfügen, das geht so:
    1) Eine Variable deklarieren (Bsp: new LSPDv[2];
    2) unter OnGameModeInit das Fahrzeug zu der Variable LSPDv zuzuordnen (Bsp:
    LSPDv[0] = CreateVehicle(520, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1, 60); //Erstellt ein Fahrzeug mit der ID 520 und weist es LSPDv hinzu. weswegen [0]? Weil man immer mit 0 beim zählen bei Pawn anfängt.
    LSPDv[1] = CreateVehicle(520, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1, 60); //Das gleiche wie Oben)
    3) Beim einsteigen kontrollieren, ob der Spieler in der Fraktion LSPD ist:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for(new i = 0; i < sizeof(LSPDv); i++)//erstellt eine Schleife, die überprüft ob der Spieler sich in ein Auto setzt, welches der Variable LSPDv zugewiesen wurde
    {
    if(newstate == PLAYER_STATE_DRIVER && GetPlayerVehicleID(playerid) == LSPDv[i])//fragt ab ob er fahrer ist und das auto LSPDv[i] ist
    {
    if(sInfo[playerid][pMember] == 0 || sInfo[playerid][pLeader]==0) //Fragt ob die Spielervariable pMember oder pLeader 0 ist
    {
    SendClientMessage(playerid,Blau,"Du bist kein Beamter der LSPD und darfst nicht mit diesem Auto fahren!"); //Schickt diese Nachricht aus
    RemovePlayerFromVehicle(playerid); //Schmeisst den Spieler aus dem Fahrzeug
    }
    else if(sInfo[playerid][pMember]==1 || sInfo[playerid][pLeader]==1) //Fragt ob die Spielervariable pMember oder pLeader 1 ist
    {
    SendClientMessage(playerid,Blau,"Du hast ein Auto des LSPD betreten, fahr vorsichtig!"); //Schickt diese Nachricht aus
    }
    }
    }
    return 1;
    }
    So, das war nun mein kleines und erstes Tutorial.
    Ich hoffe ich konnte jemanden helfen, der noch nicht wusste wie man Fraktionen scriptet.
    Bewertungen und Kritik sind gerne erwünscht, mfg Skypolee :)

    Code
    pkill screen


    mit dem user vom samp server in die console eingeben, dann ist der server aus.


    Dann kommt:


    luca@lvps84-39-103-135:/home/lucasamp$ pkill screen
    pkill: 5106 - Operation not permitted



    EDIT: Haha lol, da wurde in der "Console" nicht angezeigt das der Samp Server am laufen war, habe ihn jetzt gestartet und er ist aus... :O


    EDIT²: Wollte jetzt das Dark Trigardon 1.5 gf reinhauen, doch der Server startet nicht...
    ----------
    Loaded log file: "server_log.txt".
    ----------


    SA-MP Dedicated Server
    ----------------------
    v0.3x, (C)2005-2013 SA-MP Team


    [11:10:58] filterscripts = "" (string)
    [11:10:58]
    [11:10:58] Server Plugins
    [11:10:58] --------------
    [11:10:58] Loading plugin: streamer.so
    [11:10:58]


    *** Streamer Plugin v2.6.1 by Incognito loaded ***


    [11:10:58] Loaded.
    [11:10:58] Loaded 1 plugins.


    [11:10:58]
    [11:10:58] Ban list
    [11:10:58] --------
    [11:10:58] Loaded: samp.ban
    [11:10:58]
    [11:10:58]
    [11:10:58] Filterscripts
    [11:10:58] ---------------
    [11:10:58] Loaded 0 filterscripts.


    [11:10:58] Es wurden 1 Häuser erfolgreich geladen
    [11:10:58] Es wurden 28 Businesse erfolgreich geladen
    [11:10:58] Es wurden 84 SBusinesse erfolgreich geladen
    [11:10:58] AllowAdminTeleport() : function is deprecated. Please see OnPlayerClickMap()
    [11:10:58] ______________________________________________
    [11:10:58] Dark-Trigardon Godfather 1.5 by Nemesus-Scripts.de
    [11:10:58] ____
    Weiss jmd. woran es liegt?

    Hey Brotfische :)
    Ich starte meinen Samp Server immer per Putty mit "screen ./samp03svr", und stoppe ihn mit SampIT 1.4 (Wird Rcon verwendet)
    Nur wenn ich ihn jetzt stoppen will kommt bei SampIT Verbindung zum Server verloren, aber der Server läuft weiter...
    Was tun?

    Ja du suchst dir die "ID" von dem Textdraw und machst TextDrawHideForPlayer(playerid,ID); Und beim Gangwar wird es automatisch wieder angezeigt nehme ich an.


    Wann/wo soll ich es "hiden"?
    Bei OnPlayerSpawn ja nicht, sonst wenn man im gw stirbt, ist die Anzeige ja weg
    EDIT:
    Habe jetzt bei einem timer das so gemacht:
    if(!IstInGangFight(playerid)
    {
    TextDrawHideForPlayer(i,Fight);
    TextDrawHideForPlayer(i,FightUnderline);
    TextDrawHideForPlayer(i,FightSystem[fs][fsWinFaction]);
    TextDrawHideForPlayer(i,FightSystem[fs][fsWinKills]);
    TextDrawHideForPlayer(i,FightSystem[fs][fsLoseFaction]);
    TextDrawHideForPlayer(i,FightSystem[fs][fsLoseKills]);
    TextDrawHideForPlayer(i,FightSystem[fs][fsTime]);
    }
    Hoffen wir's das es klappt :)


    EDIT²: Kommt immer noch und ab und zu ein TextDraw mit Fatal Respect:

    Verwende doch TextDrawHideForPlayer(playerid,text);


    Habe ich ja gemacht, am connecten.
    Nur das Problem ist, ich kann ja nicht einfach einen Timer einbauen der es "versteckt", denn falls ein Gangwar im Gange ist, sehen die Gangs und Mafien es nicht...
    Oder gibt es eine Variable die angibt ob gerade ein Gangwar im Gange ist?

    Hey Brotfische ;)
    Ich habe ein Problem, bei mir wird Links einfach die Box Fight: angezeigt, und ich weiss nicht woran es liegen könnte...
    Habe es mit einem früheren "Backup" verglichen, aber alles is the same...
    Könnte jmd. eventuell per TeamViewer rüberschauen oder kennt den Bug?
    Achja, es war so: Ein bestimmter textdraw wurde angezeigt, habe ihn ausgeklammert und hochgeladen.
    Dann wurde ein anderer einfach angezeigt, und habe es wieder gemacht, jetzt wieder ausgetragen, aber es kommt wieder der nächste Textdraw im Script, mit dem Gangfight.
    Ich habe gemacht das er beim connecten verschwindet, aber nachdem man gespawnt ist, ist er wieder da...