Einen Befehl mit Verschiedenen auswählmöglichkeiten.

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
  • Guten Abend ;)


    Also, ich möchte ein Filterscipt machen.
    ich muss hir fragen da ich mich damit noch nie befasst habe.


    das heißt:
    Wenn ich jetzt /animation eingebe kommt ein fenster mit verschiedenen möglichkeiten die dahinter stehen können
    dann, muss man eingeben /animation [Animationsname] (die namen die am anfang in der liste standen.
    und da kommt meine lücke ^^
    kann mir jemand sagen wie ich das jetzt genau mache?
    ich brauche also nur das grundgerüst.
    den rest mit den adnimatione suche ich mir dann selber heraus.


    Ich bedanke mich schonmal bei den Mitgliedern ;)


    eine seite bei samp würde mir vllt auch weiterhelfen ;)


    Mit Freundlichen Grüßen,
    Wetze


    PS: Schöne Feiertage ;)

  • dcmd_animation(playerid,params[])
    {
    new anim[60];
    if(sscanf(params,"s",anim))
    {
    SendClientMessage(playerid,COLOR_GREEN,"_____________________Animationen_______________________");
    SendClientMessage(playerid,COLOR_WHITE,"* Animationen: /animation [Animationsname]");
    SCM(playerid,COLOR_WHITE, "** deine Animliste **");
    return 1;
    }
    if(strcmp(anim,"test",true) == 0)
    {
    // deine anim die du machen willst
    return 1;
    }
    return 1;
    }

  • Dafür bedanke ich mich ersteinmal herzlich ;)


    folgender fehler:

    Zitat

    C:\Users\Tim Wetzig\Desktop\Testserver\filterscripts\Animationen.pwn(52) : error 017: undefined symbol "sscanf"


    was muss ich dann noch machen?

  • stock sscanf(string[], format[], {Float,_}:...){ new name[MAX_PLAYER_NAME]; #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { setarg(paramPos, 0, _:floatstr(string[stringPos])); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0;}

    Für Script sachen immer offen: PM me <3 :D
    Geilster Server 4-EVER: 46.4.62.81:8111 :thumbup:

  • damit bekomme ich ja noch mehr errors.


    jetz kommt der error
    C:\Users\Tim Wetzig\Desktop\Testserver\filterscripts\Animationen.pwn(303) : error 017: undefined symbol "params"
    nochmal hilfe pls :D


    und nochwas, was bedeutet das "s" in der 4. zeile?


    mfg Wetze

  • So, ich hab den befehl umgeschrieben und dann kahm das dabei raus.

    if(strcmp(cmdtext, "/anim", true) == 0)
    {
    new anim[60];
    if(sscanf(cmdtext,"s",anim))
    {
    SendClientMessage(playerid,COLOR_GREEN,"_____________________Animationen_______________________");
    SendClientMessage(playerid,COLOR_WHITE,"* Animationen: /animation [Animationsname]");
    SendClientMessage(playerid,COLOR_WHITE, "** kiss1, kiss2, kiss3, kiss4, kiss5, kiss6 **");
    return 1;
    }
    if(strcmp(anim, "kiss1", true) == 0)
    {
    ApplyAnimation(playerid,"KISSING", "Grlfrd_Kiss_01", 1.800001, 0, 0, 0, 0, 0);
    return 1;
    }
    return 1:
    }


    so, jetzt kommt aber mein problem, wenn ich /anim eingebe kommt nicht die liste
    und wenn ich /anim kiss1 eingebe passiert nix, nur onknow kommand


    hilfe bitte ^^


    mfg Wetze

  • if(sscanf(cmdtext,"s",anim))return SendClientMessage(playerid, FARBE,"LISTE");