Beiträge von KornChief

    1. "==" statt "="


    2. GetPlayerState = Zustand.
    0 Empty (while initializing) - "PLAYER_STATE_NONE"
    1 Player is on foot - "PLAYER_STATE_ONFOOT" // Wäre sowieso falsch :P
    2 Player is driver of a vehicle - "PLAYER_STATE_DRIVER"
    3 Player is passenger of a vehicle - "PLAYER_STATE_PASSENGER"
    7 Player is wasted or on class selection - "PLAYER_STATE_WASTED"
    8 Player is spawned - "PLAYER_STATE_SPAWNED"
    9 Player is spectating - "PLAYER_STATE_SPECTATING"


    3. IsPLayerInAnyVehicle (ob er allg. in einem Auto ist, d.h. aucuh als Beifahrer, wenn du das willst nimmt "2" von der obrigen Liste).

    Woher das "v" ?

    new i = 0,v = 0;
    for(;i < MAX_PLAYERS || v < MAX_VEHICLES; i++ && v++)
    {
    if(GetPlayerVehicleID(i) != v)
    {
    SetVehicleToRespawn(v);
    }
    }

    Bin mir ebenfalls nicht sicher, aber man kanns ja testen :)


    Btw: Pushen ist verboten und das ist ein "Luxus", dass andere sich die Zeit nehmen, um dir zu helfen.

    Bei CreatePickup(1242, 2, 1.1191, -503.3359, 1432.3585, 101); kann man das festlegen, ob das nur per Auto geht oder nur zu Fuß.
    ( 2. Parameter )



    14:
    Pickupable, but only when in a vehicle. Falls through objects made with CreateObject, etc.


    Kannst sicherheitshalber noch so eine Abfrage einbauen, wie "if(IsPlayerInAnyVehicle(playerid))". Beim Command "/zoll" nur nicht vergessen, ebenfalls mit "IsPlayerToPoint" und "IsPlayerInAnyVehicle" abzufragen, das soll ja auch nicht überall gehen.


    @[XfS]Marshall:
    Das wäre eine ganz schlechte Lösung :pinch: , da es 1. dafür ein schönes Callback gibt "public OnPlayerPickUpPickup(playerid, pickupid)" und ein Timer, der alle 0,5 Sekunden geht etwas auslastend ist :whistling: .


    stock RemovePlayerWeapon(playerid, weapon)
    {
    new
    currentweapon, // Ein Integerwert
    currentammo; // Noch einer
    for(new slot = 0; slot < 13; slot++) // Slot am Fang 0. Dann - solange der Integer Slot kleiner ist als die Zahl 13, wird zum Slot bei jedem Durchgang 1 dazugezählt.
    {
    GetPlayerWeaponData(playerid, slot, currentweapon, currentammo); // Dann geht er alle Waffen-Slots (wie SMGs,Pistolen,Shotguns,usw.) durch Er speichert die
    // Waffe in den jeweiligen Slots unter "currentweapon" und ebenso dessen Ammo
    if(weapon == currentweapon) // Wenn die WaffenID gleich der Waffe ist, die du wegmachen willst
    {
    GivePlayerWeapon(playerid, currentweapon, -currentammo); // gibt er ihm die Waffe, aber zieht die Ammo ab (wie bei GivePlayerMoney(playerid, -10); )
    break; // und unterbricht
    }
    }
    }

    Schon eine Abfrage da :)

    Hallo DMA,
    ich hab auch (nach folgendem Schema : http://forum.sa-mp.com/index.php?topic=79810.0#post_data ) einen "Speedtest" durchgeführt und habe nun unter "main ()" folgendes stehen:


    main()
    {
    print("\n----------------------------------");
    print(" usefull script snippets and test");
    print("----------------------------------\n");


    new
    time1,
    time2,
    time3,
    time4;
    time1 = GetTickCount();
    for(new i = 0;i < 1000000;i++) {
    strget("lol lol lol lol lol lol lol lol lol",3);
    }
    time2 = GetTickCount();
    time3 = GetTickCount();
    for(new a = 0;a < 1000000;a++) {
    strret4("lol lol lol lol lol lol lol lol lol",3,4);
    }
    time4 = GetTickCount();
    printf("%d | %d", time2 - time1,time4 - time3);
    }


    Output: ~6300 | ~5400


    Dies kann ich jedoch kaum glauben.



    Daher wollte ich fragen, ob ich nicht etwas falsch getan habe und ob dies so stimmen kann.




    Mit freundlichen Grüßen,


    KornChief.

    Verwendung im Script

    // Definieren:
    new gangzone;


    // OnGameModInit
    gangzone = GangZoneCreate(1248.011, 2072.804, 1439.348, 2204.319);


    // Dann entweder:
    GangZoneShowForAll(gangzone, 0xFFFF0096);


    // Oder unter OnPlayerConnect:
    GangZoneShowForPlayer(playerid, Zone, 0xFFFF0096);


    Funktionen:


    ( http://wiki.sa-mp.com/wiki/GangZoneCreate )
    ( http://wiki.sa-mp.com/wiki/GangZoneShowForAll )
    ( http://wiki.sa-mp.com/wiki/GangZoneShowForPlayer )




    Koordinaten finden:


    Entweder gibst du InGame "/save" ein an allen Eckpunkten (siehe Skizze wo genau) und fügst sie ein, oder du verwendest ganz bequem den Xtreme Vehicle Plotter.


    max y. ------------------------------------> *
    ^
    |
    |
    |
    |
    *min. y | min. x --------------------> max. x


    Reicht wenn du an den *-Punkten save eingibst, musst dann halt die richtigen Koordinaten rausnehmen.

    Und wenn ich für jeden einzelnen CMD das angleiche, d.h. CMD's mit langen Texten ( wie /adminchat ... ) größere Größen und bei CMD's mit vielen Parametern (Darunter zahlen) kleinere Größen nehmen? Spart das was oder eigtl. nicht?


    // Edit: Ich gebs auf :pinch: bleibe beim Alten :)

    Nice,habs nur kurz überflogen - nur wenn man das für Commands verwenden sollte, müsste man es etwas ändern, oder?


    Denn er zählt bei " " counter += 1, wenn jedoch jemand folgendes eingibt :"/kick______4 Haha" (_ verkörpert " ") und im cmd GetStr(cmdtext,1,' '); dann würde ja ja abbrechen, da counter > count. Und wenn jemand "/kick 4 geschieht dir recht" schreibt, käme dann nicht nur "geschieht" an ?


    Wenn ich falsch liege,
    10/10 eindeutig :thumbup: .