Beiträge von Crank93

    hi, beide errors werden durch die semikolons am ende der zeile verursacht, die da aber nicht hingehören.
    deathrunners beispiel solte funktionieren.

    hm, also ich spiele selbst ab und zu gerne mal bei nsg und kann mir eigentlich nicht vorstellen, dass doerfler scripts klaut. sollte das allerdings stimmen, fänd ich das ziemlich besch....weil es eigentlich immer hieß, bei nsg ist alles selfmade.
    sollte das nicht so sein, sollte dörfler das zeug wenigstens in den credits erwähnen.
    :whistling:

    in dem fall musst du für jeden spieler ein eigenes textdraw erstellen:


    oben:


    new Text:Draw[MAX_PLAYERS];


    dann unter OnGameModeInit()


    for(new i=0; i<MAX_PLAYERS; i++)
    {
    Draw[i]=TextDrawCreate(10.0, 100.0, "blabla");
    usw...
    }


    und wenn dann jemand in ein fahrzeug steigt, zeigst du ihm sein spezielles Textdraw mit:


    TextDrawShowForPlayer(playerid, Draw[playerid]);


    damit kannste dann auch für jedes Draw den String einzeln ändern, indem du so drauf zugreifst:


    TextDrawSetString(Draw[playerid], "bla");

    hm, also verschiedene pickupids kannst du aufjedenfall nicht in einer normale variable speichern, da ist immer nur platz für einen int-wert.
    du kannst für alle "health"-pickups ein array erstellen z.B.
    new health[10];


    und dann



    health[0] = CreatePickup(1277, 23, -1299.9934082031, 580.99359130859, 55.549407958984, -1);
    health[1]=...usw


    das sollte dann funktionieren.


    health = CreatePickup(1277, 23, -1299.9934082031, 580.99359130859, 55.549407958984, -1);


    so, damit ist das pickup in allen vworlds sichtbar.


    //achja, du kannst in einer variable (health) auch nur eine pickupid speichern, zweimal eine id zuweisen funktioniert nicht.

    dcmd_news(playerid,params[])
    {
    new sNews[128];
    if (gTeam[playerid] == TEAM_REPORTER)
    {
    if(sscanf(params, "s",sNews))
    {
    return SendClientMessage(playerid,rot,"BENUTZUNG: /news [text]");
    }
    else
    {
    SendClientMessageToAll(orange,sNews);
    }
    }
    else
    {
    SendClientMessage(playerid,rot,"Du bist kein Mitglied der Reporter.");
    }
    return 1;
    }


    sollte funktionieren :thumbup:

    hi, also mit dem /flip command soll man sein fahrzeug umdrehen können, wenns auf dem Kopf liegt.
    wie das geht, weiß ich, aber meine Frage: wie lässt sich herausfinden, ob das auto überhaupt verkehrtherum liegt?

    also, ich hab den bfx object streamer und möchte nun die ganzen "CreateObject" funktionen in b_CreateObject umschreiben. das gab ich auch hinbelommen mit der "Replace" funktion in pawno.
    meine frage: die b_CreateObject funktion hat ja noch mehr parameter als das das normale CreateObject (vitualworld usw.) wie kann ich diese parameter hinzufügen? man wird doch wohl kaum jede zeile umschreiben müssen, oder?

    so, also danke erstmal, duch das mit dem debug hab ich jetzt rausgefunden, dass die funktion nicht vollständig ausgeführt wird.
    die ursache dafür ist das hier:


    grund[0] ? grund : "<kein Grund>"


    ich hab das jetzt einfach durch


    grund


    ersetzt, und die funktion wird tatsächlich vollständig ausgeführt.
    allerdings wird als grund jetzt komischerweise die IP des spielers angezeigt. (???)
    das deutet doch darauf hin, dass bei SetTimerEx der stringparameter ("Login fehlgeschlagen") nicht übergeben wird und der parameter "grund[]" jetzt die IP des Spielers enthält.
    woran kann das liegen und wie kann man das beheben?

    ich glaub zwar kaum, dass es was damit zu tun hat, aber naja hier :)


    public autokickplayer(pID, grund[])
    {
    KillTimer(logintimer[pID]);
    new string[100];
    new File:ban=fopen(BanLog, io_append);
    getdate(Jahr, Monat, Tag);
    gettime(Stunde, Minute, Sekunde);
    format(string, sizeof(string2), "[%d/%d/%d][%d:%d:%d] [Kick] Name: %s, IP: %s, Admin: Server, Grund: %s\r\n", Tag, Monat, Jahr, Stunde, Minute, Sekunde, gPlayerInfo[pID][PLAYER_NAME], gPlayerInfo[pID][PLAYER_IP], grund[0] ? grund : "<kein Grund>");
    fwrite(ban, string);
    fclose(ban);
    format(string, sizeof(string), "\"%s\" wurde vom Server gekickt. (Grund: %s)", gPlayerInfo[pID][PLAYER_NAME], grund[0] ? grund : "-");
    SendClientMessageToAll(COLOR_YELLOW, string);
    Kick(pID);
    return 1;
    }

    hi, also unter OnPlayerConnect hab ich das:


    SetTimerEx("autokickplayer", 30000, 0, "is", playerid, "Login fehlgeschlagen");


    also der spieler soll mit dieser funktion nach 30 sek gekickt werden, wenn er nicht eingeloggt ist.
    die funktion hat als parameter die spielerid und den grund für den kick.
    Problem: die funktion wird einfach nicht aufgerufen.


    achja, an der funktion selbst liegts nicht, an anderen stellen im script funktioniert sie einwandfrei