Beiträge von sworter

    Nabend allerseits.
    Grad kam ich auf so eine Idee, die dem Spieler auf SAMP-Servern ein besseres "Ich"-Feeling beim Spielen vermitteln.


    Auf allen Servern die ich kenne, werden Infos wie z.B. "Du besitzt keine Schlüssel für dieses Fahrzeug!" oder "Du musst Leader sein um diesen Befehl nutzen zu können." so vermittelt, als wenn eine Art System dir Errors vors Gesicht schmeißt. Ehrlich gesagt hat mich das nie besonders gestört, aber ich denke dennoch, dass folgender Vorschlag eine gute Alternative ist.


    Wie wärs denn, wenn man statt SendClientMessage, GameTextForPlayer nutzt und die Infos so gestaltet, als wären es Gedanken des Charakters. So könne man z.B. "Mist! Das Auto ist abgeschlossen!" oder "Klar bin ich Boss-like. Brauche nur noch zum Leader werden, dann kann ich [...]". Ich finde das Ganze lockert das Spielfeeling etwas. Erweitern könne man es übrigens durch mehrere alternative "Gedanken" pro Fall (Info-Nachricht). Man kann z.B. für jeden Fall 5 mögliche Sätze bilden, aus dem ein Satz im Falle des Falles per zufall ausgesucht wird, um dem Ganzen eine Priese Abwechslung hinzuzufügen.


    Ich finde jetzt nicht, dass die Terralangen Gamemodes unbedingt bearbeitet werden müssen. Es ist einfach nur ne Spielerei, die etwas besser beim Spieler ankommen.
    Wie gesagt ist nur eine Klinigkeit, die aber evtl. eine große/andere Wirkung erzeugt.


    Was sind eure Meinungen zu diesem Vorschlag? Würde es euer Spielerlebnis auf einem Server verändern/verbessern/abwechslungsreicher machen?


    Gruß
    sworter

    Nein, LoadRang lädt nur die Ränge der Fraktion die angegeben wird.
    fID steht ja auch für die Fraktion (Steht auch im Befehl).
    Jedoch danke ich dir für deinen Tipp. Hoffe mir kann jemand helfen.


    Gerade das tut es nicht (ganz so) ...


    So müsste es aussehen, um die Ränge für nur 1 Fraktion zu laden:

    stock LoadRang(frakid)
    {
    new string[128];
    format(string,sizeof(string), "%d", frakid);
    format(fInfo[frakid][fRang1],64,"%s",mysql_GetString("frakranks", "Rang1", "ID", string));
    format(fInfo[frakid][fRang2],64,"%s",mysql_GetString("frakranks", "Rang2", "ID", string));
    format(fInfo[frakid][fRang3],64,"%s",mysql_GetString("frakranks", "Rang3", "ID", string));
    format(fInfo[frakid][fRang4],64,"%s",mysql_GetString("frakranks", "Rang4", "ID", string));
    format(fInfo[frakid][fRang5],64,"%s",mysql_GetString("frakranks", "Rang5", "ID", string));
    format(fInfo[frakid][fRang6],64,"%s",mysql_GetString("frakranks", "Rang6", "ID", string));
    }


    Die for schleife würde sonst wirklich jede Fraktion mit den Rängen EINER EINZIGEN fraktion besetzen.

    Naja ich weiß zwar nicht wieso der Rang nicht angezeigt wird aber dennoch habe ich einen kleinen Fehler beim laden der Ränge entdeckt.
    Mit LoadRang erreichst du derzeit, dass die jeweiligen Ränge aus der angegebenen frakid ALLEN Fraktionen zugewiesen wird. Ich denke nicht, dass dies gewollt ist (oder?). Falls du möchtest, dass die Ränge mit LoadRang nur für eine Fraktion geladen wird, streich die for schleife weg und lass nur die formats (setze als Arrayindex frakid statt i).


    Anderenfalls (würde ich auch eher empfehlen) könntest du auch alle Ränge bei OnGameModeInit einmal in die fInfos mit der Forschliefe laden und lässt frakid einfach ganz aus dem Spiel. Statt frakid konvertierst du einfach i in einen string. Somit würde auch nur einmal beim Laden des GameModes auf die Datenbank zugegriffen werden, statt bei jeder /f-Chat aktion.

    ???
    Naja eigentlich eher nicht. Der Code soll offensichtlich dazu dienen im occ die jeweiligen Adminränge als Titel (z.B. ServerOwner Ass: Hallo ) anzuzeigen falls der Nutzer keinen Tarnnamen (maske=0) hat.


    Viel eher ist bei der 2. Abfrage sinnlos, die Adminränge Abzufragen.
    Ich würde das Ganze so machen:

    ocmd:o(playerid,params[])
    {
    new sendername[MAX_PLAYER_NAME];
    new result[256];
    new string[256];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(sscanf(params,"s",result))return SendClientMessage(playerid,FARBE_GRAU,"INFO: /o[Text]");
    {
    if(GetPVarInt(playerid,"maske")==0)
    {
    if(GetPVarInt(playerid,"Adminlevel") == 9) { format(string,sizeof(string),"{00CDFF}[OOC]ServerOwner %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 8) { format(string,sizeof(string),"{00CDFF}[OOC]Techniker %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 7) { format(string,sizeof(string),"{00CDFF}[OOC]ServerManager %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 6) { format(string,sizeof(string),"{00CDFF}[OOC]CommunityManager %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 5) { format(string,sizeof(string),"{00CDFF}[OOC]SuperAdmin %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 4) { format(string,sizeof(string),"{00CDFF}[OOC]Administrator %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 3) { format(string,sizeof(string),"{00CDFF}[OOC]Moderator %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 2) { format(string,sizeof(string),"{00CDFF}[OOC]Supporter %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 1) { format(string,sizeof(string),"{00CDFF}[OOC]Probesupporter %s: %s",sendername,result); }
    else if(GetPVarInt(playerid,"Adminlevel") == 0) { format(string,sizeof(string),"{00CDFF}[OOC]User %s: %s",sendername,result); }
    }
    else
    {
    format(string,sizeof(string),"{00CDFF}[OOC] %s: %s",SpielerInfo[playerid][deckname],result);
    }
    SendClientMessageToAll(FARBE_WEISS,string);
    }
    return 1;
    }

    Nabend allerseits.


    Ich habe derzeit ein Problem damit, meine PlayerTextdraws vernünftig anzuzeigen sobalt man eine Taste gedrückt hält.
    Nutzen tuh ich die HOLDING und RELEASE defines aus dem Samp wiki für OnPlayerKeyStateChange().
    Ingame flackern die Textdraws aber.
    Wird RELEASE etwa auch ausgeführt wenn ich die Taste immer noch gedrückt halte?



    if(HOLDING(KEY_NO))
    {
    PlayerTextDrawShow(playerid, Hintergrund1[playerid]);
    SelectTextDraw(playerid, COLOR_LBLUE);
    }
    else if(RELEASED(KEY_NO))
    {
    CancelSelectTextDraw(playerid);
    PlayerTextDrawHide(playerid,Hintergrund1[playerid]);
    }


    Wäre für Hilfe sehr Dankbar.


    Gruß
    sworter

    Hallo liebe Comnuity,
    Ich würde gerne wissen, ob es möglich ist, dass Menüs nicht ausgeblendet werden, wenn man Enter-taste drückt.
    Ist für mich z.B. beim Sterbesystem wichtig (wo der Spieler spawnen soll). Falls nötig, habe ich auch eine Variable, die beschreibt,
    ob der Spieler tot ist oder nicht! OnPlayerUpdate wär keine Lösung für mich!



    Ich ahbe folgendes versucht (ohne erfolg):

    OnPlayerExitedMenu(playerid)
    if(GetPlayerMenu(playerid)==SpawnMenu)
    {
    if(pInfo[playerid][IsDeath]==1)
    {
    ShowMenuForPlayer(SpawnMenu,playerid);
    }
    }
    return 1;
    }

    Hallo,
    Ich habe ein riesen Problem. Da ich nicht alles unübersichtlich in eine
    Datei Scripten will, habe ich alles in Filterscripts aufgeteilt.
    Also Bank&Payday-Filterscript, Jobs-Filterscript, Autos-Filterscript, Biz ... u.s.w.


    Mein Problem: Bis auf einem Filterscript (dem ersten den ich in der
    Server.cfg eingetragen habe!!), reagieren die OnDialogResponse-Callbacks
    nicht!


    Es kommen also dialoge, passiert aber nichts. Setze ich einen anderen
    Filterscript am Anfang in die Server.cfg, so funktioniert NUR da der
    Callback.


    Momentan hoste ich den Server auf meinem Computer. Wäre das bei den
    Root-Servern anders? Oder liegt es an dem "Virtuellen Arbeitsspeicher"?


    Danke im Vorraus.