Beiträge von Simon

    Guten Tag.


    Man kann den Text auf verschiedenen Arten in einem Dialog anordnen.
    Mir bekannt sind "\r" , "\t" und "\n".


    Ich würde nun gerne wissen ob es noch andere möglichkeiten gibt, den Text anzuordnen.


    MfG
    Simon


    //edit: \t eingefügt, hatte ich vergessen

    ich würde einfach abfragen ob der rcon cmd gmx gesendet wird, und wenn ja werden alle z.Z eingeloggten Spieler gespeichert..


    man weiß ja nie wann man noch SendRconCommand("gmx"); verwendet und wenn man per /rcon den server restartet funzt es auch.


    einfach einmal einfügen so wie ich das gemacht habe und es sollte immer klappen..

    er kann nicht den enumnamen verwenden, er muss ne neue variable erstellen mit folgenen arrays: var[MAX_PLAYERS][enumname]


    und ich denke ma er hat es schon soweit..

    versuchs ma so:


    OnRconCmdSend(cmd[])
    {
    if(!strcmp(cmd,"gmx",true))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(gPlayerLogged[i] == 1) //deiner variablen anpassen
    {
    SpielerSpeichern(i)
    }
    }
    }
    return 1;
    }


    und dein /restart befehl lässte so wie er vorher war..

    du kannst ihn wieder ins login menu setzen, das ist möglich.


    wenn man conected wird halt das login menu (falls vorhanden) geöffnet und er muss pw etc eingeben. wenn alles richtig eingegeben wurde, wird er eingeloggt und ggf. ne variable auf 1 gestellt. mit dem command kannst du die variable wieder auf 0 setzen und das menu neu öffnen.


    aber ausloggen in diesem sinne, das sein gta geschlossen wird geht nicht.

    ähm mir ist gerade eingefallen das es den cmd /q gibt. eventuell kann man diesem cmd senden, ich weiß nur net obs klappt, und ich glaube nicht.

    und was passiert dann? wird dann gta einfach geschlossen von dem spieler der ausgeloggt wird?


    wie gesagt: man muss ihn kicken, aussehen lassen als wenn er sich ausloggt ist kein problem, jedoch wird er gekickt.

    wie willst du die denn ausloggen?


    LogoutPlayer(playerid);???


    du kannst sie nur kicken, und wie oben schon genannt sucht er sowas nicht.


    natürlich kannst du es so aussehen lassen als wenn er sich ausloggt, aber in wirklichkeit wird er trotzdem gekickt.


    Aufjedenfall kannst du nicht vermeiden das bei denjenigen die Nachricht "Server close the connection" steht

    Also du musst oben FTP auswählen und um rauszubekommen, welche ip du freigeben musst, musst du die cmd.exe ausführern und "ipconfig" eingeben.


    unter "IPv4-Addresse siehst fu dann die Ip die freigegeben werden muss, denn jeder Rechner im netzwerk hat am ende eine andere ziffer (100, 101, 102...)


    du hats bestimmt die selbe ip vom laptop genommen, aber den server auf deinem rechner laufen. dann musst du die ip vom rechner auswählen.

    jo, habe ich schon gemacht, die rechnung kommt nicht ganz hin, aber ich habe eine andere Möglichkeit gefunden, das zu lösen.


    //edit: ich rechne nun den schaden aus. danach rechne ich aus wieviel prozent das sind. dann wird der kautionspreis /100 * den schaden in prozent gerechnet.


    ich habe mehrere beispiele mal nachgerechnet und nach meiner rechnung kommt auch das raus was raus kommen sollte, doch in PAWN klappt die rechnung nicht ganz.


    hier mal die rechnung:
    new Float:vSchaden,Float:vhp,geld,Float:pro,str[50];
    GetVehicleHealth(Testcar[playerid],vhp);
    vSchaden = 1000.0-vhp;
    if(vSchaden >= 701) // falls schaden höher, gleich 700 ist, ist es ein totalschaden
    {
    geld=0;
    }
    else if(vSchaden >= 1) //falls schaden zwischen 1 und 700 ist
    {
    pro=100/700*vSchaden; //100% : maxSchaden x Schaden
    geld=floatround(250/100*pro,floatround_round); //Kaution : 100% x pro und dies gerundet auf einen integer
    }
    else //falls das auto kein schaden hat
    {
    geld=250;
    }
    format(str,sizeof(str),"Test: du hättest $%d zurückbekommen!",geld);
    SendClientMessage(playerid,green,str);

    Guten Tag


    Ich bräuchte mal Hifle bei einer umrechnung:


    Die Hp von Fahrzeugen geht von 0 - 1000. Da ich jedoch ein Motorsystem habe, hat man bereits bei 300 HP ein Motorschaden. d.h. 300 Hp = 0% | 1000hp = 100% | 650 = 50%


    Nun gibt es je nach fahrzeug typ verschiedent hohe Kautionen. Eine davon ist $500. nun wäre es so, dass wenn ich das Fahrzeug mit 1000 Hp (100%) abgeben würde, würde ich 100% ($500) wiederbekommen, jedoch bei 650 Hp nur 50 %, also in diesem Fall 250.


    Nun zum wesentlichen: Je nach fahrzeug typ ist die Kaution anders. die Hp ist je nach Fahrstil und skill auch verschiedent =). nun möchte ich ausrechnen wieviel % HP das Fahrzeug hat und soviel % Hp vom Fahrzeug, soviel % soll von der Kaution wiedergegeben werden.


    Ich glaube wenn man ersteinmal die Rechnung hat, ist es ganz logisch und einfach, jedoch stehe ich z.Z. aufm Schlauch und weiß nicht wie ich das umrechnen soll.


    Es wäre sehr nett wenn mir jemand bei diesem Problem helfen könnte.


    MfG
    Simon

    mit MTA kannst du die cam mappen. du mast dann die stelle, wo die camera hinguckt speichern.
    dann musst du mit einem timer überprüfen ob jemand in einen bestimmten bereicht kommt.
    wenn er in den bereich kommt, musst du die camereinstellung ändern:


    SetPlayerCamerPos(playerid,x,y,z); // x,y,z wären in diesem fall die selben wie die vom object.
    SetPlayerCameraLookAt(playerid,x2,y2,z2); // x2-z2 wären dann die koordinaten die du extra gespeichert hast

    du musst das ganze an deinem system anpassen:


    in einer enum speicherst du sicherlich die spielerdaten:



    enum bla //anpassen!
    {
    ban,
    bangrund[150]
    }


    falls du den spieler nun bannst, ich denke mal mit einem befehl:
    dini_Set(DATEI,"bangrund",msg); //anpassen
    dini_IntSet(DATEI,"ban",1);
    Kick(playerid);


    beim einloggen:
    if(dini_Exists(DATEI))
    {
    if(dini_Int(DATEI,"Ban") == 1)
    {
    new str[175];
    format(str,sizeof(str),"Du bist auf diesem Server gebannt, Grund: %s!",dini_Get(DATEI,"bangrund");
    SendClientMessage(playerid,farbe,str);
    return kick(playerid);
    }
    }


    so muss das ungefär aussehen, musst du dann halt an deinem system anpassen