Beiträge von .#~Momo

    Moin,


    ihr kennt doch sicherlich diese blöden ansangen wie:
    Incoming Connection: 127.0.0.1:58915
    [chat] [Momo] Wie gehts?
    [part] Momo has disconnect (0:1)
    [join] .... 127.0.0.1:5837


    in dem MSDOS fenster von SA:MP, die gehen mir so ziemlich aufm sack.
    Mit diesem Plugin werden diese 4 anzeigen gelöscht, diese werden dadurch nicht mehr angezeigt. (Ihr könnt im Filterscript / Gamemode eure eigenen printf-anzeigen erstellen unter den folgenden Callbacks: OnPlayerConnect, OnPlayerDisconnect und OnPlayerText.)


    So installiert ihr das Plugin:


    1) Öffnet die Server.cfg datei mit einem Text-Editor.
    2) Sucht den "Plugins" Parameter und schreibt"LogHook.dll" dahinter. ("plugins LogHook.dll") (Sollte der Parameter "Plugins" nicht vorhanden sein erstellt ihr eine Neue zeile und schreibt folgendes rein: "plugins LogHook.dll" ohne "")
    3) Kopiert die LogHook.dll aus dem Winrar Archiv und packt die dll im Plugins ordner. (Sollte der Ordner nicht vorhanden sein erstellt ihn einfach)
    4) Ihr seid Fertig 8)


    Dieses Plugin Funktioniert nur mit der SA:MP 0.3b R2 Version.



    Source:#include <Windows.h>
    int WINAPI DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved);
    void SAMPHook();


    int WINAPI DllMain(HINSTANCE hInst, DWORD reason, LPVOID reserved)
    {
    switch(reason)
    {
    case DLL_PROCESS_ATTACH:
    CreateThread(0, 0, (LPTHREAD_START_ROUTINE) SAMPHook, 0, 0, 0);
    break;
    }
    return true;
    }


    BYTE LOG1OFF[] = {0x90, 0x90, 0x90, 0x90, 0x90};
    BYTE LOG2OFF[] = {0x90, 0x90, 0x90, 0x90, 0x90};
    BYTE LOG3OFF[] = {0x90, 0x90, 0x90, 0x90, 0x90};
    BYTE LOG4OFF[] = {0x90, 0x90, 0x90, 0x90, 0x90};


    void SAMPHook()
    {
    WriteProcessMemory(GetCurrentProcess(), (LPVOID)0x49BB82, LOG1OFF, sizeof(LOG1OFF), 0);
    WriteProcessMemory(GetCurrentProcess(), (LPVOID)0x47C8F4, LOG2OFF, sizeof(LOG2OFF), 0);
    WriteProcessMemory(GetCurrentProcess(), (LPVOID)0x47CAD0, LOG3OFF, sizeof(LOG3OFF), 0);
    WriteProcessMemory(GetCurrentProcess(), (LPVOID)0x49B0F6, LOG4OFF, sizeof(LOG4OFF), 0);
    }


    /* ==================================================================================
    0049BB82 E8 B9B5FFFF CALL samp-ser.00497140


    0049BB82 90 NOP
    0049BB83 90 NOP
    0049BB84 90 NOP
    0049BB85 90 NOP
    0049BB86 90 NOP


    ;======================================================


    0047C8F4 E8 47A80100 CALL samp-ser.00497140


    0047C8F4 90 NOP
    0047C8F5 90 NOP
    0047C8F6 90 NOP
    0047C8F7 90 NOP
    0047C8F8 90 NOP


    ;======================================================


    0047CAD0 |. E8 6BA60100 CALL samp-ser.00497140


    0047CAD0 90 NOP
    0047CAD1 90 NOP
    0047CAD2 90 NOP
    0047CAD3 90 NOP
    0047CAD4 90 NOP


    ;======================================================


    0049B0F6 |. E8 45C0FFFF |CALL samp-ser.00497140


    0049B0F6 90 NOP
    0049B0F7 90 NOP
    0049B0F8 90 NOP
    0049B0F9 90 NOP
    0049B0FA 90 NOP
    ================================================================================== */

    strlen?



    Istn pseudo code, ich weiß nicht ob er jetzt funktioniert, aber kannst es ja mal versuchen.


    EDIT: Falls es nicht geht versuch es so:

    PHP
    if(isset(strlen($Variable) != 0) && ....)

    Nein, dass muss so aussehen.


    dcmd_o(playerid,params[])
    {
    if(olock == 0)
    {
    new omsg[256];
    if(sscanf(params, "s", omsg))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /o(oc) [Text]");
    }
    if(Mute[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_RED, " Du bist gemutet, warte bis ein Admin dich unmutet!");
    }
    else
    {
    new ostr[256];
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(ostr, sizeof(ostr), "(( %s: %s ))", aname, omsg);
    SendClientMessageToAll(COLOR_WHITE,ostr);
    AddLog("Chat.log", ostr);
    }
    }
    else
    {
    SendClientMessage(playerid,0xFFFFFFFF,"Der OOC wurde von einem Admin abgeschaltet!");
    }
    return 1;
    }

    Das man nur grade aus fährt glaube ich wohl kaum, aber versuche es doch mal so:


    SetVehiclePos zu dem Ort, TogglePlayerControllable(playerid, 0), ShowGameText(playerid, "Dein Wagen ist noch XXX Sekunden in Reperatur", ...), nachdem der Countdown auf 0 ist, TogglePlayerControllable(playerid, 1), SetVehiclePos nach draußen und voila.

    Ich würde mal sagen vor dem Return


    Aber schreib dir lieber eine Funktion wie Diese hier zb:


    stock AddLog(strFile[], strText[])
    {
    new File:LogFile = fopen(strFile, io_append);
    fwrite(LogFile, strText);
    fclose(LogFile);
    return 1;
    }


    Aufrufen tuste die dann so:


    AddLog("Chat.log", "Log funktioniert.\r\n");


    - Momo

    Für ein gutes Projekt, sollte man bereit sein größere Geldsummen hineinfließen zu lassen!

    Davor zb. hätte ich Angst, wie wir alle wissen brauch ein Server mit ca. 300 Spieler / Forum u. Ts3 einen Starken Dedicated Server, und ab 100~ Euro kommt man da nicht weg.


    Angenommen wir starten einen Server und habenen Einen Dedicated Gemietet von 100 Euro und der Server bleibt einfach Leer, dann wird das ganze wohl ein Sehr großes enttäuschtes Projekt sein, da man sein Geld ja aus dem Fenster schmeißt.

    Warum ist der Timer interval auf 1000ms gesetzt wenn die minute jedoch jede 60000ms geändert wird?
    Sehr ressourcenfressend, setz den timer doch auf 60000ms somit wird er alle 60 sekunden geupdatet, reicht doch? solang du keine sekunden anzeigen willst.

    Ja das stimmt allerdings,


    ich persöhnlich denke das der Server-Name perfekt sein sollte, ich würde nicht auf einem server anfangen zu zocken wenn ich ihn nicht können würde der zb: "Zocker Crew ROLEPLAY mod" heißen würde, da würde ich schon eher auf einem server joinen der zb: "German Roleplay Community" heißen würde.


    aber das problem ist und bleibt bei den ganzen spielern, ich glaube wohl kaum das ein richtiger stamm spieler den server verlassen würde und dann auf einem neuen anfangen würde.

    Moin,


    mal so ne kleine frage am rande, lohnt es sich eigentlich noch einen Roleplay server zu erstellen?
    bei den ganzen RP / RL Servern die grade online sind weiß kein user welcher wirklich gut ist, und hat bestimmt keine lust alle durch zu testen.


    Wie wir bereits wissen sind Nova und GRP die bekanntesten und meist besuchten rp server die im moment online sind, warum sollte man dann eigentlich noch einen server auf machen? man bekommt doch
    dann sogut wie eh keiner user, selbst wenn der server besser wäre wie die von oben genannten 2 servern, es ist doch die wahrheit?


    Was denkt ihr? ich würde mich gerne über antwort freuen. :thumbup:


    PS: ich schreibe gerne alles klein da ich caps nicht so mag ^^.

    Health wert auslesen und in einer Variable Speichern.
    Diese Variable XX Sekunden später abfragen ob der Spieler immer noch soviel Health hat nachdem Health abgezogen wurde.


    Ist doch eigentlich ganz simple :P

    Sowas gibts auch auf GRP :p.. Nachmachen ftw o.o?


    - LolRiTTeR

    Ich machs nicht nach, GRP hat das alte system wieder, grp hats ja selber kopiert wenn man das mal so sieht? =)
    Ich selber find das Dete system viel besser da es nicht sofort die Position des Spielers anzeigt, somit gibts wenigstens noch spaß am Suchen.

    Danke, genau das habe ich gesucht, hatte schon so n rechenweg im kopf aber konnte den nich umsetzen ^^

    Moin,


    mal ne frage, wie bekomme ich das eigentlich hin wenn ich ein Spieler such das er mir die Himmelsrichtung anzeigt vom dem Spieler den ich suche, zb ich bin am LSPD und der andere Spieler ist am BSN, dann zeigt er mir die entfernung an und halt die himmelsrichtung, das wäre in dem fall Norden, umgekehrt, der Spieler ist am LSPD und ich am BSN und suche ihn, dann sollte er mir Süden zurückgeben...


    das ganze war mal so auf GRP.
    Weiß einer wie?

    Moin, ich weiß nicht weiter was ich hier für einen bug habe... seht selbst:



    Code: if(Hospital[i] >= 0 && IsPlayerDead[i] == 1 && DoNotCount[i] == 0)
    {
    new stra[128];
    if(Hospital[i] <= 1) format(stra, sizeof(stra), "~r~In Behandlung~n~~w~Du bist noch~g~ 1 ~w~Sekunde in Behandlung~n~");
    else format(stra, sizeof(stra), "~r~In Behandlung~n~~w~Du bist noch ~g~%i~w~ Sekunden in Behandlung~n~", Hospital[i]);
    GameTextForPlayer(i, stra, 2000, 3);
    Hospital[i]--;
    }
    if(Hospital[i] <= -1 && IsPlayerDead[i] == 1)
    {
    SetPlayerMoney(i, -10);
    GameTextForPlayer(i, "Du lebst wieder~n~Du musstest der ~r~Krankenkasse~r ~g~10$~w~ bezahlen.~n~", 5000, 3);
    TogglePlayerControllable(i, 1);
    IsPlayerDead[i] = 0;
    PlayerSpawnAtHospital[i] = 1;
    SpawnPlayer(i);
    }

    Warum sind da dann zb. bei einem Roleplay server (dessen name ich hier nicht nennen will) für gekaufte fahrzeuge / gang cars nicht sichtbar?


    Medic Wagen, Polizei Fahrzeuge etc sind sichtbar nur gekaufte Fahrzeuge für Spieler nicht...

    Moin ich bin etwas verwirrt im moment...


    ich weiß nicht wie ich diese blöden Fahrzeug icons entfernen kann?


    AddStaticVehicle(ex) & CreateVehicle ergeben kein unterschied, SetVehicleParamsForPlayer(..., ..., 0, ...) ergibt auch nichts, wer könnte mir hier helfen??

    Moin,




    hab mal ne frage ist es eigentlich möglich in dem Array Index ein Thread/Stock auszuführen?




    Für die, die micht nicht verstehen hier ein bsp:




    New TestArray[128];
    TestArray[GetVehicleTrailer(GetPlayerVehicleID(playerid))] = Whatever(...)




    Mein Compiler spuckt damit immer fehler aus, oder muss ich mir jetzt n int deklarieren und das ganze so ausführen?




    new buffer;
    new TestArray[128];
    buffer = GetVehicleTrailer(GetPlayerVehicleID(playerid))
    TestArray[buffer] = Whatever(...)