Beiträge von Sry4pwn

    Ich nutze dcmd,
    kA wie ocmd definiert ist, ich hätte aber gedacht, dass alle ocmd Befehle auch im onplayercommandtext drinne sind ?
    Oder werden die schon davor weggefiltert ?

    Mhm, also ich löse sowas immer so.


    ocmd:tban(playerid, params[])
    {
    New str[64];Format(str, 64, "timeban %s", params);
    OnPlayerCommandText(playerid, str);
    }]

    Du kannst doch nicht Abfragen ob ein Spieler in 2 Fraktionen ist, was ist denn mit dir los ?(


    && = UND
    || = ODER


    MfG



    oh doch, das kann ich.
    Ich frage nämlich ab ob er NICHT in fraktion 1 ist und ob er NICHT in fraktion 3 ist.
    nur dann soll er die errormessage kriegen,


    wenn ich das mit oder machen würde, würde er mir die errormessage ausgeben, obwohl ich in einer der fraktionen bin.
    verstehste ?
    sonst würde ich abfragen ob er NICHT in fraktion 1 oder NICHT in fraktion 3 ist.


    du kannst es theoretisch auch so machen:
    if(IsSpielerInFraktion(playerid,1) || IsSpielerInFraktion(playerid,3)) {
    ...
    }
    else return SendClientMessage(...);

    ja, das stimmt, aber dann wären trotzdem noch viele fehler gewesen, am besten berichtigst du alle, bzw erklärst, wo das > zeichen hinkommt, anstatt immer irwelche begriffe zu schreiben, da kennt sich kein anfänger mit aus...

    naya, jetz fragt er ab ob er nicht in der fraktion ist oder nciht in der anderen ist


    && stimmt schon, wenn er in keiner Fraktion ist soll er die client message schicken
    if(!IsSpielerInFraktion(playerid,1) && !IsSpielerInFraktion(playerid,3)) return SendClientMessage(...);
    else {...}


    aber die abfrage stimmt auch nicht so ;)
    das gehört so:
    stock IsSpielerInFraktion(playerid,fraktionsid)
    {
    if(GetPVarInt(playerid,"Fraktion")==fraktionsid)return 1;
    return 0;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(GetPVarInt(killerid,"Fraktion")==9)
    {
    if(GetPVarInt(playerid,"Kopfgeld")>0)
    {
    GameTextForPlayer(killerid,"Auftragsmord", 3000, 1);
    GivePlayerMoney(killerid, GetPVarInt(playerid,"Kopfgeld"));
    DeletePVar(playerid,"Kopfgeld");
    }
    }
    return 1;
    }

    naya, gibt sicher schöneres, tut aber seinen zweck...


    if(newkeys & KEY_FIRE) {
    new id=GetPlayerTargetPlayer(playerid);
    if(id!=INVALID_PLAYER_ID) {
    if(IsPlayerNPC(id)) {
    new damage=GetPVarInt(id, "damage");
    if(damage<80) SetPVarInt(id, "damage", damage+10);
    else {
    if(damage>=80) { //wenn damage zu hoch, dann spieler sterben lassen
    if(IsPlayerInAnyVehicle(id)) RemovePlayerFromVehicle(id); //anim funktioniert im car nicht
    OnPlayerDeath(id, playerid, 47);
    ApplyAnimation(id,"CRACK","crckdeth1",4.1,0,1,1,1,0,1);
    SetTimerEx("kickPlayer", 6000, false, "i", id);
    }
    }
    }
    }
    }


    dazu braucht man aber dann noch die public:


    forward kickPlayer(playerid);
    public kickPlayer(playerid)
    {
    Kick(playerid);
    return 1;
    }

    ja theorethisch, aber in den ketten sind meistens auch so kleine laufräder,
    und ich denke es ist vom programmieren her einfacher dem panzer einfach viele räder zu geben, anstatt nochmal eine ausnahmen für ketten zu machen.


    hat nicht die andromada auch recht viele räder ?
    kA

    meistens sinds klammerfehler, oder zu viel gesetzte ";"
    ist aber ohne fehlermeldung relativ schwer zu finden, deswegen so oft wie möglich compilen, und wenn was nicht geht, dann im letzten teil schaun, dann kann man den bereich vom fehler einschränken...

    noch etwas zu pvars,
    ja sie sind langsamer und ressourcenfressender...
    aber der vorteil von pvars ist, dass man sie auch ganz einfach in filterscripts auslesen kann.
    Dies ist mit arrays bzw enums nicht so einfach möglich...


    Außerdem kann man mal kurz sachen speichern und die pvars dann mit deletepvar wieder löschen...
    natürlich, kann man auch im enum eine variable zB reason nennen, oder so ähnlich und dann diese verwenden wenn man zwischen 2 befehlen etwas zwischenspeichern will,
    wenn dabei jedoch zwei variablen gebraucht werden, braucht man schon wieder 2, oder es gibt bugs...
    Mit PVars hast du dieses Problem nicht.


    Jeder hat aber seine eigenen Vorlieben, hier nur nochmal die vorteile der pvars

    Naya also erstens brauchst du nicht erwarten, dass dir jemand den ganzen Code macht,


    Und im allgemeinen musst du garnicht dein komplettes Script umstellen, du kannst auch strcmp.für cmds ohne Parameter hernehmen und ocmd für Befehle mit.


    Dafür musst du nicht alles umstellen

    Lass mal die Schrift klein...


    Naya, in n++, werden dir Funktionen und defines angezeigt und vervollständigt, man sieht während man eine Funktion schreibt die Parameter die man braucht.
    Die Formatierung ist leichter und es hat beim einfügen nicht so komische Fehler wie pawno,


    Die Nachteile sind, dass es n extra Programm ist, und man das Script vorm compilen immer speichern muss.(aber das is mit strg s kein ding)