Beiträge von Jeffry

    1.
    Klar, das geht. Eine Include macht nichts anderes wie als den Code dann beim compilieren bereit zu stellen. Das ist wie wenn du es alles an die Stelle der Include Zeile schreibst.


    2.
    Das müsste klappen, wenn du die connection handle speicherst und an den Filterscript übergibst. Oder du stellst einfach eine zweite Verbindung her, das geht auf jeden Fall.


    3.
    Zu beachten gibt es eigentlich auch nicht mehr als bei einem Gamemode. Falls du spezielle Fragen hast kannst du gerne einen Thread erstellen und dein Problem schildern.

    @iFeet: Diese Plugins verwenden keine vorher aufgenommenen Records (deshalb heißt es in dem Tutorial ja aus "Rec-Frei").
    Außerdem geht es nicht, dass man mit einem Record in ein Auto einsteigt, da ein NPC per Record nur zu Fuß oder nur im Fahrzeug sein kann.


    Gibt es eine möglichkeit einen Bot dann in ein Car einsteigen zu lassen? also mit Animation?


    Ich denke nicht, dass das mit dem Plugin geht, zumal es ja nicht mal eine Funktion gibt um das für einen Spieler hinzubekommen. Es gibt zwar PutPlayerInVehicle, aber das führt die Animation nicht aus. Selbst wenn man die Animations-ID kennt scheint mir das nicht machbar, da man diese ja nicht mit dem Fahrzeug verknüpfen kann.


    Es müsste, das kannst du ja im englischen Forum mal vorschlagen, eine Funktion wie "PlayerEnterVehicle(playerid, vehicle)" geben, die den Spieler neben das Fahrzeug (vehicleid) setzt und dann die Animation durchführt, bzw. das Drücken von "Enter" simuliert.

    Die Farben musst du natürlich zu den gewünschten anpassen.


    Hier:
    switch(fraktion)
    {
    case 0: format(msg,sizeof(msg)," %s hat den Server betreten. Herzlich Willkommen !", playername2);
    case 1: format(msg,sizeof(msg)," {FFFFA0}%s {9600FF}hat den Server betreten. Herzlich Willkommen !", playername2);
    case 2: format(msg,sizeof(msg)," {0000A0}%s {9600FF}hat den Server betreten. Herzlich Willkommen !", playername2);
    default: format(msg,sizeof(msg)," %s hat den Server betreten. Herzlich Willkommen !", playername2);
    }


    Falls es eine Fraktion 3 gibt, einfach ein case 3 hinzufügen.

    new tmp[32];
    sscanf("(1) Apfel", "s[32]s[32]", tmp, itemname);
    strdel(tmp, 0, 1);
    strdel(tmp, strlen(tmp)-1, strlen(tmp));
    amount = strval(tmp);


    Erst als string einlesen, dann erstes und letztes Zeichen entfernen und den Wert übergeben.



    EDIT:

    An Post #4:
    IPrototypeI:
    Tatsächlich, so geht's auch. Allerdings wird das ziemlich unübersichtlich wenn man es bei mehreren Werten so machen will.
    Ich selbst nutze sscanf nicht, daher bevorzuge ich die oben genannte Variante. Für Leute die es einfach nur kopieren wollen geht beides, allerdings wage ich zu behaupten, dass 95% hier mit deiner Variante nicht klarkommen würden, wenn sie etwas ändern wollen. :rolleyes: 

    An Post #4:
    Nichtsdestotrotz gut zu wissen, dass es wenigsten mit sscanf geht. :thumbup: 

    Diese Funktion ganz unten in den Gamemode schreiben:
    stock SendOnlineMessage(playerid)
    {
    new string2[128], leader, member;
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "/Accounts/%s.ini", playername2);
    if ( fexist(string2) )
    {
    new File: UserFile = fopen(string2, io_read);
    new key[ 256 ] , val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Leader" , true ) == 0 )
    {
    val = ini_GetValue( Data ); leader = strval( val );
    }
    if( strcmp( key , "Member" , true ) == 0 )
    {
    val = ini_GetValue( Data ); member = strval( val );
    }
    }
    fclose(UserFile);
    }
    new fraktion, msg[145];
    if(leader != 0) fraktion = leader;
    if(member != 0) fraktion = member;
    switch(fraktion)
    {
    case 0: format(msg,sizeof(msg)," %s hat den Server betreten. Herzlich Willkommen !", playername2);
    case 1: format(msg,sizeof(msg)," {FFFFA0}%s {9600FF}hat den Server betreten. Herzlich Willkommen !", playername2);
    case 2: format(msg,sizeof(msg)," {0000A0}%s {9600FF}hat den Server betreten. Herzlich Willkommen !", playername2);
    default: format(msg,sizeof(msg)," %s hat den Server betreten. Herzlich Willkommen !", playername2);
    }
    SendClientMessageToAll(COLOR_GREY,msg);
    return 1;
    }



    Bei OnPlayerConnect:
    SendOnlineMessage(playerid);

    Ich hab keinen Link bekommen.


    Ja, als stock kannst du es auch schreiben, dann sieht es so aus:
    new string[128];
    format(string, sizeof(string), "%s hat den Server betreten [%d]", SpielerName(playerid), playerid);
    stock SendAdminMessage(ROT, string);


    stock SendAdminMessage(color, msg[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++) if(SpielerInfo[i][Level] > 0) SendClientMessage(i, color, msg);
    return 1;
    }


    Du musst eben die if-Abfrage mit deiner Level-Abfrage ersetzen.

    Nein, nicht das. Dem Code mit dem du die Statistiken aus der Spielerdatei bzw der Datenbank lädst.


    Mit dem Code hier zeigst du nur den Login Dialog an. Gehe zu OnDialogResponse und schaue nach was unter dem Login Dialog dort steht.



    ...Oder poste deinen ganzen Code.

    Das ist kein Code, das ist ein Wort. Damit fängt niemand was an.


    Poste den Code mit dem du die Statistiken lädst, zum Beispiel dem Spieler sein gespeichertes Geld gibst, ihm seine FraktionsID lädst, seine Punkte lädst, etc. Die ganze Funktion, nicht nur ein Wort oder eine Zeile.

    Du musst, wenn du GivePlayerMoney machst, auch das machen:
    pInfo[playerid][pGeld] += geld;


    Falls du nicht weißt was:
    Poste bitte den Code mit dem du dem Spieler Geld gibst, bzw den Teil der das Geld gibt wenn er es verdient.

    Nutze die static Version die in dem Ordner ist. Benenne sie um, oder ändere den Eintrag in der server.cfg.


    Die static Version hat diese Library bereits eingebaut.