Beiträge von Kaliber

    Du kannst ein Programm schreiben z.B. mit C# (geht auch mit C++...oder sonst was) und dann prüfen ob der Prozess aufgeführt wird oder nicht in einer Endlosschleife.


    Wenn ja, dann soll er nichts machen, wenn nein Prozess öffnen ;)


    mfg. :thumbup:

    #define PlayerName(%0) pName[%0]


    static pName[MAX_PLAYERS][MAX_PLAYER_NAME];


    //Und unter OnPlayerConnect
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);


    Nutzen tust du das dann z.B. so:


    printf("Dein Name ist: %s",PlayerName(playerid)); //Kannst PlayerName beliebig oben im Makro umbennnen


    mfg. :thumbup:

    Wird die 0 dann noch ausgeführt wenn ich Karte=random(12)+1; mache ?
    Ich habe einen Zombie Server, der wirklich sehr cool ist und ich will nicht das ich dadurch die Map 0 nicht mehr laden kann.
    Das wäre schon ziemlich doof, wie läuft das also ab ? Vielleicht könnt ihr mir ja mal ein kleinen Statement dazu geben. Ich habe noch nicht viel damit gearbeitet deswegen.


    Wenn du 0-12 haben willst mach es so:


    new Karte = random(13);


    mfg. :thumbup:

    Es kann kein Integer mit einem Float verrechnet werden!!


    Doch das geht, wenn Bank ein Float ist, dann funktioniert das ;)


    Dann kann man folgendes rechnen:


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


    Das funktioniert einwandfrei ;)


    Wenn allerdings Bank ein Integer ist, dann so:


    sSpieler[playerid][Bank] += floatround(sSpieler[playerid][Gehalt] * 0.9);


    mfg. :thumbup:


    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: