Usedrugs nach 12 Drogen für 10Sekunden begifft sein

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
  • Hey, ich wollte es so machen, das wenn man mehr als 12x Drogen genommen hat, soll man für 30Sekunden bekifft auf den Boden liegen doch ich weiß nicht genau wie es gehen soll bzw. klappt nicht :o



    if(strcmp("/usedrugs", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pDrugs] >= 2)
    {
    new Float:Health;
    if(drugtime[playerid] > gettime())return SendClientMessage(playerid,COLOR_ERRORTEXT," Du kannst nur jede 20 Sekunden Drogen nehmen!");
    drugtime[playerid] = gettime()+20;
    GetPlayerName(playerid,sendername,sizeof(sendername));
    GetPlayerHealth(playerid, Health);
    PlayerStoned[playerid] += 1;
    if(PlayerStoned[playerid] >= 12)
    {
    PlayerStonedTime[playerid] = 4;
    }
    if(PlayerStonedTime[playerid] > 0)
    {
    GameTextForPlayer(playerid, "~w~Du bist~n~~p~bekifft", 4000, 1);
    //SetPlayerDrunkLevel(playerid,GetPlayerDrunkLevel(playerid) +3000);
    }
    if(PlayerInfo[playerid][pDrugPerk] > 0)
    {
    new hp = 5 * PlayerInfo[playerid][pDrugPerk];
    SetPlayerHealth(playerid, Health + hp);
    }
    else
    {
    SetPlayerHealth(playerid, Health + 4);
    }
    PlayerInfo[playerid][pDrugs] -= 2;
    OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger
    format(string, sizeof(string), "* %s pfeift sich 2 Gramm getrocknetes Gras rein.", sendername);
    ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    format(string,sizeof(string),"* %s nutzt usedrugs", sendername);
    EnterToLog("usedrugs",string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du hast keine Drogen !");
    }
    }
    return 1;

  • Hier dein Befehl:
    if(strcmp("/usedrugs", cmd, true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pDrugs] >= 2)
    {
    new Float:Health;
    if(drugtime[playerid] > gettime())return SendClientMessage(playerid,COLOR_ERRORTEXT," Du kannst nur jede 20 Sekunden Drogen nehmen!");
    drugtime[playerid] = gettime()+20;
    GetPlayerName(playerid,sendername,sizeof(sendername));
    GetPlayerHealth(playerid, Health);
    PlayerStoned[playerid] += 1;
    if(PlayerStoned[playerid] >= 12)
    {
    PlayerStonedTime[playerid] = 4;
    SetTimerEx("EndDrunkLevel",30000,false,"i",playerid);
    }
    if(PlayerStonedTime[playerid] > 0)
    {
    GameTextForPlayer(playerid, "~w~Du bist~n~~p~bekifft", 4000, 1);
    //SetPlayerDrunkLevel(playerid,GetPlayerDrunkLevel(playerid) +3000);
    }
    if(PlayerInfo[playerid][pDrugPerk] > 0)
    {
    new hp = 5 * PlayerInfo[playerid][pDrugPerk];
    SetPlayerHealth(playerid, Health + hp);
    }
    else
    {
    SetPlayerHealth(playerid, Health + 4);
    }
    PlayerInfo[playerid][pDrugs] -= 2;
    OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger
    format(string, sizeof(string), "* %s pfeift sich 2 Gramm getrocknetes Gras rein.", sendername);
    ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    format(string,sizeof(string),"* %s nutzt usedrugs", sendername);
    EnterToLog("usedrugs",string);
    }
    else
    {
    SendClientMessage(playerid, COLOR_ERRORTEXT, " Du hast keine Drogen !");
    }
    }
    return 1;


    Dann musst du oben im Script hinzufügen:
    forward EndDrunkLevel(playerid);


    und irgendwo im Script:


    public EndDrunkLevel(playerid)
    {
    if(PlayerStonedTime[playerid] != 0)
    {
    SetPlayerDrunkLevel(playerid,0);
    GameTextForPlayer(playerid,"Du bist nichtmehr bekifft",4000,1);
    PlayerStonedTime[playerid] = 0;
    return 1;
    }
    return 1;
    }


    die Zeit kannst du in millisekunden bei SetTimerEx einstellen.