Beiträge von Tround

    ApplyAnimation(playerid, "FOOD", "EAT_Burger", 4.1, 0, 1, 1, 1, 1, 1);


    die zweite zahl steht für den loop
    zitat ausm wiki:
    loopSet to 1 for looping otherwise set to 0 for playing animation sequence only once.


    nach der animation bleibt der arm angewinkelt.. das geht auch erst weg wenn man schlägt ö.ä.
    ist aber nicht so schlimm find ich.


    für andere animationen wo man danach nicht mehr laufen kann, könnte man das hier vlcht mit einem timer verwenden:
    ClearAnimations(playerid);
    hab ich aber selbst noch nicht getestet^^

    so vlcht:

    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",SpielerName(playerid));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
    {
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    SendClientMessage(playerid,blau,"Du hast dich erfolgreich eingeloggt.");
    Spielerlogin[playerid] = 0;
    return 1;
    }
    else
    {
    Spielerlogin[playerid] = 1; // das hier haste vergessen
    if(Spielerlogin[playerid] == 1)
    {
    SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch zwei weitere Versuche!");
    Spielerlogin[playerid] = 2;
    }
    if(Spielerlogin[playerid] == 2)
    {
    SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch einen Versuch!");
    Spielerlogin[playerid] = 3;
    }
    if(Spielerlogin[playerid] == 3)
    {
    SendClientMessage(playerid,blau,"Du hast dreimal ein falsches Passwort eingegeben. Du wurdest vom Server gekickt!");
    Kick(playerid);
    }
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte dein Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }

    habe eben noch editiert hatte was vergessen.. schon das hier drin?

    #define ADMIN_SPEC_TYPE_NONE 0
    #define ADMIN_SPEC_TYPE_PLAYER 1
    #define ADMIN_SPEC_TYPE_VEHICLE 2


    und für die death cam irgendwie sowas:

    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(IsPlayerConnected(playerid))
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, killerid);
    SetTimer("spec",10000,1);
    }
    return 1;
    }

    ganz oben:

    new SpectateID[MAX_PLAYERS];
    new SpectateType[MAX_PLAYERS];


    #define ADMIN_SPEC_TYPE_NONE 0
    #define ADMIN_SPEC_TYPE_PLAYER 1
    #define ADMIN_SPEC_TYPE_VEHICLE 2

    unten:

    ocmd:specs(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new pID;
    if(!isPlayerAnAdmin(playerid,4)) return SendClientMessage(playerid,ROT,"Dein Admin Level ist nicht hoch genug!");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,BLAU,"Info: /specs [Spieler ID]");
    if(IsPlayerConnected(pID))
    {
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectatePlayer(playerid, pID);
    SetPlayerInterior(playerid,GetPlayerInterior(pID));
    SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
    SpectateID[playerid] = pID;
    SpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht auf dem Server!");
    }
    }
    return 1;
    }


    ocmd:specf(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new vehicle;
    if(!isPlayerAnAdmin(playerid,4)) return SendClientMessage(playerid,ROT,"Dein Admin Level ist nicht hoch genug!");
    if(sscanf(params,"i",vehicle)) return SendClientMessage(playerid,BLAU,"Info: /specf [Fahrzeug ID]");
    TogglePlayerSpectating(playerid, 1);
    PlayerSpectateVehicle(playerid, vehicle);
    SpectateID[playerid] = vehicle;
    SpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
    }
    return 1;
    }


    ocmd:specaus(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    TogglePlayerSpectating(playerid, 0);
    SpectateID[playerid] = INVALID_PLAYER_ID;
    SpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
    }
    return 1;
    }

    das kannste mit einer for schleife machen



    ocmd:rep(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new rep[128];
    if(sscanf(params,"s",rep)) return SendClientMessage(playerid,BLAU,"Info: /rep [text]");
    format(rep,sizeof(rep),"Report von: %s: %s",SpielerName(playerid),rep);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"AdminLevel")!=0)
    {
    SendClientMessage(i,HELLROT,rep);
    }
    }
    }
    SendClientMessage(playerid,HELLROT,"Report erfolgreich gesendet!");
    }
    return 1;
    }


    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"Info: /kick [id] [grund]");

    meine zeile sieht eigtl gleich aus und bei mir klappts



    ocmd:fahrzeug(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    new modelid,Farbe1,Farbe2;
    new fahrzeug1[128];
    if(sscanf(params,"ddd",modelid,Farbe1,Farbe2))return SendClientMessage(playerid,BLAU,"Info: /fahrzeug [Model-ID] [Farbe1] [Farbe2]");
    if(modelid < 400 || modelid > 611)return SendClientMessage(playerid,ROT,"Ungültige Model-ID! Model[400-611]");
    if(Farbe1 < 0 || Farbe1 > 186)return SendClientMessage(playerid,ROT,"Ungültige Farb-ID! Farben[0-186]");
    if(Farbe2 < 0 || Farbe2 > 186)return SendClientMessage(playerid,ROT,"Ungültige Farb-ID! Farben[0-186]");
    new Float:pos[3];
    GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
    new createdcarid = CreateVehicle(modelid,pos[0]+1,pos[1]+1,pos[2],0,Farbe1,Farbe2,-1);
    format(fahrzeug1,sizeof(fahrzeug1),"Du hast dir ein Fahrzeug mit der ID %d gespawnt!",(createdcarid));
    SendClientMessage(playerid,HELLROT,fahrzeug1);
    }
    return 1;
    }

    bei mir sieht das so aus:

    stock SpielerSpeichern(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    dini_IntSet(Spielerdatei,"Punkte",GetPVarInt(playerid,"Punkte"));
    }
    return 1;
    }

    mit dem playerinfo zeugs kenn ich mich nicht aus da kann ich nicht helfen :|

    ist aus meinem script rauskopiert.. musst halt auf dein script anpassen.



    ocmd:punkte(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(GetPVarInt(playerid,"Fraktion")==1)
    {
    new pID,punkte;
    if(sscanf(params,"ui",pID,punkte)) return SendClientMessage(playerid,BLAU,"Info: /punkte [ID] [Anzahl]");
    if(pID==playerid) return SendClientMessage(playerid,ROT,"Du kannst dir nicht selber Punkte geben!");
    if(punkte<1||punkte>3) return SendClientMessage(playerid,ROT,"Ungültige Punkteanzahl! [1-3]");
    if(IsPlayerConnected(pID))
    {
    new Float:px,Float:py,Float:pz;
    GetPlayerPos(pID,px,py,pz);
    if(IsPlayerInRangeOfPoint(playerid,10,px,py,pz))
    {
    new punkt=GetPVarInt(pID,"Punkte");
    SetPVarInt(pID,"Punkte",punkt+punkte);
    SpielerSpeichern(pID);
    new punkt1[128],punkt2[128],punkt3[128],punkt4[128];
    format(punkt1,sizeof(punkt1),"Du hast %s, %i Punkt(e) gegeben!",SpielerName(pID),punkte);
    SendClientMessage(playerid,ORANGE,punkt1);
    format(punkt2,sizeof(punkt2),"Du hast von %s, %i Punkt(e) bekommen!",SpielerName(playerid),punkte);
    SendClientMessage(pID,ORANGE,punkt2);
    format(punkt3,sizeof(punkt3),"Du hast nun %i Punkt(e) insgesamt!",GetPVarInt(pID,"Punkte"));
    SendClientMessage(pID,ORANGE,punkt3);
    format(punkt4,sizeof(punkt4),"%s hat nun %i Punkt(e) insgesamt!",SpielerName(pID),GetPVarInt(pID,"Punkte"));
    SendClientMessage(playerid,ORANGE,punkt4);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler befindet sich nicht in deiner Nähe!");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht auf dem Server!");
    }
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist kein LSPD Angestellter!");
    }
    }
    return 1;
    }


    mir ist bewusst das man noch zeilen hätte sparen können.. aber egal..

    Moin


    Ich habe ein kleines problem in meinem selfmade script und ich hoffe, dass mir jemand helfen kann.
    ich habe dieses problem erst gestern rausgefunden und bin total planlos, wie ich diesen bug beheben soll.
    es geht um ein paar floats. ich versuche mal zu erklären^^
    ich habe z.B. einen /mark und einen /gotomark befehel eingebaut. die koordinaten werden in einem float abgespeichert.
    jetzt ist es aber so, dass wenn spieler 1 /mark macht und damit seine koordinaten speichert,.. spieler 2 nicht seinen eigenen float bekommt sondern den float von spieler 1 überschreibt.
    also: Spieler 1 macht /mark.. Spieler 2 macht /gotomark und geht zu den koordinaten die spieler 1 gespeichert hat.
    jetzt frag ich mich ob es eine möglichkeit gibt auszulesen ob der float bereits besetzt ist und dann einen neuen float erstellt.
    hoffe jemand kennt eine antwort.
    danke im voraus.