help making a drunk script
#1

Hi,

Im new to scripting, I'm just looking for a small peice of code where a user can type "/drunk"

and it will take 10hp and $80 off the user.


I found this on the forum:-

Код:
SetPlayerDrunkLevel (playerid, 5000);
any help / samples / starter bits will be awesome

thank!
Reply
#2

pawn Код:
if (!strcmp("/drunk", cmdtext, true))
{
        if ( GetPlayerMoney(playerid) < 80) return SendClientMessage(playerid, RED, "You Don't Have Enough Cash");
        SetPlayerHealth(playerid,90.0);
     SetPlayerDrunkLevel (playerid, 5000);
        GivePlayerMoney(playerid,-80);
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);
        return 1;
}
Setplayeraction will give them a beer bottle.
Reply
#3

Код:
#include <a_samp>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1



public OnFilterScriptInit()
{
	print("Drinking System");
	return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{

if (!strcmp("/drunk", cmdtext, true))
{
        if ( GetPlayerMoney(playerid) < 80) return SendClientMessage(playerid, "You Don't Have Enough Cash");
        SetPlayerHealth(playerid,90.0);
        SetPlayerDrunkLevel (playerid, 5000);
        GivePlayerMoney(playerid,-80);
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);
        return 1;

}
 return 0;
}

Quote:

C:\Program Files\Rockstar Games\GTA San Andreas\samp03asvr_R8_win32\filterscripts\drinking .pwn(19) : error 035: argument type mismatch (argument 2)
C:\Program Files\Rockstar Games\GTA San Andreas\samp03asvr_R8_win32\filterscripts\drinking .pwn(27) : warning 217: loose indentation

1 Error.

any help? sorry I'm a TOTAL noob at this!
Reply
#4

Sorry that was my fault. This should work I just tested it.

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/drunk", cmdtext, true, 6) == 0)// 6 is the length of "/drunk"
    {
        if(GetPlayerMoney(playerid) <80) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
        SetPlayerHealth(playerid,90.0);
        SetPlayerDrunkLevel (playerid, 5000);
        GivePlayerMoney(playerid,-80);
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);

        return 1;
    }
    return 0;
}
I forgot to add the colour code beside the "sendclientmessage"
Reply
#5

awesome, many thanks for that! and the quick response! ^_^ will try it very soon
Reply
#6

No problem.
Reply
#7

Hi,

just tested the script, the drunk thing works a treat, but it doesn't take money or HP.


it only take money + HP if they are driving
Reply
#8

Quote:
Originally Posted by sheepondrugs
Посмотреть сообщение
Hi,

just tested the script, the drunk thing works a treat, but it doesn't take money or HP.


it only take money + HP if they are driving
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/drunk", cmdtext, true, 6) == 0)// 6 is the length of "/drunk"
    {
        new Float:Health;
        if(GetPlayerMoney(playerid) <80) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
        if(!IsPlayerInAnyVehicle(playerid))
        {
        GetPlayerHealth(playerid, Health);
        SetPlayerHealth(playerid,Health-10);
        SetPlayerDrunkLevel (playerid, 5000);
        GivePlayerMoney(playerid,-80);
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);
        }
        else return SendClientMessage(playerid, 0xFFFFFF, "You can only use this on foot!");
        return 1;
    }
    return 0;
}
Reply
#9

Quote:
Originally Posted by (.Aztec);
Посмотреть сообщение
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/drunk", cmdtext, true, 6) == 0)// 6 is the length of "/drunk"
    {
        new Float:Health;
        if(GetPlayerMoney(playerid) <80) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
        if(!IsPlayerInAnyVehicle(playerid))
        {
        GetPlayerHealth(playerid, Health);
        SetPlayerHealth(playerid,Health-10);
        SetPlayerDrunkLevel (playerid, 5000);
        GivePlayerMoney(playerid,-80);
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);
        }
        else return SendClientMessage(playerid, 0xFFFFFF, "You can only use this on foot!");
        return 1;
    }
    return 0;
}
Improved in a way, but if your on foot you only get the drunk animation, it does not take money or health away.



The Full Code:

Код:
#include <a_samp>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1



public OnFilterScriptInit()
{
	print("Drinking System Loaded");
	return 1;
}



public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/drunk", cmdtext, true, 6) == 0)// 6 is the length of "/drunk"
    {
        new Float:Health;
        if(GetPlayerMoney(playerid) <80) return SendClientMessage(playerid, 0xFFFFFF, "You don't have enough cash.");
        if(!IsPlayerInAnyVehicle(playerid))
        {
        GetPlayerHealth(playerid, Health);
        SetPlayerHealth(playerid,Health-20);
        SetPlayerDrunkLevel (playerid, 5000);
        GivePlayerMoney(playerid,-80);
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);
        SendClientMessage(playerid, 0xFFFFFF, "You spend $80 on alcohol..");
        }
        else return SendClientMessage(playerid, 0xFFFFFF, "You can only use this on foot!");
        return 1;
    }
    return 0;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)