Beiträge von Kaliber

    Du musst es umdrehen, sprich so schreiben:


    ocmd:makeleader(playerid,params[])
    {
    new pID,fID,string[128],buffer[32];
    if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,Rot,"Kein Admin");
    if(sscanf(params,"ui",pID,fID)) return SCM(playerid,Blau,"Benutze:/makeleader [NAME/ID] [Frak]");
    switch(fID) {
    case 0: format(buffer,32,"Zivi");
    case 1: format(buffer,32,frakname);
    case 2: format(buffer,32,frakname1);
    case 3: format(buffer,32,frakname2);
    case 4: format(buffer,32,frakname3);
    case 5: format(buffer,32,frakname4);
    }
    SetPVarInt(pID,"Fraktion",fID);
    SetPVarInt(pID,"Leader",fID);
    SaveAcc(pID);
    format(string,sizeof(string),"%s hat dich zum Leader der Fraktion %s ernnant",SpielerName(playerid),buffer);
    SCM(pID,hblau,string);
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion %s ernannt",SpielerName(pID),buffer);
    SCM(playerid,Orange,string);
    return 1;
    }


    mfg. :thumbup:

    Ich finde sowas unnötig wenn du 20-30 verschiedene Includes hier veröffentlichst es reicht 1 Mit Einstellungen das
    man dinge Deaktivieren kann, ich finde es auch eher nutzlos mit sovielen Includes


    Ehm...Ich habe zufällig nicht das alles gleich geschrieben, sondern erst mit der Zeit, deshalb erscheint es ja auch erst mit der Zeit...


    Aber alles in eine Include zu packen ist vielleicht auch nicht so gut...Keiner packt alles in eine Include :pinch:


    Dich zwingt ja niemand sie alle zu nutzen :whistling:


    Ein unnötiges Include, jeder kann doch Variablen setzen, das sollte nun auch nicht das Problem sein.


    Aha...Ansichtssache, zumal die Include ja nicht nur Variablen setzt :rolleyes:


    mfg. :thumbup:

    SetPlayerCheckpoint zeigt er nur einen an. bei SetPlayerMapIcon kannst du z.B. 5 Ziele gleichzeitig anzeigen lassen und der Spieler, der den Job ausführt, kann sich die Route selber planen ;)


    Achso meinst du das...Mhm, ich überlegs mir mal ;)


    Aber mach du mal. Ich drück dir die Daumen bei deinem Include. :)


    Danke ^^


    mfg. :thumbup:

    SetPlayerMapIcon(playerid, 0, Float:x, Float:y, Float:z, 0,0xFF0000FF, MAPICON_GLOBAL_CHECKPOINT);


    Per Timer X, Y, Z Koordinate des Spielers abfragen. Befindet der sich bei X, Y, Z (vom Checkpoint), dann hat er den Checkpoint berührt. Sehe da kein Problem. Außer die Größe des CP's halt ^^


    Und, nehm anstelle des SA-MP SetPlayerMapIcon einfach einen Streamer für...


    Das ist schon klar...nur wieso...man kann doch einfach SetPlayerCheckpoint nutzen...^^


    Sehe den Sinn dahinter einfach nicht :D

    Ich meinte mit SetJobSpawn eigentlich der Spawn nach dem Tot. Also wenn OnPlayerDeath abgefragt wird. Aber egal...


    Das ist ja so gemacht, schau mal auf den Code ;)


    Dann mach das doch in deiner Include, daß SetPlayerMapIcon (Marker plus Checkpoint) so abläuft, daß es für den Scripter, der deine INC nutzt, wie ein normaler Checkpoint ausschaut ^^. Machbar ist das, hab das selbst so ;)


    Naja ich dachte an MapIcon id 41 http://wiki.sa-mp.com/wiki/MapIcons oder was meinst du :huh:


    mfg. :thumbup:

    SetMapIcon mehrere CP's anzeigen lassen kann?


    Dir ist klar dass SetPlayerCheckpoint != SetPlayerMapIcon ist... :rolleyes:


    Aber es gibt so ein MapIcon das man setzten kann, ja...könnte man so machen, halte ich jedoch für weniger sinnvoll :D


    mfg. :thumbup:

    SetPlayerJobCheckpoint:
    für das streamen der Checkpoints nötig. Kann ja sein, das jemand Checkpoints während des Jobs auch für andere Dinge verwendet, wie z.B. Fastfood Stände...


    ? Dir ist bewusst, dass nur 1 Checkpoint angezeigt werden kann...also gleichzeitig ?!


    Kategoresieren deswegen, damit man schnelleren und leichteren Zugriff auf den Job hat (als Scripter).
    In der Jobbox könnten Infos wie z.B. nächste(r) Zielort(e), Name des Jobs, Wieviele Items (z.B. Pakete) hat man noch usw. usw.


    Ja, schon klar, aber diese Informationen sind ja sinnlos für die Include, kann man ja schön alles selbst in eine Variable schreiben, da man sowas eigentlich nicht mehr vereinfachen kann :D


    PS: Die neue Funktion ist drinnen...


    mfg. :thumbup:

    SetJobTyp(jobid, typid); // <-- jobid ist klar, typid siehe weiter unten


    SetJobTyp...ehm, das muss man doch nicht kategorisieren...ich meine es gäbe dazu noch 1000 weitere Möglichkeiten...


    SetPlayerJobCheckpoint(playerid, jobid, x, y, z);


    Verstehe ich nicht, was hat die jobid da zu suchen....


    ToggleJobBox(playerid, jobid);


    Naja, das könnte man zwar machen, aber man hat ja so gut wie keine Infos über den Job, was soll da alles drinnen stehen, ich meine der User soll ein paar Dinge ja auch noch machen :D


    SetPlayerJobSpawn(playerid, x, y, z, a, interior, world);


    Das ist eine gute Idee, würde aber allgemein es so machen:


    SetJobSpawn(jobid, x, y, z, a, interior, world);


    aus CreateJobCar(...) würde ich dann lieber CreateJobVehicle(...) machen!


    ehm...jo :D Mache ich auch mal ^^


    mfg. :thumbup:

    Müssen tut man halt nichts ;)
    Aber würde ich schon recht cool finden, da (gehe ich mal von aus) nicht alle ne Stadthalle haben werden ^^


    Habe deinen Vorschlag verwirklicht, schau mal bei den neuen Funktionen ;)


    @Rocky
    Danke ;)


    mfg. :thumbup:

    Ich habe bis jetzt nicht gesehen das irgendwie nen Job Icon bzw. nen Pickup erstellt wird
    Könntest ja noch einbauen das man nen pickup erstellen kann womit man denn mit ENTER in den Job kommt


    Mhm...achso, ja ich dachte man hat eine Stadthalle und wählt da einfach die Jobs aus :D


    Auf die Idee bin ich natürlich jetzt nicht gekommen, dass man die Jobs verteilt wie in einigen GF's :D


    Ist aber eine Gute Idee, mache ich mal rein, muss man ja nicht nutzen ^^


    mfg. :thumbup:

    Bei deinem Code tun mir die Augen weh, hier mal kürzer geschrieben, löst glaube ich nicht dein Problem, ist aber besser:


    public PayDay()
    {
    SyncTime();
    DollahScoreUpdate();
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(gPlayerLogged[i]) OnPlayerUpdate(i);
    PlayerInfo[i][pGesamtMinutes]++;
    PlayerInfo[i][pMinutesSinceLogin]++;
    PlayerInfo[i][pMinutesSinceAn]++;
    if(PlayerInfo[i][pPlayMinutes] <= 60)PlayerInfo[i][pPlayMinutes]++;
    else {
    PlayerInfo[i][pPlayMinutes] = 0;
    new string[128],account,interest,rent = 0,playername2[MAX_PLAYER_NAME],tmpintrate;
    if(M_Bot[i][PAFK] != 0) SendClientMessage(i, COLOR_LIGHTRED, "* Du hast kannst keinen PayDay bekommen, solange du AFK bist!");
    else {
    if(MoneyMessage[i]==1) {
    if(PlayerInfo[i][pJailed] == 0 && WantedLevel[i] >= 0) {
    SendClientMessage(i, COLOR_LIGHTRED, "Du konntest deine Schulden nicht Bezahlen und hast ein Wanted bekommen!");
    GivePlayerMoney(i, 1000);
    WantedLevel[i]++;
    }
    else if(PlayerInfo[i][pJailed] == 1) {
    SendClientMessage(i, COLOR_LIGHTRED, "Du bist in den Schulden und musst 3 Minuten länger sitzen!");
    PlayerInfo[i][pJailTime] += 180;
    GivePlayerMoney(i, 1000);
    }
    }
    GetPlayerName(i, playername2, sizeof(playername2));
    account = PlayerInfo[i][pAccount];
    new key = PlayerInfo[i][pPhousekey];
    if(key != 255) {
    rent = HouseInfo[key][hRent];
    if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0) rent = 0;
    else if(rent > GetPlayerMoney(i)) {
    PlayerInfo[i][pPhousekey] = 255;
    SendClientMessage(i, COLOR_WHITE, "Du wurdest aus der Wohnung geschmissen!");
    rent = 0;
    }
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
    }
    if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0){
    if(PlayerInfo[i][pDonateRank] > 0)tmpintrate = intrate+4;
    else mpintrate = intrate+2;
    }
    else {
    if(PlayerInfo[i][pDonateRank] > 0) tmpintrate = 3;
    else tmpintrate = 1;
    }
    if(PlayerInfo[i][pPbiskey] > 0) tmpintrate++;
    new fraktion = 0,checks;
    if(fraktion >= 0) {
    if(FraktionsKasse[fraktion] - PlayerInfo[i][pGehalt] < 0){
    checks = 0;
    GivePlayerMoney(i, checks);
    }
    else if(FraktionsKasse[fraktion] - PlayerInfo[i][pGehalt] >= 0){
    checks = PlayerInfo[i][pGehalt];
    GivePlayerMoney(i, checks);
    FraktionsKasse[fraktion] -= checks;
    }
    }
    else if(PlayerInfo[i][pJob] != 0 || PlayerInfo[i][pMember] == 0 || PlayerInfo[i][pLeader] == 0) checks = 500,GivePlayerMoney(i, checks);
    PlayerInfo[i][pAccount] -= Tax;
    if(PlayerInfo[i][pDonateRank] > 0) {
    new bonus = PlayerInfo[i][pPayCheck] / 2;
    PlayerInfo[i][pPayCheck] += bonus;
    }
    new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);
    ConsumingMoney[i] = 1;
    if(PlayerInfo[i][pAccount] > 0) PlayerInfo[i][pAccount] -= ebill,SBizzInfo[3][sbTill] += ebill/5;
    else ebill = 0;
    if(PlayerInfo[i][pMember] == 0 && PlayerInfo[i][pLeader] == 0) checks += 500;
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
    PlayerInfo[i][pExp]++;
    PlayerPlayMusic(i);
    PlayerInfo[i][pAccount] = account+interest;
    SendClientMessage(i, COLOR_GOLD, "|================| KONTOAUSZUG |================|");
    format(string, sizeof(string), " Gehalt: $%d Miete: -$%d Steuern: -$%d", checks, rent, Tax);
    SendClientMessage(i, COLOR_GRAD1, string);
    if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255) {
    format(string, sizeof(string), " Strom Kosten: -$%d", ebill);
    SendClientMessage(i, COLOR_GRAD1, string);
    }
    if(PlayerInfo[i][pHandyVer] == 1) {
    SendClientMessage(i,COLOR_GRAD2," Handyvertragskosten: -$100");
    GivePlayerMoney(i, -100);
    }
    format(string, sizeof(string), " Zinsen: $%d [0.%d Prozent]", interest,tmpintrate);
    SendClientMessage(i, COLOR_GRAD2, string);
    SendClientMessage(i, COLOR_GOLD, "|=================||============||==============|");
    format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[i][pAccount]);
    SendClientMessage(i, COLOR_GRAD5, string);
    format(string, sizeof(string), "~g~PayDay~y~!!!");
    GameTextForPlayer(i, string, 5000, 1);
    if(checks == 0 && FrakMember(i) && PlayerInfo[i][pJob] == 0) SendClientMessage(i,COLOR_LIGHTRED, "Da die Fraktionskasse leer ist bekommst du kein Gehalt!");
    rent = 0,PlayerInfo[i][pPayCheck] = 0,PlayerInfo[i][pConnectTime] += 1;
    if(WantedLevel[i] >= 1) {
    WantedLevel[i] --;
    new wlevel = GetPlayerWantedLevel(i),tmp[64];
    format(tmp,sizeof(tmp), "Aktuelles Wantedlevel: %i", wlevel-1);
    SendClientMessage(i, COLOR_GREEN,tmp);
    }
    if(PlayerInfo[i][pDonateRank] > 0) {
    PlayerInfo[i][pPayDayHad] += 1;
    if(PlayerInfo[i][pPayDayHad] >= 5) PlayerInfo[i][pExp]++,PlayerInfo[i][pPayDayHad] = 0;
    }
    if(KnastTime[i] > 0)KnastTime[i]--;
    if(KnastTime[i] == 0 && Knast[i] > 0) Knast[i] = 0,KnastTime[i] = 0,SpawnPlayer(i),SendClientMessage(i,COLOR_YELLOW," Benimm dich ab jetzt, oder ein Admin wird dich wieder einsperren!");
    }
    }
    return 1;
    }


    mfg. :thumbup: