Beiträge von Kaliber


    Achsooo jetzt verstehe ich was du machen willst :whistling:


    Du solltest mal versuchen dein Problem besser zu formulieren :D


    Dann machst du das einfach so:


    sSpieler[playerid][Bank] += sSpieler[playerid][Gehalt] * 0.9;


    Cryptex:
    Ja...jetzt hab ich es verstanden, tut mir Leid dachte er will was völlig anderes machen :D


    mfg. :thumbup:

    Pawn


    Nix da, wenn ich von 1200€ 10% abziehe dann habe ich 1080€ und nicht 120€


    Jo er hats n bissl verdreht ^^


    Aber im Prinzip hat er recht...man bekommt was anderes Raus :rolleyes:


    Wenn man von 1200$ 10% abzieht bekommt man 1080$ raus, das stimmt, zieht man aber von 1200$ 90% ab, bekommt man nur 120$...


    mfg. :rolleyes:

    Richtig?


    Nun...so wie du es halt haben willst ^^


    Ich habe es dir ja vorgerechnet, wenn du das so machst:


    sSpieler[playerid][Bank] += sSpieler[playerid][Gehalt];
    und danach
    sSpieler[playerid][Bank] -= sSpieler[playerid][Gehalt]*0.1;


    Sagen wir wieder:


    5$ = Bank
    10$ = Gehalt


    5$ + 10$ = 15$ //Sind jetzt auf der Bank
    //Dann machst du:
    15$ - 1$ = 14$ //Jetzt hätte er 14$ auf der Bank


    Kommt darauf an, was du haben willst, ob du direkt 10% nur von der Bank abziehen willst oder ob du das Bankguthaben + Gehalt und davon dann 10% nehmen willst und abziehen willst..wobei ersteres mehr Sinn machen würde...aber naja ^^


    mfg. :thumbup:

    ja ich meine ist 10% abgezogen..


    Was?! :huh:


    Oder nicht?


    Nein, schau ich erkläre es mal ausführlicher:


    Bank = 5$
    Gehalt = 10$


    10% von 10$ = 1$ (Denn 10$ * 0.1 oder 10$ / 10 = 1$)


    So und nun soll ja von der Bank (5$) 1$ abgezogen werden sprich wir haben -> 4$ dann auf der Bank.


    Also:


    sSpieler[playerid][Bank] -= sSpieler[playerid][Gehalt]*0.1;


    @Cryptex:

    nimm meine formel oben dann passt das

    @Cryptex:

    Nein! Das passt ganz und gar nicht!

    @Cryptex:
    Nehmen wir mein Beispiel oben:

    @Cryptex:
    5$ Bank
    10$ Gehalt

    @Cryptex:
    Nach deiner Formel: sSpieler[playerid][Bank] += sSpieler[playerid][Gehalt] * 0.9;

    @Cryptex:
    5$ += 10$ * 0.9;
    5$ += 9$;
    Bank = 14$

    @Cryptex:
    ...jetzt hätte er mehr als Vorher :pinch:


    mfg. :thumbup:

    Kaliber: & ist das Normal das manchmal die Animationen nicht gesetzt werden ? :o


    Ja, wenn du sie beim 1. mal machst, deshalb solltest du sie Preloaden ;)


    //Unter OnPlayerSpawn
    PreloadAnimLib(playerid,"MEDIC"); //<< und das bei allen deinen Animationen machen


    //halt irgendwo im Script
    stock PreloadAnimLib(playerid, animlib[]) return ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);


    mfg. :thumbup:

    Schreibe es mal so:


    COMMAND:revive(playerid,params[])
    {
    if(SpielerInfo[playerid][Eingeloggt]==0)return SendClientMessage(playerid,Grau,"Du bist nicht eingeloggt !");
    if(Spieler[playerid][Afk] == 1)return SendClientMessage(playerid,Orange,"Du kannst im AFK-Modus keine Befehle nutzen. Drücke 'Z' um zurückzukehren.");
    if(SpielerInfo[playerid][Fraktion] != 4)return SendClientMessage(playerid,Orange,"Du bist kein Sanitäter!");
    new Float:Pos[3];
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i) || !IsPlayerInRangeOfPoint(i,2.0,Pos[0],Pos[1],Pos[2])) continue;
    if(SpielerInfo[i][Tod] != 1) return SendClientMessage(playerid,Orange,"Niemand in deiner Nähe ist verletzt!");
    SetPVarInt(playerid,"Reviver",i);
    ApplyAnimation(playerid,"MEDIC","CPR",1.1,1,0,0,1,200000,1);
    new bitch = random(6000);
    SetTimerEx("Revive",bitch,0,"d",playerid);
    ApplyAnimation(playerid,"MEDIC","CPR",1.1,1,0,0,1,200000,1);
    GameTextForPlayer(playerid,"Wiederbeleben..",bitch,4);
    ApplyAnimation(playerid,"MEDIC","CPR",1.1,1,0,0,1,200000,1);
    return 1;
    }
    return SendClientMessage(playerid,Weiss,"Es ist kein Spieler in deiner Nähe!");
    }


    mfg. :thumbup:

    Lösch das was du bisher hast und schreibe es so:


    static const RangNamen[][] = {"-","Praktikant","Auszubildener","Angestellter","CoLeader","Leader"};
    ocmd:setrank(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,GRAU,"Du bist nicht bei der Polizei angestellt");
    if(!isPlayerRang(playerid,5))return SendClientMessage(playerid,GRAU,"Du bist kein Leader!.");
    new pID,rank,s[128];
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,HELLBLAU,"/setrank [Name/ID] [Rank]");
    if(rank<1||rank>5)return SendClientMessage(playerid,GRAU,"Bitte gültigen Fraktions Rang angeben.");
    SetPVarInt(pID,"FraktionRang",rank);
    format(s,sizeof(s),"Du hast %s zum %s befördert",sName(pID),RangNamen[rank]);
    SendClientMessage(playerid,HELLBLAU,s);
    format(s,sizeof(s),"Du wurdest von %s zum %s befördert",sName(playerid),RangNamen[rank]);
    SendClientMessage(pID,HELLBLAU,s);
    SpielerSpeichern(pID);
    return 1;
    }


    mfg. :thumbup:

    wenn ich auf irgendein klicke, passiert nix. (STYLE - LIST)


    Schreibe das alles mal so:


    if(dialogid==DIALOG_GANGFIGHT)
    {
    if(!response) return 1;
    switch(listitem) {
    case 0: SetPlayerColor(playerid,0xFFFF00FF),SetPlayerSkin(playerid,108);
    case 1: SetPlayerColor(playerid,0xFF00E1FF),SetPlayerSkin(playerid,102);
    case 2: SetPlayerColor(playerid,0x5FFF00FF),SetPlayerSkin(playerid,107);
    }
    GivePlayerWeapon(playerid,24,500);
    GivePlayerWeapon(playerid,25,250);
    GivePlayerWeapon(playerid,31,750);
    GivePlayerWeapon(playerid,29,750);
    GivePlayerWeapon(playerid,34,15);
    onGF[playerid] = 1;
    }


    mfg. :thumbup:

    Naja...einfach so:



    PS: Ungetestet, sollte allerdings funktionieren ;)


    mfg. :thumbup:

    Deswegen.


    Dann wäre der sicherste Code der hier:


    ReturnPlayerID(l_PlayerName[]) {
    new pName[MAX_PLAYER_NAME+1];
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    GetPlayerName(i,pName,sizeof pName);
    if(!strcmp(pName,l_PlayerName)) return i;
    }
    return INVALID_PLAYER_ID;
    }


    So, weil bei Jeffrys Methode auch Fehler auftreten.


    Sagen wir einer heißt Jeffry, der andere Jeff und der andere Jef...dann hat man mit strfind ein Problem...


    und mit strcmp + true hat man das Problem wenn es Jeffry und JeffRy gibt...


    deshalb wäre der Code oben von mir der, der zu 100% die richtige Spielerid returnt ^^


    mfg. :thumbup:

    Mal im Ernst, wieso schreibt ihr es nicht einfach so:


    stock ReturnPlayerID(l_PlayerName[]) //(c) by Kaliber
    {
    new pName[MAX_PLAYER_NAME+1];
    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    GetPlayerName(i,pName,sizeof pName);
    if(!strcmp(pName,l_PlayerName,true)) return i;
    else if(strfind(pName,l_PlayerName,true)!=-1) return i;
    }
    return INVALID_PLAYER_ID;
    }


    mfg. :thumbup:

    was soll ich denn bieten? ^^


    Naja einfach eine Gegenleistung halt.


    Oder erwartest (verlangst) du von diesem Scripter, dass er sich mehrere Stunden / Tage / Wochen kostenlos mit dir auseinandersetzt und dir etwas beibringt? :huh:


    mfg. :thumbup:

    1. Dir kann man ohne mit dir befreundet zu sein keine PN schreiben...was ziemlich suboptimal ist ;)


    2. Ich frage einfach mal offen, weil es bestimmt alle interessiert, was bietest du?


    mfg. :thumbup: