Beiträge von Splash

    // above main()
    forward ChangeHostname();


    public OnFilterScriptInit()
    {
    SetTimer("ChangeHostname",1000,1); // Change the, 1000 to whatever you want, in milliseconds ofc.
    return 1;
    }


    public ChangeHostname()
    {
    new var = random(3);
    switch (var)
    {
    case 0: SendRconCommand("hostname My server name 1");
    case 1: SendRconCommand("hostname Server name 2");
    case 2: SendRconCommand("hostname Name 3 here");
    }
    }


    Quelle: Einmal Google -> http://forum.sa-mp.com/showthread.php?t=57446

    Das währe wieder hin blöd, ich kann einen Freund sagen er soll alle meine Beiträge Liken :)


    Es gibt doch auch noch andere Möglichkeiten, welche besser als das Registrierungsdatum, der Beitragszähler UND des Likesystem ist, man muss sich aber auch einmal Gedanken darüber machen und nicht immer nur sagen das es einem nicht gefällt. Das Team kann ja dann zum Beispiel eine Umfrage mit den besten Ideen machen und wir alle können dann abstimmen was uns am besten gefällt (oder es wird intern abgeklärt). Mir zum Beispiel würde es persönlich gefallen, wenn anstatt des Beitragszählers, etc, eine Porzessbar wäre, die anzeigt wieviel Prozent man noch zum nächsten Forenrang brauch. Ich sagte extra Prozent, da andernfals wieder das mit den Beiträgen aufkommt was ja das falsche Denken vieler hervorruft.


    Und ich muss ehrlich sagen es muss so oder so IMMER eine Seite mit dem Endresultat leben auch wenn es der Seite nicht gefällt.

    Ich habe aber die Meinung, dass man an der Beitragszahl ansehen kann, ob der Benutzer Erfahrung hat, oder eher noch ein Neuling ist.
    Ich kann der Beitragszahl entnehmen, dass der Benutzer ein bisschen Seriöser ist.


    Exakt das ist das falsche Denken, denn auch jemand mit 1000+ Post kann jemanden über den Tisch ziehen, auch jemand der hier schon lange angemeldet ist muss nicht unbedingt viele Posts haben, jemand der sich hier registriert muss nicht ein Neuling in Pawn sein.


    Das ist das Problem hier bei den meisten. Sie denken in eine vollkommen falsche Richtung.


    Zudem habe ich das Gefühl das hier einige einfach nur Angst haben einmal etwas neues auszuprobieren, der Mensch ist ein Gewohnheitstier, das sieht man hier wieder SO gut. Probiert es doch erst einmal aus, macht Vorschläge welche die jetzige Situation verbessern können, anstatt euch immer und immer wieder auf die Hinterfüße zu stellen und zu sagen "Nein das will ich nicht!". Nur weil andere Foren den Beitragszähler noch haben, heisst es nicht das es etwas Schlechtes sein muss, vielleicht beruhigt sich hier dann auch das ein oder andere einmal wieder, da die "alten" Hasen hier wirklich teilweise denken sie sind der King nur weil sie mehr Posts haben als ein anderer.


    Natürlich finde auch ich das RegDatum nicht passend an der Stelle. Jedoch muss ich sagen das ich auch nichts dagegen habe.


    Vielleicht sollten sich doch einige einmal durch den Kopf gehen lassen, ob sie sich nicht doch weiter entwickeln wollen und von alten Gewohnheiten auch einmal abschweifen können und etwas neues ausprobieren.

    Sollte GetPlayerIp auf lokalhost genutzt werden gibt er immer mit einer wahrscheinlickeit von 50% die richtige aus ODER genau diese, dies ist sogar eigentlich bekannt.


    Zudem wo nutzt du es, da es auch bei OnPlayerDisconnect passieren kann.

    Ich würde nun auch gerne einmal einen Vroschlag hier mit einbringen. Da ich aber nicht weiss ob es möglich ist nur unter vorbehalt.


    Warum macht ihr es nicht so, dass anstatt eines Beitragscounters oder des derzeitigen regdatums einfach eine Prozentanzeige zum nächsten Rang angezeigt wird? Es würde bestimmt teilweisse viele interessieren wie lange man noch brauch um einen Rang höher zu kommen usw. Zudem wird dadurch das es in prozent angezeigt wird auch nicht der Beitragscount in dem Sinne angezeigt. Und das regdatum finde ich persönlich auch etwas hässlich.

    Gehen nicht weg.


    Falls es klappt mach unten so eine Kleine Box einfach hin, dann würde ich die oben aber auch hin machen, dann hat es den Effekt wie man das auf Spielfilmen kennt, wo die Bildhöhe kleiner wird.


    Kann man sehr wohl verschwinden lassen...


    Einfach den Spieler wie Kaliber schon sagte spawnen lassen, dann setzt du in einfach in eine beliebige Welt, eine beliebige Position, setzt die CameraPosition wo sie sein soll während des Tut's, setzt CameraLookAt wie du es haben möchtest und fertig, darfst dann halt nur nicht vergessen, wenn er mit dem Tutorial fertig ist wieder in die virtuelle Welt 0 zu setzen und die Camera wieder hinter den Spieler zu setzen.

    Mach das ganze nochmal unter OnPlayerRequestClass


    MfG :thumbup:


    Wegen weil? Das ist Quatsch eine Variable ein zweites mal auf 0 zu setzen wenn sie es schon ist.


    @Rocky: er meint bestimmt das der Callback trotzdem ausgeführt wird obwohle er ja nun eigentlich nichts in den Chat senden soll.


    @Topicstarter baue es doch einfach etwas um, dann kannst du dir sicher sein, dass es so funzt wie du willst.


    if(GetPVarInt(playerid,"Eingeloggt") == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du kannst nichts schreiben, solange du nicht eingeloggt bist!");
    return 0;
    }

    Ist er nicht in deiner Favouriten Liste oder welche Liste meinst du? Es gibt 3 im SA:MP Clienten, solltest du nur deine Fav Liste meinen, dann starte den Server einmal und füge :7777 erneut hinzu.


    @Rocky lanmode hat rein gar nichts mit dem Anzeigen eines Servers zu tun, es ist nur dafür gedacht dass der Server genauer arbeitet, was eine höhere Bandbreitennutzung hervorruft.

    Hey,


    Kann mir einer sagen wie ich abfragen kann ob die Timer Zeit vorrüber ist?!


    Danke im vorraus ;)


    Setze einfach eine Variable auf 1 wenn der Timer startet und wenn der Timer vorbei ist wieder auf 0, sollte er nicht vorbei sein ist die Variable logischerweisse noch 1.


    Beispiel:
    new var[MAX_PLAYERS];
    //Wo der Timer startet
    {
    if(var[playerid]==0)
    {
    SetTimerEx("EinTimer",1000*60*10,0,"i",playerid);
    var[playerid]=1;
    }
    return 1;
    }


    forward EinTimer(playerid);
    public EinTimer(playerid)
    {
    var[playerid]=0;
    return 1;
    }


    //Abfrage ob Timer noch aktiv:


    if(var[playerid]==1)
    {
    //Timer ist noch aktiv
    }


    if(var[playerid]==0)
    {
    //Timer ist inaktiv
    }

    Erneut, der gekickte bekommt seit 0.3x KEINE Nachricht mehr zugeschickt, sollte die Funktion Kick und SendClientMessage zusammen ausgeführt werden! Kick wird IMMER zuerst ausgeführt, wenn du möchtest dass er die Nachricht sieht, MUSST du anstatt der Kick Funktion einen Timer nutzen.


    Es würde wie folgt aussehen:


    ocmd:kick(playerid,params[])
    {
    new plid;
    new grund[64];
    new string[128];
    if(IsPlayerConnected(plid))
    {
    if(SpielerInfo[playerid][pAdminlevel] >= 2)
    {
    if(sscanf(params,"us",plid,grund))return SendClientMessage(playerid,ROT,"Tippe: /kick [Id/Name][Grund]");
    if(GetPVarInt(plid,"Adminlevel") > GetPVarInt(playerid,"Adminlevel")) return SendClientMessage(playerid,ROT,"Das darfst du nicht tuen");
    format(string,sizeof(string),"[AdmCmd]: %s wurde von %s gekickt Grund: %s",Spielername(plid),Spielername(playerid),grund);
    SendClientMessageToAll(ROT,string);
    SetTimerEx("KickTimer",500,0,"i",plid);
    }
    }
    return 1;
    }


    forward KickTimer(playerid);
    public KickTimer(playerid)
    {
    Kick(playerid);
    return 1;
    }

    Und hier noch der richtige Befehl dazu:


    dcmd_showpda(playerid,params[])
    {
    #pragma unused params
    if(PlayerInfo[playerid][PDA]== 1)
    {
    PlayerTextDrawHide(playerid, StatsDraw[0]);
    PlayerTextDrawHide(playerid, StatsDraw[1]);
    PlayerTextDrawHide(playerid, StatsDraw[2]);
    PlayerTextDrawHide(playerid, StatsDraw[3]);
    PlayerTextDrawHide(playerid, StatsDraw[4]);
    }
    else
    {
    PlayerTextDrawShow(playerid, StatsDraw[0]);
    PlayerTextDrawShow(playerid, StatsDraw[1]);
    PlayerTextDrawShow(playerid, StatsDraw[2]);
    PlayerTextDrawShow(playerid, StatsDraw[3]);
    PlayerTextDrawShow(playerid, StatsDraw[4]);
    }
    return 1;
    }


    IPrototypeI Bei PlayerTextDraws brauchste kein MAX_PLAYERS und musst diese auch nicht beim kreiren nutzen, da ja nun die Textdraws einer playerid zugewiesen werden.


    Würde so auf jeden Fall funktinieren OHNE Errors und Warnings:


    new PlayerText:StatsDraw[5];
    public OnPlayerConnect(playerid)
    {
    StatsDraw[0] = CreatePlayerTextDraw(playerid,525.000000, 125.000000, "Level:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[0], 255);
    PlayerTextDrawFont(playerid,StatsDraw[0], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[0], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[0], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[0], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[0], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[0], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[0], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[0], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[0], 644.000000, 0.000000);


    StatsDraw[1] = CreatePlayerTextDraw(playerid,525.000000, 136.000000, "Bank:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[1], 255);
    PlayerTextDrawFont(playerid,StatsDraw[1], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[1], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[1], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[1], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[1], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[1], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[1], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[1], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[1], 642.000000, 0.000000);


    StatsDraw[2] = CreatePlayerTextDraw(playerid,525.000000, 147.000000, "Handynr.:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[2], 255);
    PlayerTextDrawFont(playerid,StatsDraw[2], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[2], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[2], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[2], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[2], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[2], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[2], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[2], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[2], 640.000000, 0.000000);


    StatsDraw[3] = CreatePlayerTextDraw(playerid,525.000000, 158.000000, "Payday:");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[3], 255);
    PlayerTextDrawFont(playerid,StatsDraw[3], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[3], 0.400000, 0.949999);
    PlayerTextDrawColor(playerid,StatsDraw[3], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[3], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[3], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[3], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[3], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[3], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[3], 640.000000, 0.000000);


    StatsDraw[4]= CreatePlayerTextDraw(playerid,525.000000, 169.000000, "Mit /showstats an oder aus schalten");
    PlayerTextDrawBackgroundColor(playerid,StatsDraw[4], 255);
    PlayerTextDrawFont(playerid,StatsDraw[4], 1);
    PlayerTextDrawLetterSize(playerid,StatsDraw[4], 0.160000, 1.200000);
    PlayerTextDrawColor(playerid,StatsDraw[4], 8913151);
    PlayerTextDrawSetOutline(playerid,StatsDraw[4], 0);
    PlayerTextDrawSetProportional(playerid,StatsDraw[4], 1);
    PlayerTextDrawSetShadow(playerid,StatsDraw[4], 1);
    PlayerTextDrawUseBox(playerid,StatsDraw[4], 1);
    PlayerTextDrawBoxColor(playerid,StatsDraw[4], 101);
    PlayerTextDrawTextSize(playerid,StatsDraw[4], 640.000000, 0.000000);
    return 1;
    }


    EliteBread


    Habe mich erst gefragt warum eine Schleife für sowas, also habe ich dir es einmal so gemacht, übrigens wäre dies gerade einmal EINE Zeile mehr.

    Das Problem bei Groovestreet ist sehr bekannt, wedhalb der Ort einfach sehr blöd ist, habe es bisher noch nicht hinbekommen dass die Fahrzeuge da stehen wo man sie haben will.


    Schnonmal versucht Objekte unter der Groove Street zu platzieren? Also Flächen wie Object ID: 19377.


    Ich habe es einmal probiert, und bei mir hatte es funktioniert:


    Einmal CreateObject


    CreateObject(19377, 2484.60, -1685.29, 12.20, 0.00, 90.00, 0.00);
    CreateObject(19377, 2505.42, -1659.11, 12.19, 0.00, 90.00, 0.00);
    CreateObject(19377, 2505.31, -1668.65, 12.19, 0.00, 90.00, 0.00);
    CreateObject(19377, 2505.34, -1678.10, 12.19, 0.00, 90.00, 0.00);
    CreateObject(19377, 2494.88, -1680.82, 12.20, 0.00, 90.00, 0.00);
    CreateObject(19377, 2494.88, -1671.20, 12.20, 0.00, 90.00, 0.00);
    CreateObject(19377, 2494.90, -1661.60, 12.19, 0.00, 90.00, 0.00);
    CreateObject(19377, 2494.91, -1652.08, 12.19, 0.00, 90.00, 0.00);
    CreateObject(19377, 2474.07, -1685.58, 12.22, 0.00, 90.00, 0.00);
    CreateObject(19377, 2484.60, -1666.49, 12.21, 0.00, 90.00, 0.00);
    CreateObject(19377, 2484.61, -1675.87, 12.20, 0.00, 90.00, 0.00);
    CreateObject(19377, 2484.60, -1657.06, 12.21, 0.00, 90.00, 0.00);
    CreateObject(19377, 2474.25, -1657.02, 12.21, 0.00, 90.00, 0.00);
    CreateObject(19377, 2474.21, -1666.61, 12.19, 0.00, 90.00, 0.00);
    CreateObject(19377, 2474.19, -1676.00, 12.21, 0.00, 90.00, 0.00);


    Einmal als CreateDynamicObject


    CreateDynamicObject(19377, 2484.60, -1685.29, 12.20, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2505.42, -1659.11, 12.19, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2505.31, -1668.65, 12.19, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2505.34, -1678.10, 12.19, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2494.88, -1680.82, 12.20, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2494.88, -1671.20, 12.20, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2494.90, -1661.60, 12.19, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2494.91, -1652.08, 12.19, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2474.07, -1685.58, 12.22, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2484.60, -1666.49, 12.21, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2484.61, -1675.87, 12.20, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2484.60, -1657.06, 12.21, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2474.25, -1657.02, 12.21, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2474.21, -1666.61, 12.19, 0.00, 90.00, 0.00);
    CreateDynamicObject(19377, 2474.19, -1676.00, 12.21, 0.00, 90.00, 0.00);


    Wäre jetzt aber nur die Strasse, da ich nicht weiss was für Boden da alles verbuggt ist.