Beiträge von hearteyy


    /*


    Dein Problem war, dass du immer ein if genommen hast. else if gehört hier rein.


    */


    if(!strcmp(strget(cmdtext,0),"/nehmwaffe"))
    {
    if(PlayerToPoint(5.0, playerid, -728.1709,1545.3650,39.0132)) { // wenn du 0.3 hast solltest du kein PlayerToPoint mehr benutzen ;)
    new gunz = strval(strget(cmdtext,1));
    new mats = PlayerInfo[playerid][Mats];


    if(!strlen(strget(cmdtext,1))) {
    SendClientMessage(playerid,0xFFFFFF,"Benutze: /nehmwaffe [Waffenname] ");
    SendClientMessage(playerid,0xFFFFFF,"Verfügbare Namen: ak47 (600) , deagle (250) , raketenwerfer (1300)");
    SendClientMessage(playerid,0xFFFFFF,"mp5 (350), rifle (700)");
    return true;
    }


    new ak47 = GivePlayerWeapon(playerid, 30, 250);
    new deagle = GivePlayerWeapon(playerid, 24, 100); // in dem Fall ist es echt übersichtlicher das so zu schreiben^^
    new raketenwerfer = GivePlayerWeapon(playerid, 35, 5);
    new mp5 = GivePlayerWeapon(playerid, 29, 180);
    new rifle = GivePlayerWeapon(playerid, 33, 50);


    if(gunz == ak47 && mats >= 600) {
    GivePlayerWeapon(playerid , ak47);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine AK47 mit 250 Schuss geholt!");
    mats -=600;
    }
    else if(gunz == deagle && mats >= 250) { // aus 2 if Abfragen eine gemacht
    GivePlayerWeapon(playerid, deagle);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Deagle mit 100 Schuss geholt!");
    mats -=250;
    }
    else if(gunz == raketenwerfer && mats >= 1300) {
    GivePlayerWeapon(playerid, raketenwerfer);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir einen Raketenwerfer mit 5 Schuss geholt");
    mats -=1300;
    }
    else if(gunz == mp5 && mats >= 350) {
    GivePlayerWeapon(playerid, mp5);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine MP5 mit 180 Schuss geholt!");
    mats -=350;
    }
    else if(gunz == rifle && mats >= 700) {
    GivePlayerWeapon(playerid, rifle);
    SendClientMessage(playerid, 0xFFFFFF, "Du hast dir eine Rifle mit 50 Schuss geholt!");
    mats -=700;
    }
    }
    return true;
    }


    Naja scheint für Anfänger nicht so gut zu sein da es viele Bugs hat,


    Der einzige mir bekannte Bug ist der mit dem Login. Wer dieses Script verwenden will kann sich auch ein Login/Registersystem Filterscript downloaden und einfügen, mir egal. ^^


    mfg
    surrender

    Hi,


    hier seht ihr mein erstes Release (vielleicht auch letztes kp).


    Es handelt sich um einen Reallife/Roleplay Gamemode, der eigentlich später für einen Server (Ultimate Roleplay) gedacht war.
    Da ich aber auf IV:MP umsteige (ein bisschen Eigenwerbung: IV:Roleplay) hab ich mir gedacht, lass ich den GM nich so vergammeln.
    Was er alles beinhaltet, seht ihr wenn ihr ihn aufmacht. ^^


    Wichtig


    Ihr müsst im Ordner scriptfiles noch zwei weitere Ordner erstellen: user und logs


    Bekannte Bugs


    - Das Login/Registersystem ist ziemlich unfertig/buggy. Die Sachen werden (soweit ich noch weiß), konkret gespeichert aber nicht geladen. Wer mir das hinbiegt bekommt fette Credits. ^^
    - Bei /login wird das PW nicht korrekt rausgelesen.


    Ist nichts großes, Posts & Downloads aber gerne gesehen. :D


    mfg
    surrender


    PS: Ist in eine .zip gepackt, weil ich hier keine 38KB uploaden darf. X(


    public OnPlayerRequestClass(playerid, classid)
    {
    if(classid == 0) {
    SetPlayerPos(1922.2555,-1117.0929,26.7295);
    SetPlayerCameraPos(playerid,1922.2555,-1117.0929,26.7295);
    //hier ist die zeile 37
    SetPlayerCameraLookAt(playerid,1922.2555,-1117.0929,26.7295);
    }
    else if(classid == 1) {
    SetPlayerPos(2489.6257,-1685.6521,13.5097);
    SetPlayerCameraPos(playerid,2489.6257,-1685.6521,13.5097);
    SetPlayerCameraLookAt(playerid,2489.6257,-1685.6521,13.5097);
    }
    return true;
    }

    Ey Nacho/Surrender dieser Thread ist im Bereich "Scriptwünsche" hmm also ich glaube das ist ein Thread wo man "wünsche" eusern kann und nicht wo man Spamt "Machs doch selbst"


    Ich habe ihm ledeglich einen Rat gegeben, wie man es selbst machen kann-.- Und das sogar mit Link.
    Wenn er sagt das nehme ich nich, ist mir das egal. Es war bloß ein Tipp.

    Ungetestet, ist ein Filterscript.



    #include <a_samp>


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    #define WHITE 0xFFFFFF00


    new WantedPickup;


    public OnGameModeInit()
    {
    WantedPickup = CreatePickup(1247, 3, X, Y, Z);
    }



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(wlevel, 6, cmdtext);
    return false;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SetPlayerWantedLevel(playerid, 0);
    return true;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == WantedPickup && GetPlayerWantedLevel(playerid) > 0)
    {
    SetPlayerWantedLevel(playerid, --);
    }
    }


    dcmd_wlevel(playerid, params[])
    {
    new typ, wanteds, name[MAX_PLAYER_NAME],tname[MAX_PLAYER_NAME], s[128];
    if(!IsPlayerAdmin(playerid)) return false;
    if(sscanf(params, "ui", typ, wanteds)) return SendClientMessage(playerid, WHITE, "* Verwendung: /wlevel [SpielerID/Name] [Sterne]");
    if(typ == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, WHITE, "* Diese ID ist nicht vergeben.");
    return true;
    }
    if(wanteds < 0 || wanteds > 6) return SendClientMessage(playerid, WHITE, "* Es darf nicht weniger als 0 und nicht mehr als 6 Wanteds vergeben werden.");
    SetPlayerWantedLevel(typ, wanteds);
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(playerid, name, sizeof(name));
    format(s, sizeof (s), "* %s hat %s (ID: %d) WantedLevel %d gegeben.", name, tname, typ, wanteds);
    SendClientMessageToAll(WHITE, s);
    return true;
    }


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #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;
    new
    name[MAX_PLAYER_NAME];
    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;
    }


    #include <a_samp>


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    #define WHITE 0xFFFFFF00


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(wlevel, 6, cmdtext);
    return false;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    SetPlayerWantedLevel(playerid, 0);
    return true;
    }


    dcmd_wlevel(playerid, params[])
    {
    new typ, wanteds, s[128];
    if(!IsPlayerAdmin(playerid)) return false;
    if(sscanf(params, "ui", typ, wanteds)) return SendClientMessage(playerid, WHITE, "* Verwendung: /wlevel [SpielerID/Name] [Sterne]");
    if(typ == INVALID_PLAYER_ID)
    {
    format(s,sizeof(s),"* Die ID %d ist nicht vergeben.",typ);
    SendClientMessage(playerid, WHITE, s);
    return true;
    }


    SetPlayerWantedLevel(typ, wanteds);


    format(s, sizeof (s), "* %s hat %s (ID: %d) %d WantedLevel gegeben.", GetPlayerName(playerid,s, sizeof(s)),GetPlayerName(typ,s, sizeof(s)),typ, s);
    SendClientMessageToAll(WHITE, s);
    return true;
    }


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #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;
    new
    name[MAX_PLAYER_NAME];
    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;
    }

    Was hat sowas mit der Postzahl zu tun?


    Du schreibst in deiner Sig, dass du kein Pawnosupport gibst, obwohl du selber immer bei den einfachsten Problemen Hilfe brauchst. Und das, nachdem du einen Gamemode selbst gemacht hast. Wenn der mal nicht Copy & Paste ist.


    Und ich wette mit dir, meine 209 Posts sind qualitativer als deine 1200 ;)