[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
  • forward GetSupport(spieler);


    ocmd:support(playerid,params[])
    {
    new spieler[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    SendClientMessage(playerid,COLOR_GREEN,"Info: Das Admin Team wurde informiert!");
    GetSupport(spieler); //<< Betroffene Zeile
    return 1;
    }


    public GetSupport(spieler)
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    new save[13 + MAX_PLAYER_NAME],text[128],pName[MAX_PLAYER_NAME];
    GetPlayerName(i,pName,sizeof(pName));
    format(save,sizeof(save),"/Spieler/%s.ini",pName);
    sInfo[i][pLevel] = dini_Int(save,"pLevel");
    if(sInfo[i][pLevel] > 1)
    {
    format(text,sizeof(text),"[Support] Der Spieler %s hat Hilfe angefordert!",spieler);
    SendClientMessage(i,COLOR_LIGHTBLUE,text);
    }
    }
    }
    return 1;
    }


    Ich wollte gerne, wenn ein Spieler Hilfe braucht, dass er mit /support einen Admin ruft. Diese Nachricht soll selbstverständlich an alle Admins spricht Userlevel 2 gehen, dafür der Public.


    Da ich für die Admins anzeigen lassen wollte WER nun Support braucht, muss ich ja den Spielernamen irgendwie speichern und übertragen. Ich dachte das ginge so, dennoch sagt er mir folgendes beim compilen:


    error 035: argument type mismatch (argument 1)


    Kann mir jemand sagen wo mein Logikfehler ist?

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche


  • Wie meinst du das?
    Kannst dus evll so erklären das es ein noob versteht? :s


    Gerne, wenn du eine Abfrage machst ohne Wert Prüfung Beispiel:
    if(GetPlayerWeapon(issuerid))
    wird die Abfrage immer dann Wahr wenn GetPlayerWeapon nicht 0 ist.


    heißt wenn du


    if(1) abfragst wird es Wahr, weil 1 nicht 0 ist.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Gibt es eine Möglichkeit ein Kleines Video zb. von youtube, wenn es auf meinem Webspace ist,
    in einem Textdraw auf dem Bildschirm, klein oben rechts dar zu stellen?
    Wenn ja wie?

  • nein



    Frage es gibt ja diese ganzen dcmd ocmd scmd strcmp was ist den wie zu verstehen welches macht meinen Server ggf. schneller, laggfreier welches braucht länger zum compilieren kann mir da einer helfen habe unter der sufo immer nur die einzelnden CMDs gefunden nie nein direckten vergleich zu allen.

    Einmal editiert, zuletzt von Legö ()

  • Wollte Spieler Animationen machen. bei mir werden diese ausgeführt, nur die anderen Spieler können die nicht sehen. Warum?
    Dies ist nur Auszug aus dem Befehl. Ich habe den Paramter forcesync auf 0, dann auf 1 und dann weggelassen und alles geht nicht.
    ocmd:anim(playerid,params[])
    {
    new msg[24];
    if(sscanf(params,"s",msg)) return SendClientMessage(playerid,COLOR_YELLOW,"Benutze: /anim [animationsname]. Mehr zu den Animationen unter /anim list");
    if(!strcmp(msg,"list",true))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"|----- Animationen ------|");
    SendClientMessage(playerid,COLOR_YELLOW,"Benutze: /anim [stop] um die Animation zu beenden");
    SendClientMessage(playerid,COLOR_GREY,"/anim betrunken, /anim trink, /anim kratz, /anim kuss, /anim winken, /anim piss, /anim fu");
    SendClientMessage(playerid,COLOR_GREY,"/anim tot, /anim duck, /anim liegen");
    }
    // Parameter (playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync)
    else if(!strcmp(msg,"betrunken",true))
    {
    ApplyAnimation(playerid,"PED","WALK_DRUNK",4.1,1,1,1,0,5000);
    }
    else if(!strcmp(msg,"trink",true))
    {
    ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,0,5000,1);
    }
    //....
    }

    "Dem wird befohlen, der sich nicht selbst gehorchen kann" - Friedrich Nietzsche

  • Gibt es einen Code um den Chat zu locken? Also wie zum Bsp. LockChat(); oder so :D
    Sonst muss ich es selber machen.

  • Noch eine Frage:


    Ich habe mir eine neue Uhr gescriptet (Textdraw). Jetzt ist mir aufgefallen das anscheinend die original Uhr noch
    im Hintergrund ist.


    Wie bekomme ich die original Uhr weg sodass man nur die neue sieht?

  • scahu ob du als filterscript realtime benutzt oderso in der Art.
    Wenn ja -> Wegmachen.

  • Danke, TogglePlayerClock(playerid, 0); hat funktioniert.
    @inCrecdible: Fs benutze ich gar keins :)

  • gibt es eigentlich etwas kürzeres als das ewige if(weaponid == bla || weaponid == bal || weaponid == lba) z.B. if(weaponid == bla || bal || lba) ??? würde das irgendwelche fehler zeigen?

  • probiers doch mal, probieren geht über studieren.


    Ansonsten könntest du es auch so nutzen


    if(weaponid > 29 && weaponid < 33)

  • ich wollte es nur so wissen, bzw. ob das jemand macht...


    playerid


    Das geht natürlich auch, auch wenn es nur ein Bespiel war, aber wenn es um verschiedene Werte geht die nicht in dem Rahmen sind...


    Ich habs mal ausprobiert Errors gibts nicht aus, aber leider funktioniert es nicht.


    Ich habe einen Test gemacht mit new i = 1;

    new i = 1;
    while(i < 11)
    {
    if(i == 1 || 3 || 5 || 10)
    {
    printf("%d",i);
    i++;
    }
    else i++;
    }

    Naya es hat von 1 - 10 ausgegeben

  • Hey :\


    Irgendwie werden die Fraktionen bei meinem /makeleader befehl nicht gespeichert :\


    Sprich ich mach /makeleader xSpeciiaL 1 (1=Terror) , und ich kann keine Terror befehle benutzen ! Es geht nur wenn ich in der Datei die Fraktion auf 1 setze ! :o


    ocmd:makeleader(playerid,params[])
    {
    new pID;
    new frak;
    new Spieler[64];
    format(Spieler,sizeof(Spieler),"Spieler/%s.txt",PlayerName(pID));
    if(IsPlayerAnAdmin(playerid,3))
    {
    if(sscanf(params,"ui",pID,frak))return SendClientMessage(playerid,Rot,"Fehler: /makeleader [ID/Name] [FraktionsID] \nFraktionsID's: 1 - Terror | 2 - San News | 3 Terror");
    {
    //SendClientMessage(playerid,Rot,"FraktionsID's: 1 - Terror | 2 - San News | 3 Terror");
    if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,Rot,"Der Spieler exisitert nicht !");
    {
    if(dini_Int(Spieler,"Fraktion")!=0)return SendClientMessage(playerid,Rot,"Der Spieler ist bereits in einer Fraktion.");
    {
    if(dini_Int(Spieler,"Fraktion")==frak && dini_Int(Spieler,"Fraktionsrang")>=4)return SendClientMessage(playerid,Rot,"Der Spieler ist bereits Leader der Fraktion!");
    {
    dini_IntSet(Spieler,"Fraktionsrang",5);
    dini_IntSet(Spieler,"Fraktion",frak);
    SetPVarInt(pID,"Fraktionsrang",5);
    SetPVarInt(pID,"Fraktion",frak);
    if(dini_Int(Spieler,"Fraktion")==1)
    {
    ShowPlayerDialog(playerid,Dialog_skinauswahlTerror,DIALOG_STYLE_LIST,"Skinauswahl","Skin #1\nSkin #2","Auswählen","Anschauen");
    }
    if(dini_Int(Spieler,"Fraktion")==2)
    {
    ShowPlayerDialog(playerid,Dialog_skinauswahlTerror,DIALOG_STYLE_LIST,"Skinauswahl","Skin #1\nSkin #2\nSkin #3\nSkin #4\nSkin #5\nSkin #6","Auswählen","Anschauen");
    }
    new string[256];
    new string2[256];
    format(string,sizeof(string),"Du hast %s zu dem Leader der Fraktion %i gemacht !",PlayerName(pID),frak);
    format(string2,sizeof(string2),"Du wurdest von %s zu dem Leader der Fraktion %i gemacht !",PlayerName(playerid),frak);
    SendClientMessage(playerid,Gruen,string);
    SendClientMessage(pID,Gruen,string2);
    }
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist nicht befugt diesen Befehl zu benutzen.");
    return 1;
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen