[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • @Jeffry:
    Okey habe den Fehler nun Gefunden Trotzdem Vielen Dank für deine Hilfe habe das Oben durch deine Erklärung Super Verstanden.


    Der Fehler war wenn die Mülltonne im - bereich war dann hat es nicht Funktioniert und wenn sie zu weit im + bereich lag ebenfalls nicht.
    Habe dann eine Mülltonne hingestellt die dann ca 170 entsprach und siehe da es Funktioniert :)


    Habe aber eine andere frage.
    Ich habe es so gemacht dass man an der Mülltonne eine Animation macht aber manchmal hört die auf bevor der Balken Voll ist oder man abbricht.
    Weiß Jemand warum ?


    Code
    ApplyAnimation(playerid, "BD_FIRE", "BD_Panic_Loop", 4.1, 1, 0, 0, 0, 4700, 1);
    			pfandupdate[playerid] = SetTimerEx("Updatepfandbar",45,true,"i",playerid);


  • Mal kurz eine frage...



    [spoiler


    [/spoiler]


    & Ja es sind alle Plugins im Ordner .dll & .so

  • Hey,


    ich habe keine Ahnung wie ich es Umsetzen kann, deswegen frage ich euch mal nach Hilfe.
    Wie kann ich einer Person +50 HP auf seiner aktuellen HP setzen?
    Schon gegoogelt, aber finde leider nichts, wäre nett wenn mir jemand das erklären könnte :D

    Ich pushe das mal weil ich immer noch keine Lösung gefunden habe ^^

  • Ich pushe das mal weil ich immer noch keine Lösung gefunden habe

    Mach das am Besten zu einer Funktion:


    C
    stock GivePlayerHealth(playerid, Float:add)
    {
        new Float:h;
        GetPlayerHealth(playerid, h);
        return SetPlayerHealth(playerid, h+add);
    }
    
    
    //Nutzung dann einfach:
    GivePlayerHealth(playerid, 50.0);

    Mal kurz eine frage...

    Du hast aber keine Plugins in die Server.cfg eingetragen und es scheint, dass ein paar c++ redistributable fehlen :)

    Weiß Jemand warum ?

    Timer sind unpräzise. Es kann gut sein, dass der Timer eig viel länger braucht.
    Dafür gibt es einen TimerFix oder stell die Animationszeit einfach bissl höher :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habe gerade iwie ein Kleines Problem.


    Ich habe ein System wo ich mit Float Daten Arbeite aber das Multiplizieren Funktioniert nicht.
    Bei dem Preis Kommt 0 Raus aber wieso ?

    Code
    new Fichte = 1,
    	Pappel = 1,
    	Tanne = 1,
    	Eiche = 1,
    	Buche = 1;
    new Float:hf_q1 = 0.0,
    	Float:hf_q2 = 0.25,
    	Float:hf_q3 = 0.5,
    	Float:hf_q4 = 0.75,
    	Float:hf_q5 = 1.0;
  • Habe gerade iwie ein Kleines Problem.

    Nutze doch Arrays, damit kannst du das viel einfacher alles machen:



    Und dann schau mal aufs print :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • C
    printf("%.02f * %.02f = %.02f",hf_q[quali],holzTyp[typ-1],hf_q[quali]*holzTyp[typ-1]);
    
    
    return hf_q[quali]*holzTyp[typ-1];

    Schreibs mal nur so.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Okay, deklarier es mal so:



    C
    new Float:holzTyp[] = {
    	1.0, //Fichte
    	1.0, //Pappel
    	1.0, //Tanne
    	1.0, //Eiche
    	1.0 //Buche
    };

    Dann müsste es gehen :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hallo!


    Ich möchte folgenden Befehl erstellen, damit nur ein bestimmter Rang die User nur zum Helfer machen kann.
    Wie kan ich das lösen?



    ocmd:makehelfer(playerid, params[])
    {
    #pragma unused params
    if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
    new pID, adminid, string[128];
    if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,6))
    {
    if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makeadmin [SpielerID/Name] [Teamrang]");
    if(IsPlayerNPC(pID))return 1;
    if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!");
    if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial.");
    if(adminid == 0){
    format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]);
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]);
    SendAdminMessage(ADMCMD, string);
    SpielerDaten[pID][pAdmin] = 0;
    SpielerSpeichern(pID);
    return 1;
    }
    if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!");
    SpielerDaten[pID][pAdmin] = adminid;
    format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendClientMessage(playerid, BLAU, string);
    format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID));
    SendClientMessage(pID, BLAU, string);
    format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID));
    SendAdminMessage(ADMCMD, string);
    //SpawnPlayerEx(pID);
    SpielerSpeichern(pID);
    return 1;
    }
    else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");}
    return 1;
    }

  • Danke, aber wie mach ich es, das der Admin Rang einen Spieler nur Rang 1 also Helfer geben kann?

    Was meinst du jetzt genau?


    Ein Adminlevel rang 1er soll einem Spieler nur Rang 1 geben können?
    Und Adminlevel rang 2 nur Rang 2 oder wie?

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habe dann eine Mülltonne hingestellt die dann ca 170 entsprach und siehe da es Funktioniert

    Ich verstehe nicht genau, was du damit meinst, aber gut, dass es jetzt klappt!



    Weiß Jemand warum ?

    Lief die Animation zu dem Zeitpunkt dann schon die 4,7 Sekunden? Zum Teil laufen so kurze Timer etwas langsamer in Summe, sodass das am Ende eventuell auch mal eine Sekunde ausmachen kann.




    Das ist mir schon klar, aber wie frage ich ab das der "Helferverwalter" dem Spieler nur Rang 1 also Helfer geben kann und keine anderen Ränge? Was muss ich da an meinem Code ändern?

    if(IsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,6))
    zu:
    if(IsPlayerAdmin(playerid))


    if(IsPlayerNPC(pID))return 1;
    zu:
    if(isPlayerAnAdmin(playerid,5) && adminid > 1) return SendClientMessage(playerid, GRAU, "Du kannst nur Rang 1 vergeben.");
    if(IsPlayerNPC(pID))return 1;

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()