Beiträge von IPrototypeI

    Das der Medic den Spieler revivt der am nähsten an ihn dranne ist.


    Die einzigste möglichkeit welche mir spontan einfällt wäre die spieler durch zu lopen wo diese im moment stehen also durch GetPlayerPos und diese in IsPlayerInRangeOfPoint abfragen
    aber vllt hat Blackace noch eine resourceschohnendere art parat

    Lass mich raten du hast id 0 daher ist es auch klar die weisst der variabel targetid nix zu also bleibt die lieber variabel auch null
    daher könnte ich mir dies auch so denken das nur dein name angeziegt wird und mal ehrlich was willst du mit deinem command erreichen
    du frägst hier zweimal if(SpielerInfo[i][Fraktion] == 4) ohne grund auch wenn das nur für dne spieler angeziegt wird auch die gesammt for schleife ist wie du sie gerade benutzt zweck los

    Du liest einen Namen aus, keine ID.
    if(sscanf(params,"uds",pID,wanteds,grund)) return SendClientMessage(playerid,weiß,"Verwendung: /su [playerid] [Wanteds] [Grund]");


    Siehe den Part mit "uds"
    pID ist aber ein Integer, also --> "dds"


    Face das ist nicht ganz richtig mit u kannst du die spielerid und den namen als parameter nehmen


    //edit ahja beim speichern


    dini_IntSet(Spielerdateien,"Wanteds",GetPlayerWantedLevel(playerid));


    würde ich die anzahl welche du bei SpielerInfo[pID][Wanteds] temporär abspeichern

    ich schwanke auch immer zwischen diesem dummen Gefühl ob ich lieber Selfmade machen soll oder GF editieren soll :S
    ich habe so oft darüber nach gedacht... aber hat ein gut editierter und einigermaßen bugfreier GF nicht auch Protential zu einem guten Server (später mal....)


    xD die worte stell ich mir ab und zu selbst wieso nicht lieber ein Selfmade weil es genug zu tun gibt am gf um dies grundlegend umzuschreiben aber naja.
    Zu der aussage oben zu SQL würde ich nicht wirklich tendieren dazu dem es auch noch gefahren gibt ein opfer einer sql injektion zu werden jedoch kann man dort dieses exploit fixxen
    so viel ich weißt gibts da was von Y_LESS. Aber nun gut es bringt auf jedenfall was ich benutze das neuste Rc 7 plugin und der speed reicht mir völlig aus naja für 1300 Datensätze laut
    test nur 60 ms mit der cach funktion.


    Aber zu deiner einen Frage wieso sollte sich ein gf nicht durchsetzen ein GF ist auch nichts anderes als ein Selfmade so gesehen ist halt nicht nur von einem selbst ;D
    also du kannst mit einem guten konzept, leider auch mit connections ein erfolgreichen Server starten und mit einem sehr guten konzept.

    so wie mir das erscheint schaut es stark danach aus das die 1 auschlaggebend ist und wieso erstellst du dir kein eigeen command womit du es als admin verkaufen kannst ?

    So auch ich war gerade eben drauf und hab mich so bissle umgeschaut auf dem Server.


    1. Vorstellung:
    Ist gut gegliedert , natürlich hätte man das auch noch bissle steigern können jedoch im großen und ganzem sehr gut gelungen hier zu 9/10.


    2. Forum:


    Das Forum bietet alles was man für anforderungen an einem Forum hat. Das Design muss ich leider sagen gefällt mir nicht so wirklich jedoch ist das alles geschmackssache
    und ich hätte mich auch gefreut wenn eine kleine style auswahl vorhanden wäre. Nun zum UCP. Dort habe ich ein kleinen Fehler gefunden ich weiß jetzt nicht ob der auch mit absicht gemacht wurde
    jedoch sieht man beim Header den Fehler welcher über den rand hinaus geht zu dem hat es noch einen größeren Fehler:


    Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '46.228.199.52' (4) in /var/www/vhosts/think-roleplay.wbb-host.org/httpdocs/ucp/functions.php on line 23
    Verbindung zur Datenbank konnte nicht hergestellt werden


    3. Server:
    Der Server ist sehr nett gestaltet somit auch der Tacho wo es kleines Schönheitsmakel gibt und zwar am tank , da der schwarze Rahmen um den text nicht rein passt .
    Bugs habe ich nicht so viele gesehen jedoch denk ich das der eine oder andere Bug bist existiert.
    Die Admins sind sehr kompetent und nett und an ihnen gibts nix zu bemängeln außer vllt an den Admincommands wäre sinvoller gewesen wenn Supporer auch leute porten können , jedoch ist
    das nicht so schlimm.
    Trotz der Beta- Version bietet das Script viele Features und feinheiten welche ich positive finde ,welche jedoch noch ausbaufähig sind.
    So für den Server 8/10
    soviel zu meiner Kritik



    Für deine Anforderungen xD solltest du doch besser im showroom nach gamemodes suchen weil diese alles beinhalten was du willst, auch selfmades beispiel das fusion script

    fehlt da nicht irgentwie noch was mit sscanf ? :D


    nein nicht wirklich das ist auch eine möglichkeit
    hier ein beispiel wie das mit sscanf ausehen kann

    ocmd:dance(playerid,params[])
    {
    new dancestyle;
    if(sscanf(params,"i",dancestyle))return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /dance [1-4]");
    if(dancestyle<1||dancestyle>4)return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /dance [1-4]");
    if(dancestyle == 1) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
    else if(dancestyle == 2) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
    else if(dancestyle == 3) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
    else if(dancestyle == 4) SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE4);
    return 1;
    }
    //edit
    hierzu kannst du auch d nehmen was für Zahlen steht das macht kein unterschied

    ok dann werde ich dir dazu mal die basics erläutern


    wie man die nachricht an jeden schicken kann :


    dazu brauchen wir eine for schleife diese wird danach durch alle spieler durch gehen


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SendClientMessage(i, farbe, string);


    dies kann man auch machen wie man will auch mit GetMaxPlayers zum beispiel was so gesehen auch schneller ist es sei den du hast genau die menge spieler auf dem server
    wie beim neu definieren von MAX_PLAYERS for(new i; i<GetMaxPlayers(); i++)


    So was macht unser code dort oben also es ist eine schleife welche durch jeden spieler durch geht wenn du das printen lassen würdesr wäre der output 0.1.2.3.4.5... usw
    bei IsPlayerConnected wird überprüft ob die spieler on sind oder nicht bei GetMaxPlayers könnte man dies streichen weil sowieso hier die anzahl genommen wird von spielern welche sich auf dem Server befinden
    und durch SendClientMessage wird hier die nachricht an die spieler geschickt.


    so machen wir mal ein beispiel code mit ocmd und parameter


    ocmd:test(playerid,params[])
    {
    new string[128], text[64], pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    if(sscanf(params,"s",text))return SendClientMessage(playerid,0xFFFFFFAA,"Benutze: /test [text]");
    format(string, sizeof(string),"%s: %s",pName,text);
    for(new i= 0; i < GetMaxPlayers(); i++){
    if(IsPlayerConnected(i)){ SendClientMessage(i, 0xFFFFFFAA, string);}
    }
    return 1;
    }


    nun was du auch willst ist ein timer den lassen wir eine variabel auf 0 wieder setzen
    dann kannst du oben im script eine neue variabel definieren oder ein bool
    new test;


    bei dem command lässt nun den timer für den spieler laufen und die variabel auf 1 setzen spriche test = 1;
    und den timer für die spieler daher benutzen wir SetTimer erst name , danach zeit und 0 steht für das nicht wiederholen
    20000 = 20 Sekunden da 1 Sekunde = 1000 ms sind millisekunden

    SetTimer("Werbung", 20000, 0);


    public Werbung()
    {
    test = 0;
    }


    so den rest darfst dir nun selbst noch erarbeiten was du auch noch machen kannst ist die länge des eingegebenen strings abfragen und das geld abziehen
    auch hierzu ein beispiel


    new idx= strlen(text), preis = idx* 5;
    GivePlayerMoney(playerid, - preis );


    das heißt im klartext das hier die zeichen abgefragt werden von dem eingegebenen text an dem ocmd command oben und die zeichen werden nun mit 5 multipliziert
    und das wird dem spieler abgezogen
    Bsp:


    Hallo = 5 Buchstaben
    5 Buchstaben * 5 = 25
    der spieler bekommt 25 Dollar abgezogen


    besser gesagt wo hast du deine Probleme bei dem erstellen des commands ?
    und poste ihn mal

    du hast das #endif weggelassen beim erstellen deines neuen gamemodes ^^
    also ich geh mal davon aus das du das hier weggelassen hattest


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print(" Blank Filterscript by your name here");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
    }


    #endif


    daher kannst du das obere auch entfernen außer das main()