Drogen & Erntesystem

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 Tag,


    ein Kumpel sucht ein Drogen Ernte und Pflanzsystem,

    das einzige Problem ist er weiß nicht wie es geht

    bwz wie man sowas Scripten soll.

    Könntet ihr hier ein Filterscript oder auch ein

    Code posten?


    Habe zwar eins gefunden es sind aber Zwei Error drinne:


    C:\Users\Max\Desktop\Testserver\filterscripts\Drogen.pwn(204) : error 001: expected token: "#endif", but found "-end of file-"
    C:\Users\Max\Desktop\Testserver\filterscripts\Drogen.pwn(204) : warning 203: symbol is never used: "WEEDhaben"


    #include <a_samp>


    //----------------------------------------------------------------


    #define COLOR_RED 0xFF0000AA
    #define COLOR_GREEN 0x33AA33AA33AA


    new weedobject;
    new WEEDGramm[MAX_PLAYERS];
    new Float:XWeed, Float:YWeed, Float:ZWeed;
    new WEEDgepflanzt[MAX_PLAYERS] = 0;
    new WEEDgegossen[MAX_PLAYERS] = 0;
    new WEEDhaben[MAX_PLAYERS] = 0;


    enum AcceptInfo
    {
    gewicht,
    preis,
    dealer
    }


    new Accept[MAX_PLAYERS][AcceptInfo];
    new WEEDgramm[MAX_PLAYERS];


    //----------------------------------------------------------------


    #define FILTERSCRIPT


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n-------------------------------------------------------");
    print(" Weed - System by BMGP alias NWC Daniel...... 100% loaded");
    print("-------------------------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }





    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }





    public OnPlayerCommandText(playerid, cmdtext[])
    {


    new cmd[128];
    new tmp[128];
    new giveplayerid, moneys, idx;


    //--------------------------------------------------------------------

    if(!strcmp(cmd, "/weedpflanzen", true))
    {
    if(WEEDgepflanzt[playerid] == 0)
    {

    GetPlayerPos(playerid,XWeed,YWeed,ZWeed);
    weedobject = CreateObject(823, XWeed, YWeed, ZWeed - 3, 0, 0, 0);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast Weed erfolgreich angebaut!");
    WEEDgepflanzt[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast schon Weed angebaut.");
    }
    return 1;
    }

    if(!strcmp(cmd, "/weedgiessen", true))
    {
    if(WEEDgepflanzt[playerid] == 1)
    {
    WEEDgegossen[playerid] = 1;
    MoveObject(weedobject, XWeed, YWeed, ZWeed , 0.05);
    SendClientMessage(playerid,COLOR_GREEN,"Du hast das Weed erfolgreich gegossen. Es wächst nun.");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst zuerst WeedSamen pflanzen um das Weed zu giessen!");
    }
    return 1;
    }

    if(!strcmp(cmd, "/weedernten", true))
    {
    if(WEEDgepflanzt[playerid] == 1)
    {
    if(WEEDgegossen[playerid] == 1)
    {
    WEEDGramm[playerid]++;
    SendClientMessage(playerid,COLOR_GREEN,"Weed erfolgreich geerntet!");
    WEEDgepflanzt[playerid] = 0;
    DestroyObject(weedobject);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst das Weed zuerst giessen damit es wächst!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst das Weed zuerst pflanzen und dann giessen!");
    }


    return 1;
    }




    if(!strcmp(cmd,"/accept",true))
    {
    if(Accept[playerid][gewicht] <= 0 || Accept[playerid][preis] <= 0) return SendClientMessage(playerid,COLOR_GREEN,"*** Du hast kein Angebot!");
    if(GetPlayerMoney(playerid) < Accept[playerid][preis]) return SendClientMessage(playerid,COLOR_GREEN,"*** Du hast kein Geld dafür im Moment!");
    WEEDgramm[playerid] += Accept[playerid][gewicht];
    GivePlayerMoney(playerid, -Accept[playerid][preis]);
    SendClientMessage(playerid,COLOR_GREEN,"*** Weed angenommen. Viel Spaß damit !");
    GivePlayerMoney(Accept[playerid][dealer],Accept[playerid][preis]);
    Accept[playerid][gewicht] = 0;
    Accept[playerid][preis] = 0;
    Accept[playerid][dealer] = 0;
    // Was auch immer
    return 1;
    }

    if(!strcmp(cmd,"/weedsell",true))
    {
    if(WEEDgramm[playerid] == 0) return SendClientMessage(playerid,COLOR_GREEN,"*** Du hast kein Weed (0 Gramm)");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"USE: /weedsell [ID] [GRAMM] [PREIS]!");
    giveplayerid = ReturnUser(tmp);
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid,COLOR_GREEN,"*** Angegebener User nicht online!");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"USE: /weedsell [ID] [GRAMM] [PREIS]!");
    new gramm = strval(tmp);
    if(gramm <= 0 || gramm >= 1000) return SendClientMessage(playerid,COLOR_GREEN,"*** Gramm muss zwischen 1 und 999 sein!");
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_GREEN,"USE: /weedsell [ID] [GRAMM] [PREIS]!");
    moneys = strval(tmp);
    if(moneys <= 0) return SendClientMessage(playerid,COLOR_GREEN,"*** Preis muss über 0 sein!");
    SendClientMessage(playerid,COLOR_GREEN,"*** Weedangebot abgegeben!");
    Accept[giveplayerid][gewicht] = gramm;
    Accept[giveplayerid][preis] = moneys;
    Accept[giveplayerid][dealer] = playerid;
    return 1;
    }
    //--------------------------------------------------------------------

    return 0;
    }


    stock ReturnUser(strings[])
    {
    new count = 0;
    new len = strlen(strings);
    if(len > 3)
    {
    for(new i = 0; i < MAX_PLAYERS;i++)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(i,name,sizeof(name));
    if(!strcmp(name,strings,false,MAX_PLAYER_NAME))
    {
    return i;
    }
    else
    {
    count = 1;
    }
    }
    }
    else
    {
    return strval(strings);
    }
    return (count == 1) ? (INVALID_PLAYER_ID) : (strval(strings));
    }

  • Es ist ja auf jedenfall ein Filterscript also nimm einfach #define FILTERSCRIPT und if defined raus.

  • Hast du vielleicht ein bisschen zu wenig kopiert?
    Probier mal als aller letztes also bei linie 204
    #endif zu schreiben,
    dass signalisiert dem script das es dort aufhört.

  • Das Script hat funktioniert, jedoch jedem eingegebenen Befehl hat sich weed gepflanzt.