Beiträge von Jaybinda

    lol nein, du musst das mit dem velocity1 unter der if abfrage machen!!! Das is ganz wichtig. Und am besten definierst du das noch für alle spieler, damit es nit zu verwächslungen kommt :D

    SendClientMessage(playerid, COLOR_BLA,"Cops:");
    for(new i; i < MAX_PLAYERS;i++)
    {
    if(ISCOPIMDIENST[i])
    {
    GetPlayerName(i, name, sizeof(name));
    SendClientMessage(playerid, COLOR_BLA,name);
    }
    }


    Aber ISCOPIMDIENST musst du auf dein script anpassen.


    MFG, Robdeflop®

    OMG xD


    Machs so:


    if(IsPlayerInAnyVehicle(playerid))
    {
    new Float:Velocity[3];
    GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity[0], Velocity[1], Velocity[2]);
    new Float:geschwindigkeit = floatsqroot(Velocity[0]*Velocity[0] + Velocity[1]*Velocity[1] + Velocity[2]*Velocity[2]) * 100;

    if(geschwindigkeit > 100 && geschwindigkeit1 < 5)
    {
    //bla
    }

    new Float:Velocity1[3];
    GetVehicleVelocity(GetPlayerVehicleID(playerid), Velocity1[0], Velocity1[1], Velocity1[2]);
    new Float:geschwindigkeit1 = floatsqroot(Velocity1[0]*Velocity1[0] + Velocity1[1]*Velocity1[1] + Velocity1[2]*Velocity1[2]) * 100;
    }


    Das sollte eig gehen ^^ bin mir aber nit sicher, habs so grad hingestrudelt. Das musst du halt in nen Timer machen, am besten von einer halben sekunde, wenn das der server aushält :D

    davon is alles geschwindigkeit :D damit is z.B. gemeint, mit welcher geschwindigkeit mach sich in richtung x, y und z bewegt. Das musst du nur zusammenrechnen, un wenn das schnell auf 0 sinkt, oda fast 0, dann machst du halt setplayerdrunklevel oda wie das heißt^^


    new Float:geschwindigkeit = floatsqroot(X*X + Y*Y + Z*Z) ;


    Damit rechnest du z.B. die geschwindigkeit. Aber so würdest du bei sagen wir ma vollspeed mit infi nur ca 3 rauskommen, musst du noch höher rechnen, damit du damit was anfangen kannst ;=


    MFG, Robdeflop®

    Hi


    Das liegt daran dass das was du benutzt für CMD´s is, wo man mehrere sachen eingibt. z.B. SetCarColor Farbe1 Farbe2. Der trennt immer beim leerzeichen. Du brauchst ne funktion die das nicht macht. So eine ist z.B. bei nem PM cmd dabei. Hier is aber auch eine, die du verwenden kannst:


    stock bigstrtok(const string[], &idx)
    {
    new length = strlen(string);
    while ((idx < length) && (string[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = string[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    return result;
    }


    Verwendung:
    new Nachricht[200];
    Nachricht = bigstrtok(cmdtext, idx);



    MFG, Robdeflop®
    MFG, Robdeflop®

    IRC? xD war doch iwas bei minecraft ^^


    Aber wenn du es nit savest musst du es nach jedem server restart wieder neu machen xD Außer du machst einen standardtext, der nachm GMX in nen array gesaved wird, den du dann ändern kannst. Damit nit nix kommt wenn man connected.


    MFG, Robdeflop®

    Hi


    Du musst das nur in ne datei saven, un dann beim onplayerconnect abrufen :) Ich denke du hast sicherlich ein register sys in deinem script drinne, von da kannst ja abguggn wie das mit den dateien gehnt. Bei dem CMD isses glaube ich so, dass du strtok nit verwenden kannst, da die einzelnen von einem leerzeichen getrennt werden. Kann mich aber auch irren!!! Also brauchst du ne andere funktion, bei PM cmd´s is die meistens dabei ^^


    MFG, Robdeflop®


    EDIT: Achja, hier is z.B. so eine Funktion^^


    stock bigstrtok(const string[], &idx)
    {
    new length = strlen(string);
    while ((idx < length) && (string[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[128];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = string[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    return result;
    }


    Bei dem normalen Strtok sieht die while schleife so aus:
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))


    Da ist noch das drinne "(string[index] > ' ')". Das das was in den ' steht, zeigt von was der cmd getrennt wird.
    ^^ Nur damit du siehst wie das funzt :D

    Hi


    if(strcmp(HouseInfo[i][hNameVonAnderem], plname, true) == 0)
    {
    //hier den kram wenn das überein stimmt
    }
    else
    {
    //hier den kram wenn es nit stimmt :D
    }


    MFG, Robdeflop®

    Indem du den Spieler in ein Team steckst xD Aber noch vor OnPlayerSpawn.


    Bei dir dann z.B. "Team[playerid] = TEAM_BLA;" Iwo z.B. bei OnPlayerConnect oda OnPlayerClassResponse oda so.


    MFG, Robdeflop®

    Hi


    Meinst du vielleicht den Airport in LS? Das würde eher zutreffen xD
    Ich denke das is so weil du dem spieler keinem Team zugewiesen hast. Deswegen werden die if fragen nit erfüllt und der server setzt einen automatisch bei den Airport :)


    MFG, Robdeflop®

    Also waffen wegnehmen mit ResetPlayerWeapons :D Ob man gangzones abfragen kann, kp


    Ansonsten muss halt z.B. ne Funktion erstellen, mitder du das abfragen kannst :D
    z.B. hier sowas:


    public Gebiet(playerid, Float:FX, Float:fX, Float:FY, Float:fY)
    {
    new Float:gebietX, Float:gebietY, Float:unused;
    GetPlayerPos(playerid, gebietX, gebietY, unused);

    if(gebietX > fX && gebietX < FX && gebietY > fY && gebietY < FY)
    {
    return 1;
    }
    return 0;
    }


    Das sollte so gehen :D

    Ganz oben im script unter den defines, am besten bei die anderen forwards:


    forward ZoneAbfrage();


    unter ongamemodeinit:


    SetTimer("ZoneAbfrage", 1000, 1);


    Das is ein ein-sekunden timer


    Ganz unten im script


    public ZoneAbfrage()
    {
    for(new i; i<MAX_PLAYERS;i++)
    {
    dann hier den kram rein mit den abfragen, ob der typ in der zone is :D anstatt playerid musst du i benutzen ;)
    }
    return 1;
    }


    Sollte gehen xD


    MFG, Robdeflop®

    Ja aber nur wenn playerid definiert is xD Welche funktion denn?


    MFG, Robdelfop®


    EDIT: Wenn du das in die Funktio public IsPlayerAtEnterExit(playerid) reinmachen willst, und playerid auch richtig ausgegeben wird, dann kannst du die schleife weglassen un das i durch playerid verwenden :)


    MFG, Robdeflop®

    Zitat

    Also ist im Wike-Beispiel das Format nur da,weil die Model/Car-ID ausgelesen wird ?


    Ja :D


    Zitat

    Ich möchte zB einfach schreiben:


    Los Santos Police Department
    Betreten: /enter
    (Das mit dem Zeilenumbruch ist klar).


    Dafür brauchst du keinen format ;)


    Zitat

    Wofür steht das ? Muss ich bei meinem System auch so etwas einbauen. Ich bin am Punkt X und Meldung Y soll erscheinen.


    for(new i = 0; i<MAX_PLAYERS; i++)


    Das ist eine schleife. MAX_PLAYERS is nix anderes als einen, wert, ich glaub der is 500, also die maximale anzahl an spielern die auf einem server gleichzeitig sein kann. Mit so einer schleife kann man alle playerid´s von 0 bis 499(?) durchlaufen lassen xD Ich hoff ich hab mich klar ausgedrückt :)


    MFG, Robdeflop®