Beiträge von ErikSon

    Hey,
    habe eine Animation gemacht, wo der Spieler nachlädt, um die Nachladezeit ein wenig zu erhöhen.
    Jedoch, wenn ich jetzt z.B. nach vorne gehe, und dann nachladen muss, dann geht der Spieler wegen der Animation automatisch weiter.
    Kann man das irgendwie ändern, dass der Spieler dann normal stehen bleibt, wenn er sich gerade bewegt und er nachladen muss?


    Hier noch mal in nem Video:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    //
    Außerdem versuche ich, wenn ich mein eigenes Nachladen dem Spieler setze, dass er als Waffe nur die Faust hat und danach seine Waffe wieder bekommt, damit die Schüsse im Magazin wieder voll sind.. Das klappt leider auch nicht ;)
    stock Nachladen(playerid,weaponid){
    new time;
    switch(weaponid){
    case 22..24,26..32,37,38,41,42:time = 3; // Nachladezeit
    default:time = 1; //Nachladezeit
    }
    SetPlayerAmmo(playerid,weaponid,5000);
    SetTimerEx("_nl",700,false,"iii",playerid,time,weaponid); // Habe den Timer schon verschiedenhoch gesetzt, klappt iwi nicht :P
    return SetPlayerArmedWeapon(playerid,0);//Faust
    }
    //Armed Weapon auf 0, damit der Spieler nicht standart nachlädt
    //Armed Weapon auf die richtige Gun -> nachladen
    pub _nl(playerid,time,weaponid){
    SetPlayerArmedWeapon(playerid,weaponid);
    s_waffe[playerid][GetPlayerWeapon(playerid)][1] = GunAmmo(GetPlayerWeapon(playerid)), //Munition im Magazin voll
    s_waffe[playerid][GetPlayerWeapon(playerid)][0] -= GunAmmo(GetPlayerWeapon(playerid)); // Komplette Munition
    return ApplyAnimation(playerid,"BUDDY","buddy_reload",1.0,0,1,1,0,888*time,1); // Hier die Animation, damit der Spieler nachlädt
    }
    Also alles klappt, bis auf das mit ArmedWeapon usw..
    -> Möchte halt, dass der Spieler nie wieder standart nachlädt..


    Hoffe ihr könnt mir helfen ;)

    new string[50];
    SetPVarInt(playerid,"Bankkonto",GetPVarInt(playerid,"Bankkonto")+geld);
    return format(string,50,"Bankangestelle: Die %s€ wurden erfolgreich auf ihr Konto gebucht!",geld),SendClientMessage(playerid,COLOR_BLAU,string);


    1. 50 Zeichen werden da nicht reichen
    2. Geld ist kein String
    new string[80];
    SetPVarInt(playerid,"Bankkonto",GetPVarInt(playerid,"Bankkonto")+geld);
    return format(string,50,"Bankangestelle: Die %d€ wurden erfolgreich auf ihr Konto gebucht!",geld),SendClientMessage(playerid,COLOR_BLAU,string);

    public TimeUpdate()
    {
    new h, m, s, str[64], d, mo, y;
    gettime(h, m, s);// Variable 'm' übernimmt die Minuten
    getdate(y, m, d);//Variable 'm' übernimmt den Monat
    //Merkste ? ;)
    format(str, sizeof(str), "%02i:%02i:%02i Uhr | %02i.%02i.%i", h,m,s,d,mo,y);
    TextDrawSetString(StatusUhrzeit, str);
    return 1;
    }


    Versuchs mal so:

    public TimeUpdate()
    {
    new d[6], str[64];
    gettime(d[0], d[1], d[2]), getdate(d[3], d[4], d[5]);
    format(str, sizeof(str), "%02i:%02i:%02i Uhr | %02i.%02i.%i", d[0],d[1],d[2],d[5],d[4],d[3]);
    return TextDrawSetString(StatusUhrzeit, str);
    }

    Hey,
    habe eine Animation gemacht, wo der Spieler nachlädt, um die Nachladezeit ein wenig zu erhöhen.
    Jedoch, wenn ich jetzt z.B. nach vorne gehe, und dann nachladen muss, dann geht der Spieler wegen der Animation automatisch weiter.
    Kann man das irgendwie ändern, dass der Spieler dann normal stehen bleibt, wenn er sich gerade bewegt und er nachladen muss?


    Hier noch mal in nem Video:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Machs mal so:
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"skin",GetPlayerSkin(playerid));
    }
    return 1;
    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPVarInt(playerid,"skin",dini_Int(Spielerdatei,"skin")); //Du musst vorher den Skin in den PVar laden..
    return SetPlayerSkin(playerid,GetPVarInt(playerid, "skin"));
    }

    return ShowPlayerDialog(playerid,Crap,DIALOG_STYLE_LIST,"Test",""Rot_"Crap","Auswählen","Abbrechen");


    //'Rot_' ist so definiert:
    #define Rot_ {FF0000}
    Wie kann ich Dialoge farbig machen?
    Wie ich es oben gepostet habe, geht es leider nicht ;)


    Kann man das überhaupt mit einer definition machen, oder muss man es immer so nutzen: '{FARBCODE}'?

    kann ich dass dann problemlos drunter einfügen?


    Ja, aber auf die Klammersetzung achten!
    ocmd:setrang(playerid,params[])
    {
    if(isPlayerInFrak(playerid,0))return SendClientMessage(playerid,RED,"Du bist Zivilist!");
    if(!isPlayerRang(playerid,5)) return SendClientMessage(playerid,RED,"Dein Rang ist zu niedrig um dessen von jemand anderes zu ändern");
    new pID,rangs,Rank[128];
    if(sscanf(params,"ui",pID,rangs))return SendClientMessage(playerid,RED,"INFO: /setrang [playerid] [Fraktionsrang]");
    if(rangs<0||rangs>6)return SendClientMessage(playerid,CL_BLACK,"Bitte gültigen Rang angeben. (0-6) ");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,RED,"Spieler nicht gefunden!");
    if(sInfo[pID][eingeloggt] == 0) return SendClientMessage(playerid,RED,"Spieler ist nicht eingeloggt");
    sInfo[pID][rang]=rangs;
    savePlayer(pID);
    SendClientMessage(pID,RED,"Dein Memberrang wurde geändert.");
    format(Rank,sizeof(Rank),"Du hast den Memberrang von %s geändert",getPlayerName(pID));
    SendClientMessage(playerid,RED,Rank);
    if(isPlayerInFrak(pID, 1)){
    switch(sInfo[pID][rang]){
    case 1:SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten"),SetPlayerSkin(pID,265);
    case 2:SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten"),SetPlayerSkin(pID,266);
    case 3:SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten"),SetPlayerSkin(pID,267);
    case 4:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten"),SetPlayerSkin(pID,280);
    case 5:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    case 6:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    }
    }
    if(isPlayerInFrak(pID, 2)){
    switch(sInfo[pID][rang]){
    case 1:SendClientMessage(pID,CL_HBLUE,"Du bist nun Praktikant und hast deinen Skin erhalten"),SetPlayerSkin(pID,265);
    case 2:SendClientMessage(pID,CL_HBLUE,"Du bist nun Lehrling und hast deinen Skin erhalten"),SetPlayerSkin(pID,266);
    case 3:SendClientMessage(pID,CL_HBLUE,"Du bist nun ausgebildeter Azubi und hast deinen Skin erhalten"),SetPlayerSkin(pID,267);
    case 4:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und hast deinen Skin erhalten"),SetPlayerSkin(pID,280);
    case 5:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und CO LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    case 6:SendClientMessage(pID,CL_HBLUE,"Du bist nun Ausgebildeter COP und LEADER und hast deinen Skin erhalten"),SetPlayerSkin(pID,284);
    }
    }
    return 1;
    }
    So sind die Klammern richtig gesetzt..

    ..

    ..

    CMD:a(playerid,params[])
    {
    if(GetPVarInt( playerid, "Level" ) < 1 ) return SendClientMessage( playerid, -1, "Du musst ein "COLOR_LIGHT_BLUE"Administrator Level 1 {FFFFFF}sein, um diese Funktion nutzen zu können.");
    if(sscanf(params, "s", params[0])) return SendClientMessage( playerid, -1, ""COLOR_LIGHT_BLUE"Verwendung:{FFFFFF} /a <Text/Nachricht>");
    if(strlen(params[0]) <= 0)return SendClientMessage(playerid,-1,"Gebe einen Text ein!");
    new String[144]; format(String,sizeof String, "%s %s: %s",GetPlayerLevelName(playerid),pName(playerid),params[0]);
    return SendClientMessageToAll(-1, String);
    }
    Du musst einen String ( Text ) eingeben, nicht den Namen / die ID eines Spielers!



    //Edit: Kann man die Waffenmunition in dem Magazin abfragen? ( z.B. 953-7 [Gesamte Munition: 960] ), davon halt die "7" rausnehmen..

    Wenn das geht

    Kann man die Zahl dann auch wieder der Waffe setzen?
    Also, wenn der Spieler die Waffe wieder nimmt ( wieder zu dieser Waffe scrollt )

    Hey,
    habe ein Problem mit den an den Spieler gefügten Objekten.
    Habe mit einem Editor das Objekt dem Spieler richtig angepasst, jedoch wenn ich die Koords in meinem Script so einfüge, klappt es gar nicht, da ist es so, als ob ich es einfach nur dranattached habe, und die Koords nicht geändert habe..


    Screens:


    Code:
    new Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z);
    Spieler[playerid][Rucksack] = CreateObject(371,x,y,z,0,0,0,30);
    AttachObjectToPlayer(Spieler[playerid][Rucksack],playerid,0.02300002,-0.14699985,-0.01100000,-2.80000638,84.90000152,5.80000019);
    Würde glaube auch so gehen:
    Spieler[playerid][Rucksack] = CreateObject(371,0,0,0,0,0,0,30);
    AttachObjectToPlayer(Spieler[playerid][Rucksack],playerid,0.02300002,-0.14699985,-0.01100000,-2.80000638,84.90000152,5.80000019);


    Warum ist das so?

    dcmd_gotoz(playerid,params[])
    {
    if (AccInfo[playerid][Level] < 1)return SendClientMessage (playerid, COLOR_RED, "* You are not an Administrator to perform this command.");
    new Float:_pos[3],Float:zAmount;
    if(sscanf(params, "f",zAmount)) return SendClientMessage(playerid, COLOR_GREY, "* Usage: /gotoz [Z]");
    GetPlayerPos(playerid, _pos[0], _pos[1], _pos[2]);
    return SetPlayerPos(playerid, _pos[0], _pos[1], zAmount);
    }
    Versuchs mal so..
    "zAmount" muss ein Float sein, kein Integer ;)