Beiträge von DMA

    new Float:CoordList[3] = { { ... }, .. };
    /* ... */
    x = random(3);
    /* ... */"%0.2f %0.2f %0.2f", Coord... /* ... */
    Sowas? :>

    Ein kleines Tor System.
    Hab ich nie getestet und gerade eben erst in 5 Minuten geschrieben.
    Hf
    /* (c) by DMA */
    #define MAX_TOR 120
    enum TorStateEnum
    {
    SELECT_STATE,
    IS_TOR_TEAM,
    OBJECT_ID
    };
    enum TorPosID
    {
    Float:Tcx, Float:Tcy, Float:Tcz,
    Float:Tax, Float:Tay, Float:Taz,
    Float:Tmx, Float:Tmy, Float:Tmz
    };
    /* TOR STATES */
    #define NONE -1
    #define TOR_FO_OPEN 1
    #define TOR_FO_CLOSE 0
    new Float:TorPos[MAX_TOR][TorPosID], TorModel[MAX_TOR], TorState[MAX_TOR][TorStateEnum], maxtor, b_mt, obj_id;
    /* Use: Create New Gate (Object) */
    stock AddTor(modelid, Float:x, Float:y, Float:z, Float:ax, Float:ay, Float:az, Float:mx, Float:my, Float:mz)
    {
    if(modelid == 0)
    {
    return NONE;
    };
    obj_id = CreateObject(modelid, x, y, z, ax, ay, az);
    TorPos[maxtor][Tcx] = x; TorPos[maxtor][Tcy] = y; TorPos[maxtor][Tcz] = z;
    TorPos[maxtor][Tax] = ax; TorPos[maxtor][Tay] = ay; TorPos[maxtor][Taz] = az;
    TorPos[maxtor][Tmx] = mx, TorPos[maxtor][Tmy] = my; TorPos[maxtor][Tmz] = mz;
    TorModel[maxtor] = modelid;
    TorState[maxtor][SELECT_STATE] = TOR_FO_CLOSE;
    TorState[maxtor][IS_TOR_TEAM] = NONE;
    TorState[maxtor][OBJECT_ID] = obj_id;
    b_mt = maxtor;
    maxtor++;
    return b_mt;
    }
    /* Use: Set Gate Team */
    stock SetTorTeam(torid = NONE, teamid = NONE)
    {
    if(teamid == NONE)
    return NONE;
    if(torid == NONE)
    return NONE;
    TorState[torid][IS_TOR_TEAM] = teamid;
    }
    /* Use: OpenOrCloseGate */
    stock UseTor(playerid, torid)
    {
    if(TorState[torid][SELECT_STATE] == TOR_FO_CLOSE)
    {
    MoveObject(TorState[torid][OBJECT_ID], TorPos[torid][Tmx], TorPos[torid][Tmy], TorPos[torid][Tmz], 1.0);
    }
    else if(TorState[torid][SELECT_STATE] == TOR_FO_OPEN)
    {
    MoveObject(TorState[torid][OBJECT_ID], TorPos[torid][Tcx], TorPos[torid][Tcy], TorPos[torid][Tcz], 1.0);
    }
    }

    Mann könnte auch anders machen.
    stock GetStringEnd(string[])
    {
    for(new i = 0; i < sizeof(string); i++)
    {
    if(string[i] == '\0')
    strdel(string, i, strlen(string));
    }
    }


    Ich habs einfach mal geschrieben und nicht getestet.
    Mann muss nähmlich wissen:
    Ein String besteht aus vielen kleinen char's.
    z.b. char* test = "Hallo"
    Hallo <- 0-5 Hallo und 6 = \0
    Ein String ist ja auch nur eine Zahlenfolge und der Computer muss ja auch irgendwann wissen wann es zuende ist ;)
    Vllt erspart man sich damit ein paar Zeilen code.

    Denk doch mal selber nach.
    Es wird zu 100% nicht an deinem Script liegen.
    Das Problem könnten die falschen Daten für den Server sein, oder das Ports intern nicht freigeschalten sind.
    Und das wird auch das Problem sein, die Ports sind Intern nicht geöffnet.
    Zumal, es bei jeglicher anderen Person, der ich die Aufgabe gestellt habe,
    und per Zufall war es bei einer Person , die ihre Ports intern nicht geöffnet hatte, dieser Fehler.
    Lösung: VNC an, Software Firewall Ports freigeben lassen, und es ging.


    Aber erstmal meckern, bevor man sich vllt mal bemüht, die Lösung zu finden.

    Ich würde nie einen SA:MP Server auf einem VServer laufne lassen.
    Das ist einfach "unhöflich", da man anderen Leuten die Performence raubt.
    Außerdem ist die Performence auf einem Root besser, daher miet / kauf dir lieber einen Root ab > 15€

    Zitat

    Du wirst auch niemals mit deiner "echten IP" auf deinen eigenen Server können...


    Oo, wo ist da der Sinn?
    IP ist IP.
    Ich kann genausogut über 127.0.0.1 (localhost, Netzwerk simulation), meine internal IP oder meine external IP auf meinen Homeserver connecten.
    Erkläre mir, wo dein Sinn besteht.
    Vllt sollte man sich mit dem Thema erstmal aus einander Setzen, bevor man postet ;)

    Variable "tmp" existiert schon als global (new tmp, public tmp).
    Nenne in den besagten zeilen die Variable um und initalisiere sie auch als eine andere.

    Füge in den Head deines Scripties dies ein
    forward SetupPlayerForClassSelection(playerid, classid);
    forward GameModeExitFunc();
    Dies musst du evntl. noch anpassen.
    Und zeig uns mal was auf Line 694 steht (+ - 10 Zeilen)

    static gTeam[MAX_PLAYERS];


    #define TEAM_ZIVIL 0
    #define TEAM_POLICE 1


    public OnPlayerConnect(playerid)
    {
    gTeam[playerid] = TEAM_ZIVIL;
    return 1;
    }


    public OnRconCommand(cmd[])
    {
    if(!strcmp(cmd, "police", true, 7))
    {
    new act = strval(cmd[8]);
    if(cmd != -1 && cmd < MAX_PLAYERS && IsPlayerConnected(act))
    {
    SendRconCommand("echo Player Police");
    gTeam[act] = TEAM_POLICE;
    SendClientMessage(playerid, 0xFF6900AA, "Your new Team is Police!");
    }
    return 1;
    }


    /*
    gTeam[playerid] = Team von Player
    TEAM_POLICE = Police
    if(gTeam[playerid] == TEAM_POLICE) { << Abfrage
    */


    Nie getestet und im Halbschlaf geschrieben.
    hf

    Bei "ANTI".
    Ich werde noch ein Checksystem einbaun was 0.xyz HP abzieht und schaut ob der Player sich diese innerhab von 10ms wieder"holt".