Beiträge von BlackFoX

    Ja , speicher ihn in einer Variable zwischen,.


    z.b.


    Unter die Includes
    new MySkin[MAX_PLAYERS];


    OnPlayerSpawn
    SetPlayerSkin(playerid,MySkin[playerid]);


    In den Cmd
    MySkin[playerid] = GetPlayerSkin(playerid);

    Mit dieser inc datei kann man Leicht Info Punkte erstellen, in denen man sofort in einer Linie
    den Anzeige text Festlegen kann. Man kann damit auch ganz leicht betretbare Punkte machen
    wie in einem Haussystem o.ä.


    Beispiel:


    bCreateInfo(Objekt/pickup Model,2018.5232,-1279.9086,23.9768, "~b~ Mein Info Punkt"); // ID 1


    Cmd
    if(strcmp(cmd, "/entericon", true) == 0)
    {
    if(IsPlayerNearIcon(playerid,1)) // Wenn die Icon ID 1 ist, natürlich können auch varibalen verwendet werden ;-)
    {
    SetPlayerPos(playerid, 2021.1897,-1243.2266,23.0797);
    }
    return 1;
    }


    Funktionen :


    bCreateInfo(model,x, y, z, "Dein text");


    Das Kommt bei OnPlayerPickup hin:


    bOnPlayerPickup(pickupid,playerid);


    für Die If Funktionen:


    IsPlayerNearIcon(playerid,ID);


    Ich hoffe das erleichtert das Scripting ein bisschen :)


    Update1


    Da NeS | Wutschkooo mich gebeten hatte einen Auto teleport beim Betreten der Icons / Pickups einzubauen
    werde ich es nun auch hier reinstellen vllt hilft es manchen un erleichtert wieder einiges ^^


    * Neue Funktion *


    -> OnGameModeInit:


    bAutoTeleport(model,x , y, z, "DeinText" , Teleport X, Teleport Y , Teleport Z, Virtuelle Welt, Interior)
    *( Wer keine Virtuelle Welt Möchte oder Interior einfach auf -1 stellen )*


    -> OnPlayerPickup:


    bOnPlayerEnterAIcon(pickupid,playerid);
    *( Dieses kann man so einfügen wie es da steht )*


    Update 2


    Ich hab noch etwas geändert , so das man wenn man in einen Auto Teleport geht nicht direkt auf die Stelle gespawnt wird sondern
    nur ein kleines Stück versetzt damit man die Koordinaten zwischen den Teleport und Icon Standort einfach für den Exit Teleport umtauschen kann,
    so braucht man nur 2 Linien, also kann man sofort den umgekehrten Teleport erstellen und braucht nicht noch extra Koordinaten .
    Man Kanns Model Jetz auch wählen .


    Update 3


    bDestroyATeleport(t_id);
    bDestroyIcon(icon_id); - 1. Auto Teleport Löschen 2. Info Stelle Löschen


    bSetInfoPos(b_id,Float:x,Float:y,Float:z); - Position Festlegen für die Info Stellen
    bSetAutoTeleport(c_id,Float:x,Float:y,Float:z); - Pos für die Auto Teleports Festlegen



    Have Fun ^^

    nimm doch die Random Funktion ^^


    Erstmal ne Variable mit deinen Coords
    new Float:SpielerSpawns[1][3] = {
    {x,y,z},
    }


    Dann die Funktion hier
    new rando = random(sizeof(SpielerSpawns));
    SetPlayerPos(playerid, SpielerSpawns[rando][0], SpielerSpawns[rando][1], SpielerSpawns[rando][2]);

    if (strcmp("/admins", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0xFFFFFFAA,"Admins:");
    for(new i = 0; i <= MAX_PLAYERS; i++)
    {
    if(IsPlayerAdmin(i))
    {
    new strings[256];
    new NameIs[256];
    GetPlayerName(i,NameIs,sizeof(NameIs));
    format(strings,sizeof(strings),"%s",NameIs);
    SendClientMessage(playerid,0xFFFFFFAA,strings);
    }
    }
    return 1;
    }


    Ahja nochwas ^^ Größer als 0 muss es heissen nicht Größer als 1 ^^

    Diese Include verhindert das auf eurem Server Geld gehackt wird,
    sobald der Spieler versucht Geld zu ercheaten , wird sein Geld sofort auf das Geld zurückgesetzt das
    er haben sollte ohne 'MoneyHack'. Funktioniert bei S0beit und den Standard MoneyHacker Tools.
    Um dieses Script mit erfolg zu nutzen müsste ihr bestimmte dinge in eurem Script ersetzen :


    GivePlayerMoney , ResetPlayerMoney, GetPlayerMoney.


    Die Funktionen


    bResetPlayerMoney(playerid);


    bGivePlayerMoney(playerid,Wert);


    EnableAntiMoneyHack(); - Kommt Standardmäßig bei OnGameModeInit hin, Aktiviert den Anti hack


    bGetPlayerMoney(playerid);


    bSetPlayerMoney(playerid,Geld);



    Bei mir hat die inc zu 100% Funktioniert, wenn ihr Probleme habt bitte bescheid sagen.


    EDIT:
    Ich hatte vergessen zu sagen das man noch ein Timer im Script Festlegen muss
    // Oben unter den Includes
    forward MoneyChecker();


    public MoneyChecker()
    {
    bMoney_check();
    }
    // OnGameModeInit
    SetTimer("MoneyChecker",1000,1);


    * Updated Version

    Machs mit nem Timer und stell ihn aufn 5 Secs.
    for(new i = 0; i <= MAX_PLAYERS; i++)
    {
    if(PlayerTeam[i] == 8) // Beispiel Variable
    {
    SendClientMessage(i,FARBE,"Einsatz text");
    }
    }

    Sinn der Sachen


    Also es gibt verschiedene Mods wie Reallife, Deathmatch, Race & stunt:


    Reallife: Du darfst meist keine Leute killen, musst iwelche Jobs ausführen und damit halt dein Geld machen,
    du kannst Geld deponieren , vllt nen eigenes Auto Kaufen und weitere RL sachen halt ^^


    Deathmatch: Hier darfst du Leute Killen, wenns bestimmte Regeln auf dem Server gibt wie keinen killen wenn er afk ist zum Beispiel.
    dann musste dich halt drann halten und darfst ansonsten eig. jeden killen der dir Quer kommt ^^


    Stunt & Race: Hier musste halt Rennen fahren, Stunten usw. sind meist eh nur Fun Mods , is eig. nich viel sinn drinn ausser Spaß dabei haben ^^


    Besser kann ichs im mom. nich erklären ^^


    new PlayerName[256];
    GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
    new wiedergabeformat[256];
    format(wiedergabeformat,sizeof(wiedergabeformat),"%s[GER]",PlayerName);
    SetPlayerName(playerid,wiedergabeformat);


    Meinste die Funktion ;) ?

    Ich kann dazu nur Sagen GTA IV ist eig. schon so fürn Arsch, da man erst Online sein muss um seine Spielstände zu Speichern , bzw. man muss eig. alles Online machen :cursing: , mir wärs lieber einfach so ohne Netz zu speichern

    new command[256];
    new temp[256];
    new Index;
    command = strtok(cmdtext, Index);
    if(strcmp(command, "/kick", true) == 0)
    {
    if(IsPlayerAdmin(playerid))
    {
    new playerd;
    new reason;
    temp = strtok(cmdtext, Index);
    if(!strlen(temp))
    {
    //SendClientMessage(playerid, COLOR, "INFO: /kick [PLAYERID] [GRUND]");
    return 1;
    }
    playerd = strval(temp);
    temp = strtok(cmdtext, Index);
    if(!strlen(temp))
    {
    //SendClientMessage(playerid, COLOR, "INFO: /kick [PLAYERID] [GRUND]");
    return 1;
    }
    reason = strval(temp);
    new for22[256];
    format(for22,sizeof(for22), " Der Spieler %d wurde gekickt - Grund: %s",playerd,reason);
    //SendClientMessageToAll(COLOR,for22);
    Kick(playerd);
    }
    else
    {
    // Kein Admin Nachricht
    }
    return 1;
    }

    Also Leute ich möchte hier mal erklären wie man Autos einem Eigentümer zuweist, so geht eig. auch mit Position und weiteres


    ganz oben im Script erstellt ihr ne Array



    enum Vehicledata
    {
    Owner[256],
    }
    new Vehicles[MAX_VEHICLES][vehicledata]


    Dann könnt ihr bei OnPlayerConnect das einfügen



    new PlayerName[256];
    GetPlayerName(playerid,PlayerName,sizeof(PlayerName));
    new carid = CreateVehicle(...); // ID wird in carid zurückgegeben
    strmid(Vehicles[carid][Owner],PlayerName,0,256,256); // Hier wird der Eigentümer also der Name in den wert Owner eingefügt
    /* Der Eigentümer is nur für dieses Car ID
    Jetzt müsste das Auto auf den Namen angemeldet sein*/


    Public OnPlayerEnterVehicle

    new GetName[256];
    GetPlayerName(playerid,GetName,sizeof(GetName));
    if (!strcmp(Vehicles[vehicleid][Owner],GetName))
    {
    // Nachricht oder sowas
    }
    else
    {
    TogglePlayerControllable(playerid,0); // Der Spieler wird einmal Gefreezt und entfreezt und kann die Aktion Auto betreten nich ausführen
    TogglePlayerControllable(playerid,1);
    }


    Ich hoffe ihr habt alles verstanden :)
    Ich denk ma das hilt nen bisschen ^^