Beiträge von Home_Edit

    Dann würde ich mir mal an deiner stelle gedanken darüber machen die .amx zu löschen bevor du diese kompilst oder dir dne windows ordner neu runter zu laden sollte nix per print ausgeben werden, wenn du dies auch mal getestet hast innerhalb deine commands. Da UNKNOWN COMMAND nur zurück gegeben wird wenn bei OnPlayerCommandText
    kein return 1; verwendet wird bei commands. Dies passiert, wenn man ein return 1; vergessen hat am ende des befehls oder der command nicht existiert.
    Wie schon oben erwähnt kann es auch an pawno liegen dies war bei mir auch mal so das die .amx nicht ersetzt wurde. Wie solch ein fehler bei pawno zustande kommt
    kann ich dir nicht genau sagen die ursachen sind mir auch unbekannt.


    amx wird garantiert ersetzt...


    deswegen bin ich auch ziemlich verwirrt...





    Beides ... UKNOWN COMMAND

    von der Synthax her ist der Command richtig...


    aber wenn ich ihn ausführe kommt die Meldung "UNKNOWN COMMAND" ...


    //


    Jetzt kommt nurnoch UNKNOWN Command wenn ich im Fahrzeug sitze und den Befehl eingebe...



    // die erste For-Schleife geht also durch... aber danach gehts nicht weiter... ?

    ich habe diesen Befehl:



    if(strcmp("/aufladen", cmdtext, true,10) ==0)
    {
    for(new k = -1; k < sizeof(Trashcar); k++)
    {
    if(IsPlayerInVehicle(playerid,Trashcar[k]))
    {
    if(isfull[Trashcar[k]] < 3)
    {
    if(PlayerInfo[playerid][JobTrash] == 1)
    {
    for(new i = 0; i<49; i++)
    {
    if(IsPlayerInRangeOfDynamicObject(playerid,trash[i],5.0))
    {
    DestroyDynamicObject(trash[i]);
    isfull[Trashcar[k]] += 1;
    SendClientMessage(playerid,COLOR_WHITE,"Müll wird aufgeladen");
    FREEZE
    Muelltimer[playerid] = SetTimerEx("Unfreeze", 2500, false,"i",playerid);
    return 1;
    }
    }
    }
    }
    }
    }
    return 1;
    }



    Wo müssen hier die Returns gesetzt werden, habe schon einiges ausprobiert... nur iwie verwirren mich die FOR-schleifen
    Hoffe jemand kann mir da helfen...

    Ich habe 49 Objecte, welche vom Spieler zerstört werden indem er nen befehl eingibt


    Diese Objecte sollen dann mit einem Timer wieder random gerespawnt werden...


    gibt es da eine Methode quasi



    public respawntimer()
    {
    new randobjectid = random[49];
    if(object[randobjectid] == IsValidDynamicObject)
    {
    respawntimer();
    }
    if(object[randobjectid] != IsValidDynamicObject)
    {
    CreateObject(object[randobjectid]);
    }
    return 1;
    }


    Das Problem ist die Zeile mit CreateObject(...),.... gibt es so eine methode, das man nicht wieder das ganze object createn muss mit allen koordinaten usw...
    ich weiss nicht wie ich es sonst machen sollte, als 49 Abfragen zu stellen und dann nochmal ob jedes object-valid ist...


    hoffe jemand weiss weiter :)

    if(strcmp("/aufnehmen", cmdtext, true,10) ==0)
    {
    for(new i = 0; i<49; i++)
    {
    if(IsPlayerInRangeOfObject(playerid,trash[i],3.0))
    {
    DestroyDynamicObject(trash[i]);
    SendClientMessage(playerid,COLOR_WHITE,"Müll aufgeladen");
    }
    return 1;

    }
    return 1;
    }


    Jetzt erhalte ich zwar kein UNKNOWN command mehr, allerdings wird das object nicht entfernt...




    hier ist IsPlayerInRangeOfObject


    stock IsPlayerInRangeOfObject(playerid, object, Float:distance)
    {
    new Float:X, Float:Y, Float:Z;
    if(!IsValidObject(object)) return false;
    GetObjectPos(object, X, Y, Z);
    if(IsPlayerInRangeOfPoint(playerid, distance, X, Y, Z)) return object;
    return false;
    }



    // Es wird momentan nichts ausgegeben, es scheint aber das der Befehl funktioniert, nur ist wohl die Koordinatenabfrage noch falsch ??

    Hallo,


    Ich habe folgenden Befehl


    if(strcmp("/aufnehmen", cmdtext, true,10) ==0)
    {
    for(new i = 0; i<= 49; i++)
    {
    if(IsPlayerInRangeOfObject(playerid,trash[i],3.0))
    {
    DestroyDynamicObject(trash[i]);
    SendClientMessage(playerid,COLOR_WHITE,"Müll aufgeladen");
    }
    }
    return 1;
    }


    ich habe mehrere Objecte trash[0] - trash[48] ...


    trash[0] = CreateDynamicObject(...)
    trash[1] = CreateDynamicObject(...)
    trash[2] = CreateDynamicObject(...)


    // bis 48


    Wenn ich den Befehl ausführe erhalte ich die Nachricht : UNKNOWN Command ... alle anderen gehen ...


    Ich möchte ein Friedhofssystem erstellen. Nach der Sterbeanimation respawnt mein Charakter aber immer. Er soll aber auf dem Friedhof bleiben.



    Du musst eine Variable erstellen die du bei OnPlayerDeath auf 1 setzt ... und bei OnPlayerSpawn fragst du diese Variable ab und gibst dann die jeweiligen Eigenschaften ein, ob er irgendwo gespawnt werden soll usw...


    hoffe das hilft

    else if (strcmp("/oamtpark", cmd, true, 10) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 18 || PlayerInfo[playerid][pLeader] == 18)
    {


    if(IsPlayerInAnyVehicle(targetid))
    {
    GetVehiclePos(Carlist[playerid][Carid],Carlist[playerid][X],Carlist[playerid][Y],Carlist[playerid][Z]);
    GetVehicleZAngle(Carlist[playerid][Carid],Carlist[playerid][Rotation]);
    SendClientMessage(playerid, COLOR_GREEN, "Fahrzeug abgestellt!");
    Carlist[playerid][Lock] = 1;
    RemovePlayerFromVehicle(playerid);
    }
    else { SendClientMessage(playerid, COLOR_GREY, "Du sitzt nicht in einem Auto!");}
    }
    }
    return 1;
    }


    so ich habe hier mal was so gemacht / versucht , einen befehl mit dem man das auto in der oamt base parken kann
    ich brauche nur einen befehl mit dem ich in das näheste auto steigen kann ... weiss nicht ob das geht
    und für diese zeile eine alternative :
    if(IsPlayerInAnyVehicle(targetid))
    da weiss ich nicht was ich machen soll , weil das geht ja iwie net -.-
    oder : if (IsPlayerInVehicle(playerid,Carlist[playerid][Carid]))
    das muss iwie so umgeschrieben werden das das car von iwem geparkt werden kann ...
    kann jemand helfen ?