Beiträge von Kaliber

    Wenn du den Timer unter OnGameModeInit startest, ist das schonmal richtig :)


    60000 ist falsch..ersetze das mal durch 1000*60*15


    Und dann schreibe das mal so:


    forward WantedLoss();public WantedLoss() {
    for(new i,tmp[32]; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !WantedLevel[i]) continue;
    WantedLevel[i]--,SetPlayerWantedLevel(i,WantedLevel[i]);
    format(tmp,sizeof(tmp), "Aktuelles Wantedlevel: %i",WantedLevel[i]);
    SendClientMessage(i, COLOR_GREEN,tmp);
    }
    return 1;
    }


    Damit würde jeder Spieler auf dem Server alle 15min 1 Wanted verlieren, solange er auch eins hat :)


    Nachteil
    Sagen wir mal, der Server startet um 14:00uhr...so und dann bekommt ein Spieler ein Wanted um 14:14...dann wird er um 14:15 1 Wanted abgezogen bekommen.

    Nachteil
    Wenn du das nicht haben möchtest, dann musst es spieler orientiert machen und zwar so:

    Nachteil
    new bool:s_Timer[MAX_PLAYERS char]; //Oben im Skript

    Nachteil
    //Unter OnPlayerConnect
    s_Timer{playerid}=false;

    Nachteil
    //in deinem Wantedbefehl
    if(!s_Timer{playerid}) s_Timer{playerid}=true,SetTimerEx("@w_loss",1000*60*15,0,"i",playerid);

    Nachteil
    //Außerhalb einer Funktion / Callbacks
    @w_loss(i);@w_loss(i) {
    if(!IsPlayerConnected(i) || WantedLevel[i] <= 0) return 0;
    new tmp[32];
    WantedLevel[i]--,SetPlayerWantedLevel(i,WantedLevel[i]);
    format(tmp,sizeof(tmp), "Aktuelles Wantedlevel: %i",WantedLevel[i]);
    SendClientMessage(i, COLOR_GREEN,tmp);
    return (WantedLevel[i]) ? SetTimerEx("@w_loss",1000*60*15,0,"i",i) : 0;
    }


    mfg. :thumbup:


    //Edit: Ups..hatte noch playerid da stehen...

    Das sollte ohne Probleme gehen, solange du AddStaticVehicle/Ex nutzt ^^


    PS: Wenn du nicht einsteigen kannst o.ä. liegt es evtl an deinem Fahrzeugsystem?!


    mfg. :thumbup:

    Ja das ist ein Bug.


    Ich habe gerade mit dem Entwickler von dem Plugin geschrieben, dass war seine Antwort:


    Zitat von Y_LESS

    Honestly, I suspect the PHP version is wrong! Mine uses the reference implementation from the original authors, PHP decided to write their own, with bugs I have already reported to them and had openly dismissed. I wouldn't trust PHP's version as far as I can throw the servers it is hosted on.


    Normally, claiming that a hugely popular language is wrong over your personal project is extremely arrogant, and usually wrong, but PHP is such a mess to begin with that in this case it is entirely plausible!


    Tut mir Leid, da kann man also gerade nichts machen :/


    mfg. :thumbup:

    Also, du musst auch die richtige Include für das Plugin verwenden...sprich tue die Include mal vom Streamer auch in Pawno/Includes und compile dein Skript neu ;)


    Und das mit dem MySQL du nutzt noch die alten Funktionen, also musst du auch entsprechende Plugins verwenden..das wäre R5 / R6..


    mfg. :thumbup:

    Streamer Plugin v1.1 by Incognito loaded


    Hahaha :D Aus welcher Mülltonne hast du denn diese Version vom Plugin gefischt ^^


    v1.1 ist total veraltet, inzwischen ist die v2.7.3 schon draußen (Download-Thread) :D


    Also, aktualisiere mal dein Plugin und pass das an ;)


    und die MySQL Fehler kommen daher, dass das das falsche MySQL-Plugin ist, also du brauchst ein anderes ^^


    mfg. :thumbup:

    Wie erstelle ich einen Pickup in einem Interior?


    Einfach ganz normal ein Pickup erstellen, das wird in allen Interiors angezeigt.


    Falls du ein Pickup nur in einem bestimmten Interior anzeigen lassen willst, musst du einen streamer z.B. Incognitos verwenden und dort die entsprechenden Parameter ausfüllen für CreateDynamicPickup.


    mfg. :thumbup:

    Naja...z.B. so:


    #define MAX_EVENT_CARS 5
    new g_vehicles[MAX_EVENT_CARS],g_data[MAX_EVENT_CARS]; //Oben ins Skript


    //Unter OnGameModeInit
    g_vehicles[0] = CreateVehicle(...);
    //usw


    //Dann im Command, der die Leute in die Autos setzen soll:
    for(new i,idx; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    PutPlayerInVehicle(i,g_vehicles[idx],0),TogglePlayerControllable(i,0),g_data[idx]=i,idx++;
    if(idx ==MAX_EVENT_CARS) break;
    }


    //Dann der Command zum starten:
    @s_event(5);


    //Dann irgendwo im Skirpt (in keinem Callback / Funktion)
    @s_event(x);@s_event(x) {
    if(!x) {
    for(new i; i<MAX_EVENT_CARS; i++) if(IsPlayerConnected(g_data[i])) TogglePlayerControllable(g_data[i],1),GameTextForPlayer(g_data[i],"~g~Gogogo!",1000,5);
    return 0;
    }
    for(new i,tmp[32]; i<MAX_EVENT_CARS; i++) {
    if(!IsPlayerConnected(g_data[i])) continue;
    format(tmp,32,"Event startet in %dsek!",x),GameTextForPlayer(g_data[i],tmp,1000,5);
    }
    return SetTimerEx("@s_event",1000,0,"i",x--);
    }


    mfg. :thumbup:

    Schreibe es mal so:


    if(!strcmp("/stats", cmdtext, true)) {
    new string[256],ftext[20];
    switch(sSpieler[playerid][Fraktion]) {
    case 0: ftext="Zivilist";
    case 1: ftext="LPSD";
    case 2: ftext="FBI";
    case 3: ftext="Bundeswehr";
    case 4: ftext="Notdienst";
    }
    format(string,sizeof(string),"{00ff6e}[Account]\n{fff4eb}Level: %d\nAdmin Level: %d\nID: %d\n\n{00ff6e}[Finanzen]\n{fff4eb}Geld: %d",sSpieler[playerid][Level],sSpieler[playerid][Adminlevel],playerid,GetPlayerMoney(playerid));
    format(string,sizeof(string),"%s{00ff6e}[Berufsleben]\n{fff4eb}Fraktion: %s",string,ftext);
    return ShowPlayerDialog(playerid,STATS,DIALOG_STYLE_MSGBOX,"Deine Statistiken",string,"Fertig","");
    }


    mfg. :thumbup:

    Schreibe es so:


    COMMAND:stats(playerid, params[])
    {
    if(IsPlayerAFK[playerid]) return SendLanguageMessage(playerid, C_RED, "»WARNUNG« Du bist AFK. Du kannst keine Aktion durchführen.", "»WARNING« You are AFK. You can't take any action.");
    new ID, stringDE[256], stringEN[256];
    sscanf(params, "U(-1)", ID);
    if(ID == -1) ID = playerid;
    if(!IsPlayerConnected(ID)) return SendLanguageMessage(playerid, C_RED, "»WARNUNG« Dieser Spieler ist nicht online!", "»WARNING« This player is not online!");
    new pName[MAX_PLAYER_NAME],
    pAdminLevel = pInfo[ID][AdminLevel],
    pMoney = pInfo[ID][Money] + pInfo[ID][Bank],
    pScore = pInfo[ID][Score],
    pKills = pInfo[ID][Kills],
    pDeaths = pInfo[ID][Deaths],
    Float:pRatio = Float:pInfo[ID][Kills] / Float:pInfo[ID][Deaths];
    GetPlayerName(ID, pName, sizeof(pName));
    format(stringDE, sizeof(stringDE), ""#C_WHITE_E"Name: "#C_LIGHT_BLUE_E"%s"#C_WHITE_E"\nRang: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nGeld: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nScore: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nKills: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nTode: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nRatio: "#C_LIGHT_BLUE_E"%0.2f", pName, pAdminLevel, pMoney, pScore, pKills, pDeaths, pRatio);
    format(stringEN, sizeof(stringEN), ""#C_WHITE_E"Name: "#C_LIGHT_BLUE_E"%s"#C_WHITE_E"\nRank: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nMoney: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nScore: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nKills: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nDeaths: "#C_LIGHT_BLUE_E"%d"#C_WHITE_E"\nRatio: "#C_LIGHT_BLUE_E"%0.2f", pName, pAdminLevel, pMoney, pScore, pKills, pDeaths, pRatio);
    ShowLanguageDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Spielerstatistik", "Player Statistics", stringDE, stringEN, "OK", "OK", "", "");
    return 1;
    }


    mfg. :thumbup: