Beiträge von Kaliber

    Ist ein 500er Timer nicht sehr Resourcenfressend? :S


    Mhm, naja klar ist er Ressourcenfressend, aber anders kann man das nicht machen...er kann ja die Timerid in einer Variable speichern und sobald er aus dem Vehicle aussteigt, den Timer löschen ^^


    Aber wenn man einen halbwegs guten Server hat, sollte eigentlich nichts passieren ^^


    mfg. :thumbup:

    Na, so hier mal ein Beispiel:


    new Nos[1];
    Nos[0]=CreatePickupEx(1239,1,1549.0024,-2258.1736,13.5469,0);


    //Zum Bsp bei OnPlayerConnect
    SetTimerEx("Los", 500, 1, "i", playerid);


    forward Los(playerid);
    public Los(playerid)
    {
    new Float: X, Float: Y, Float: Z;
    for(new i=0; i<sizeof(Nos); i++)
    {
    GetPickupPos(Nos[i], X, Y, Z);
    if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z))
    {
    DestroyPickup(Nos[i]);
    //Hier ist er dann in dem Pickup !!!
    }
    }
    return 1;
    }


    mfg. :thumbup:

    Der Callback OnPlayerPickUpPickup wird nicht aufgerufen, wenn man in einem Auto sitzt (gab es schon viele Themen).


    Aus diesem Grund hatte ich eine Include geschrieben (Diese Hier) dort gibt es eine Funktion die sich GetPickupPos nennt, schaus dir mal an und die solltest du nutzen mit einem Timer einfach ;)


    mfg. :thumbup:

    Was du definitiv verwenden musst ist folgendes:

    new string[128], var; //Die Gültigkeit...mit var prüfen


    if(var == 1) format(string, 128,"Der Auftrag ist vorhanden /service bla");
    else format(string, 128,"Der Auftrag ist nicht mehr vorhanden /service bla");
    ShowPlayerDialog(playerid,-1,DIALOG_STYLE_LIST,"Iwas",string,"ok","");


    So irgendwie ;)


    mfg. :thumbup:

    Also erstmal kurz was allgemeines bevor ich zu den Posts eine Stellung nehme:


    Ich habe gerade 3 neue Funktionen hinzugefügt, schaut sie euch einfach an, es sind die letzten 3 ^^


    GetPickupPos(pickupid, &Float: X, &Float: Y, &Float: Z);


    Das kann ich dir erklären, also es ist so, dass wenn du in einem Auto sitzt die Funktion OnPlayerPickUpPickup nicht aufgerufen wird, somit kann man nicht bestimmen (wenn man in einem Auto sitzt) wo sich ein Pickup befindet, aber mit dieser Funktion schon ;)


    GivePlayerJetpack


    GivePlayerWEapon ist auch nicht viel länger


    1. Ein Jetpack ist keine Waffe :D
    2. Für Neulinge eine Vereinfachung ;)


    CreatePickupEx(model, type, Float: X, Float: Y, Float: Z, virtualworld = 0);


    Nein kein Pickup Streamer, dies dient lediglich dazu, dass man die Position eines Pickups bestimmen kann ;)


    CreateVehicleEx


    Nein, auch kein Streamer, dies dient dazu, dass man den Interior dieses Fahrzeuges bestimmen kann ;)


    GetPlayerCoDriverName


    //Edit: Idee Umgesetzt, Funktion ist nun vorhanden !


    mfg. :thumbup:


    //Edit²: Neuer Link hinzugefügt...wer noch Ideen hat schreiben :)
    //Edit³: Neue Funktion hinzugefügt + InRange verbessert (danke nochmal IPrototypeI). Falls jemand noch Vorschläge hat, kann er sie gerne posten ^^

    So, jetzt habe ich deinen Fehler gefunden ^^


    Du lädst die streamer Version 2.5.2 aber es gibt inzwischen schon eine 2.6.1 ;)


    Also downloade dir mal die ganzen Plugins + Includes neu und pack sie in die entsprechenden Ordner ^^


    Hier ein Link zu den aktuellen Plugins und Includes: Incognito Streamer 0.3e 2.6.1


    so und ehm immer wen ich was neu scripte oder so
    kommt der fehler fast immer wieder


    Welcher Fehler ? :huh:


    mfg. :thumbup:

    würde ich die bei System32 reinstecken


    Da diese .dll Datei anscheinend wichtig für die samp-server.exe wichtig ist, sollte man sie in den Ordner packen, wo auch die .exe drinnen ist ;)


    _xXIce_TeaXx_


    Lade dir mal die neusten Includes von dem Streamer runter und pack die in den Pawno/Include Ordner ^^


    mfg. :thumbup:

    So, bei OnPlayerDeath:


    if(IsPlayerConnected(killerid))
    {
    new name[24], string[128], name1[24];
    GetPlayerName(playerid, name1, 24);
    GetPlayerName(killerid, name, 24);
    format(string, 128,"Spieler %s wurde von %s getötet !",name1,name);
    SendClientMessageToAll(rot, string);
    }


    mfg. :thumbup:

    Du kannst nicht PlayerInfo[Spielerdatei][pBan] = 0; nutzen !


    Du musst das nutzen:


    dini_IntSet(SpielerDatei,"Baned",0);



    mfg. :thumbup:

    10/10 Punkte


    Die Idee ist voll geil hätte nicht gedacht das sowas möglich ist. Könntest du vielleicht ein befehl machen das die Rakete auch respawnt? sonst muss man immer Server an und aus machen.


    Sag mal, kannst du nicht lesen oder ignorierst du absichtlich meinen Post :huh:
    Wie kannst du auf so ein System 10/10 Punkte geben, das stimmt vorne und hinten nicht !!!


    Ich würde anstatt
    TogglePlayerControllable(Atomname,1);


    TogglePlayerControllable(playerid,1); machen oO
    LG


    Der Parameter playerid wird aber erst gar nicht übergeben, das Script ist einfach nur schlecht und besteht aus C&P teilen die nicht kompatibel sind !!!


    mfg. :pinch:

    Du siehst ja wie es aufgebaut ist, den Rest kannste selber, niemand wird dir hier irgendwelche Copy&Paste Dinge schreiben, die direkt zu deinem Script passen, das musst du selbst anpassen.


    Aber dann solltet ihr ihm auch vernünftige Sachen schreiben und nicht sowas:


    Zitat

    (!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");


    :pinch:


    Aber ansonsten sollte der Code von roOlling funktionieren, musst nur paar Sachen noch ausbessern und evtl anpassen... ^^


    mfg. :thumbup:

    Ich weiß das dieser Thread sehr alt ist, ich will hier aber nur nochmal etwas für die schreiben, die auch hier zufällig landen
    (von einem anderen Thread).


    Dieses System ist richtig schlecht gescriptet und funktioniert rein gar nicht !


    Schon allein diese Sache:


    Zitat

    new Atomname;
    TogglePlayerControllable(Atomname,1);
    SendClientMessage(Atomname,ROT,"Hackvorgang abgeschlossen. Raketenstart eingeleitet");


    ist größter Schwachsinn ! :whistling:


    Nicht zu empfehlen und auch nicht zu befürworten !


    mfg. :thumbdown:


    Ehm, diesen Code solltest du noch etwas verbessern, denn so werden dir 500 Spieler angezeigt :D


    So wäre es besser:


    new plName[MAX_PLAYER_NAME], string[128];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInFrak(i, 1)) continue; //If abfrage anpassen
    GetPlayerName(i, plName, sizeof(plName));


    format(string, sizeof(string), "%s %s %s", plName, RANG_VARIABLE, USW);
    SendClientMessage(playerid, -1, string);
    }


    mfg. :thumbup:

    Und ob der Spieler ein NPC ist


    Sinnlos, auf diese 1millisekunde kommt es auch nicht mehr an ^^


    Und so sollte der Code aussehen:


    new string[128], Float:X,Float:Y,Float:Z;
    format(string,128,"%s sagt: %s",SpielerName(playerid),text);
    GetPlayerPos(playerid,X,Y,Z);
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInRangeOfPoint(i,15.0,X,Y,Z)) continue;
    SendClientMessage(i,White,string);
    }
    return 0;


    mfg. :thumbup: