Beiträge von DMA

    public wantedz() {
    for(new playerid = 0; playerid < GetMaxPlayers(); playerid++) {
    if(WantedLevel[q] >= 1) {
    for(new playerid2=0; playerid2 < GetMaxPlayers(); playerid2++)
    SetPlayerMarkerForPlayer(playerid2,playerid,0xFF0000FF);
    }
    }//der mitm wanted is ein "redmarker"
    }
    Nun sollte es richtig gehen.


    //Einstein: Danke DMA hatte da was in der schnelle übersehen

    Also hier ein Beispiel:
    GetLine(xfile[], line) {
    new File:fstream = fopen(xfile, io_read), result[1024];
    while(fread(fstream, result, sizeof result)) {
    line--;
    if(line == 0)
    break;
    }
    fclose(fstream);
    if(line == 0)
    return result;
    result = "";
    return result;
    }
    public OnPlayerCommandText(playerid, cmdtext[]) {
    if(!strcmp(cmdtext, "/coplist")) {
    SendClientMessage(playerid, 0xFF6900AA, GetLine("coplist.txt", 1));
    return 1;
    }
    return 0;
    }

    Warst dud as im Offiziellen Forum? *roll* :>
    Oh in der Tat. Gleicher Title, gleiche IP z0mfg.
    Aber Deutsch scheinst du ja genauso wenig zu beherrschen wie Englisch.


    ---
    Im Offiziellen Forum gibts massig solcher Scripts, einfach mal umschauen.

    GetLine(xfile[], line) {
    new File:fstream = fopen(xfile, io_read), result[1024];
    while(fread(fstream, result, sizeof result)) {
    line--;
    if(line == 0)
    break;
    }
    fclose(fstream);
    if(line == 0)
    return result;
    result = "";
    return result;
    }
    Selber gemacht ist immer besser.

    Schritt 1: Leeres Gamemode erstellen
    Schritt 2: Alle Filterscripte aus der Server.cfg löschen
    Schritt 3: In die Server.cfg das Leere gamemode eintragen
    Schritt 4: Server starten
    Schritt 5: Mit dem Server verbinden
    Schritt 6: Mit einem relativ gutem Deutsch hier Posten was kommt.


    Falls bei Schritt 5 alles inordnung sein (Also ihr seht irgendwo in LV das Kaufhaus) , dann liegts an Godfather *urgh*

    Es kommt drauf an wieviel Speicherplatz die Objecte einnehmen.
    Außerdem werden 100% nicht alle Objecte von denn 600 angezeigt.
    Soweit ich weis ist bei R3 ein Schutzmechanismus drin.

    Also werden irgendwelche Plugins genutzt?
    Alá MySQL.so/dll o.ä.?
    Oder ist eine Include drin wie <a_sampmysql> oder <a_irc> welche solch ein Plugin voraussetzten.

    Soll dir wer anders machen.
    Ich geh davon aus das du vllt auch dir eine eigene Lösung überlgst und das nur als denkanstoß nimmst.

    Neue version:
    static Float:cp_coords[][3] = { {XCOORDS, YCOORDS, ZCOORDS},
    ... };
    new statePlayerCP[MAX_PLAYERS], bool:isPlayerStreamCP[MAX_PLAYERS], bool:incp[MAX_PLAYERS], Float:cpDist[MAX_PLAYERS];
    #define MAX_DISTANCE_BETWEEN_CPS 20.0
    #define MAX_SIZE_CP 5.0
    forward GlobalTimer();
    stock Float:GetDistance(Float:x, Float:xx, Float:y, Float:yy, Float:z, Float:zz)
    return floatsqroot(floatpower(floatabs(x - xx), 2) + floatpower(floatabs(y - yy), 2) + floatpower(floatabs(z - zz), 2));
    public OnGameModeInit() {
    SetTimer("GlobalTimer", 1000, 1);
    return 1;
    }
    public GlobalTimer() {
    new Float:dist = MAX_DISTANCE_BETWEEN_CPS, Float:tmpdist, Float:each[3];
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(isPlayerStreamCP[i] == false) {
    GetPlayerPos(i, each[0], each[1], each[2]);
    statePlayerCP[i] = -1;
    for(new j = 0; j < sizeof cp_coords; j++) {
    tmpdist = GetDistance(cp_coords[j][0], each[0], cp_coords[j][1], each[1], cp_coords[j][2], each[2]);
    if(tmpdist < dist) {
    statePlayerCP[i] = j;
    dist = tmpdist;
    }
    }
    if(statePlayerCP[i] != -1) {
    isPlayerStreamCP[i] = true;
    cpDist[i] = dist;
    SetPlayerCheckpoint(i, cp_coords[statePlayerCP[i]][0], cp_coords[statePlayerCP[i]][1], cp_coords[statePlayerCP[i]][2], MAX_SIZE_CP);
    }
    } else if(isPlayerStreamCP[i] == true && incp[i] == false) {
    GetPlayerPos(i, each[0], each[1], each[2]);
    if(cpDist[i] > GetDistance(cp_coords[statePlayerCP[i]][0], each[0], cp_coords[statePlayerCP[i]][1], each[1], cp_coords[statePlayerCP[i]][2], each[2])) {
    DisablePlayerCheckpoint(i);
    isPlayerStreamCP[i] = false;
    }
    }
    }
    }
    public OnPlayerEnterCheckpoint(playerid) {
    switch(statePlayerCP[playerid]) {
    case 0: {
    /* tu was z.b. das: */
    SendClientMessage(playerid, 0xFF6900AA, "CP 1!");
    } case 1: {
    SendClientMessage(playerid, 0xFF0000AA, "CP 2!");
    }
    /* ... */
    }
    incp[playerid] = true;
    return 1;
    }
    public OnPlayerLeaveCheckpoint(playerid) {
    incp[playerid] = false;
    return 1;
    }
    Sollte das Blinken entfernen.

    static Float:cp_coords[][3] = { {XCOORDS, YCOORDS, ZCOORDS},
    ... };
    new statePlayerCP[MAX_PLAYERS], bool:isPlayerStreamCP[MAX_PLAYERS], bool:incp[MAX_PLAYERS];
    #define MAX_DISTANCE_BETWEEN_CPS 20.0
    #define MAX_SIZE_CP 5.0
    forward GlobalTimer();
    stock Float:GetDistance(Float:x, Float:xx, Float:y, Float:yy, Float:z, Float:zz)
    return floatsqroot(floatpower(floatabs(x - xx), 2) + floatpower(floatabs(y - yy), 2) + floatpower(floatabs(z - zz), 2));
    public OnGameModeInit() {
    SetTimer("GlobalTimer", 1000, 1);
    return 1;
    }
    public GlobalTimer() {
    new Float:dist = MAX_DISTANCE_BETWEEN_CPS, Float:tmpdist, Float:each[3];
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(isPlayerStreamCP[i] == false) {
    GetPlayerPos(i, each[0], each[1], each[2]);
    statePlayerCP[i] = -1;
    for(new j = 0; j < sizeof cp_coords; j++) {
    tmpdist = GetDistance(cp_coords[j][0], each[0], cp_coords[j][1], each[1], cp_coords[j][2], each[2]);
    if(tmpdist < dist) {
    statePlayerCP[i] = j;
    dist = tmpdist;
    }
    }
    if(statePlayerCP[i] != -1) {
    isPlayerStreamCP[i] = true;
    SetPlayerCheckpoint(i, cp_coords[statePlayerCP[i]][0], cp_coords[statePlayerCP[i]][1], cp_coords[statePlayerCP[i]][2], MAX_SIZE_CP);
    }
    } else if(isPlayerStreamCP[i] == true && incp[i] == false) {
    DisablePlayerCheckpoint(i);
    isPlayerStreamCP[i] = false;
    }
    }
    }
    public OnPlayerEnterCheckpoint(playerid) {
    switch(statePlayerCP[playerid]) {
    case 0: {
    /* tu was z.b. das: */
    SendClientMessage(playerid, 0xFF6900AA, "CP 1!");
    } case 1: {
    SendClientMessage(playerid, 0xFF0000AA, "CP 2!");
    }
    /* ... */
    }
    incp[playerid] = true;
    return 1;
    }
    public OnPlayerLeaveCheckpoint(playerid) {
    incp[playerid] = false;
    return 1;
    }


    Ist aus dem Kopf geschrieben, könnten paar fehler sein, sollte aber sonst eigendlich funktionieren.

    Scripten muss man natürlich auch können.
    public OnPlayerText(playerid, text[]) {
    convert2(text, '*');
    return 1;
    }