Beiträge von Rexo

    Es sind immer die kleinen verdammten Fehler die man nicht findet^^



    if(JamaicaGibtBefehl == 1)
    {
    KillTimer(ActorSchiessenTimer);
    ActorSchiessenTimer = SetTimer("ActorSchiessen", 5000, true);
    print("HIER HIER HIER");
    JamaicaGibtBefehl =0; //So ist es richtig....
    }



    if(JamaicaGibtBefehl == 1)
    {
    JamaicaGibtBefehl =0; //DER WAR FALSCH!
    KillTimer(ActorSchiessenTimer);
    ActorSchiessenTimer = SetTimer("ActorSchiessen", 5000, true);
    print("HIER HIER HIER");
    }


    Danke dir aber auf jeden Fall für die HIlfe. Hätte noch ewig gebraucht um auf den Fehler zu stoßen ohne Denkanstoß^^

    JamaicaRuhig ist auf 0. Wie gesagt der Timer läuft in der Schleife ab und wird nicht neu gesetzt (durch print getestet).
    MotelUnruhig ist auf 0, Wie gesagt Timer schickt den Befehl ActorWaffenWeg los. Dort wird der Timer dann auch eig gekillt.


    Der Timer wird weiter entfernt losgeschickt:
    if(JamaicaDrehtAb >= 3){KillTimer(JamaicaChecktAbTimer);JamaicaGibtBefehl = 1;ActorSchiessenTimer = SetTimer("ActorSchiessen", 5000, true);}


    Dann landet er im Public bei JamaicaGibtBefehl, wird gekillt und neu gesetzt. Ab da an läuft er nur noch in seiner Schleife weiter:
    if(JamaicaDrehtAb >= 3){KillTimer(JamaicaChecktAbTimer);JamaicaGibtBefehl = 1;ActorSchiessenTimer = SetTimer("ActorSchiessen", 5000, true);}


    EDIT:


    Ich habe jetzt nochmal nachgeschaut ob alles klappt ohne die Ecke JamaicaGibtBefehl. Dann bricht der Timer wunderbar ab und Ende. Mir scheint es irgendwie wenn die Ecke JamaicaGibtBefehl den Timer 2x laufen lässt. (Der Text das sie schießt kommt dann auch 2 mal ansonsten nicht) Aner der wird doch gekillt?

    Grüße, ich wollte meinen Timer beenden unter bestimmten Bedingungen. Natürlich habe ich nachgeprüft wo der Fehler liegt und ordentlich geprintet. Der Timer wird nur einmal gesetzt und läuft dann in seiner Schleife weiter. An den Stellen wo ich KillTimer nutze habe ich einen Print gesetzt und dieser wird auch angezeigt. Jedoch wird der Timer nicht gestoppt und die Schleife geht immer weiter ohne das er irgendwo neu gesetzt wurde. Sieht jemand den Fehler?

    public ActorSchiessen()
    {
    if(JamaicaGibtBefehl == 1)
    {
    JamaicaGibtBefehl =0;
    KillTimer(ActorSchiessenTimer);
    ActorSchiessenTimer = SetTimer("ActorSchiessen", 5000, true);
    }
    MotelRuhigAbfragen();
    print("Schiessen Timer läuft");
    new IfSchiesst;
    if(MotelUnruhig == 1)
    {
    for(new p;p<MAX_PLAYERS;p++)
    {
    if(!IsCrip(p))
    {
    if(IsSchlaeger[p] == 1 || IsMotelSchuetze(p) || IsSchusswaffe(p))
    {
    if(JamaicaAngeschossen == 0 && RezepLadyTot == 0 && JamaicaVerletzt == 0)
    {
    if(IsPlayerInRangeOfPoint(p,4.5,2216.503906,-1152.774169,1025.796875) || IsPlayerInRangeOfPoint(p,3.0,2221.090576,-1153.498657,1025.796875) || IsPlayerInRangeOfPoint(p,3.0,2216.586425,-1147.341552,1025.796875) || IsPlayerInRangeOfPoint(p,3.0,2215.256835,-1150.719726,1025.796875))
    {
    new Float:health;
    GetPlayerHealth(p,health);
    if(health < 81){ImMotel[p]=0;}
    SetPlayerHealth(p,health-80);
    IfSchiesst = 1;
    }
    }
    }
    }
    if(IfSchiesst == 1)
    {
    if(IsPlayerInRangeOfPoint(p,20.0,2216.407714,-1148.544921,1025.796875))
    {
    SendClientMessage(p,COLOR_PURPLE,"Jamaica_Nolan schießt mit ihrer AK um sich!");
    }
    }
    }
    }
    if(MotelUnruhig == 0)
    {
    if(ActorLeben())
    {
    print("Actor Waffen weg wird gesetzt");
    KillTimer(ActorSchiessenTimer);
    ActorWaffenWeg();
    return 1;
    }
    }
    return 1;
    }


    Der Timer schickt dann immer wieder die Befehle MotelRuhigAbfragen und ActorWaffenWeg los.

    Hab ich in einer If Abfrage. Das Ganze sieht dann so aus:
    if(newkeys == KEY_FIRE)
    {
    if(ImMotel[playerid] == 1 && IsSchusswaffe(playerid))
    {
    if(MotelRuhig == 0)
    {
    MotelRuhig = 1;
    pInfo[playerid][pMotelSchuetze] = 1;
    }
    SendClientMessage(playerid,COLOR_WHITE,"Ready to Rumble");
    ActorZiehenWaffen();
    }
    }

    Ich will abfragen ob der Spieler eine Schusswaffe trägt, doch leider klappt es nicht wirklich.


    Einmal nutze ich den hier:
    public IsSchusswaffe(playerid)
    {
    if(GetPlayerWeapon(playerid) >= 21 && GetPlayerWeapon(playerid) <= 35)
    {
    return 1;
    }
    return 0;
    }
    und dann noch den hier:
    IsSchusswaffe(playerid);
    Weiß jemand wieso das nicht geht? (Jeffry xD?)

    Ich setzte meinen Acor an eine neue Position und nutze dann auch SetActorFacingAngle(RezepLady,323.076721); Die Float habe ich einfach aus der neuen Position rauskopiert. Die Blickrichtung war fast um 180° geändert. Doch leider dreht sich der Actor dann nicht und wird nur geportet.

    Ich wollte meinen Actor wie einen Spieler draufgehen lassen. Beim Setzen des Actors bekommt er 100 Lebenspunkte und in der Abfrage ziehe ich ihn so viel ab wie einen normalen Spieler auch. Ich habe den Schaden anzeigen lassen und selbst wenn ich nur einmal 20 HP abziehe ist der Actor sofort tot.


    public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float: amount, weaponid, bodypart)
    {
    new string[128], attacker[MAX_PLAYER_NAME];
    new weaponname[24];
    GetPlayerName(playerid, attacker, sizeof (attacker));
    GetWeaponName(weaponid, weaponname, sizeof (weaponname));


    format(string, sizeof(string), "%s has made %.0f damage to actor id %d, weapon: %s", attacker, amount, RezepLady, weaponname);
    SendClientMessageToAll(0xFFFFFFFF, string);
    SetActorHealth(RezepLady, -amount);
    return 1;
    }

    Stimme ich dir voll zu. Leider noch nie so einen Server gesehen. Reiner Mafiawar ganz ohne Gangs wäre doch mal was Neues. Keine unrealistischen Mafien mehr die um Gangzonen im Ghetto fighten^^

    Kommt natürlich drauf an ob man einen RL oder RP Server haben will. Bei einem RP Server muss man denn auf die Spielart achten. Ein Script mit vielen Gangs ist zB nur in LS machbar da dort das große Ghetto ist. Auf den anderen beiden Karten gibt es zwar auch Gegenden für Gangs aber in LV wird es dann schon sher schwer. Man muss nur wissen welches Konzept man scripten will und danach richtet man sich. Einfach hinklatschen wie User es wollen ist doch für die Katze.

    Ich wollte eine Abfrage erstellen aber leider spinnt es.


    Da habe ich einmal:
    forward SpielerinnaeheTextZwei(Float:radi, Float:x, Float:y, Float:z, string[],col1,col2,col3,col4,col5);
    und dann:
    SpielerinnaeheTextZwei(20.0, 2217.448242,-1146.404785,1025.796875, string2, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    Beim Compilen kommt dann folgende Meldung:
    error 004: function "SpielerinnaeheTextZwei" is not implemented

    So, ich habe mir mal so eine Schleife angeschaut. Sieht ja wirklich recht simpel aus, wenn man es denn für einfache Systeme nutzt. Da ich das jetzt keine 15min kenne kann ich mir schlecht vorstellen damit kompliziertere Systeme zu schreiben. Leider komme ich nicht drum herum bei meinen Vorhaben. Wäre jemand so nett und würde mir helfen?


    Die Schleife startet und dann soll abgefragt werden ob ein Spieler in der Nähe ist mit einer bestimmten Variable. Dabei soll die Playerid an sich nichts machen. Die Abfrage startet und alle Playerid´s sollen die Schleife durchlaufen während diese frag ob die jeweilige Playerid in der Nähe ist und ob sie eine bestimmte Variable auf 1 gesetzt hat.


    Chinesisch für mich8|