SA-MP Forums Archive
Script Working in part.... - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Script Working in part.... (/showthread.php?tid=302080)



Script Working in part.... - Gooday - 07.12.2011

pawn Код:
/*
|.----------------.
| .--------------. ||
| | ____    ____ | ||
| |_   \  /   _| | ||
| |  |   \/   |  | ||
| |  | |\  /| |  | ||
| | _| |_\/_| |_ | ||
| ||_____||_____|| ||
| |              | ||
| '--------------' ||
 '----------------'   's Roadblock

Free to use on the following conditions:

    *Do not re-release edited versions without my permision
    *Do not and NEVER clame this as your own, not even an edit!
    *Say thanks on the sa-mp forums if you like ;)
    *Give reputation if you love it :D


----------------UPDATES:--------------------------------------------------------
- You can edit the EXPIRE_MINUTES now
- CMD: /rb /deleteall
*/



#include <a_samp>
#include <zcmd>
#include <sscanf2>
#define COLOR_INVISIBLE 0xFFFFFF00
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_BLACK 0x000000FF
#define COLOR_BLUE 0x0000DDFF
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x00FF00FF
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_YELLOWORANGE 0xE8D600FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_ORANGE 0xFF5F11FF
#define ORANGE 0xF4B906FF
#define COLOR_BROWN 0x804000FF
#define COLOR_CYAN 0x00FFFFFF
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_PINK 0xFF80C0FF

#define EXPIRE_MINUTES  15 //after x minutes the roadblocks expire
#define MAX_ROADBLOCKS  150//maximum roadblocks in server
#define SEND            false//if someone adds a roadblock ? You want let everyone know ? true = yes, false = no

new block[MAX_ROADBLOCKS][MAX_PLAYERS], atblock[MAX_PLAYERS], pName[MAX_PLAYER_NAME],string[128];
#pragma tabsize 0
public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" [MV]_Roadblock Loades Succesfully ");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

public OnPlayerConnect(playerid)
{
    SendClientMessage(playerid,COLOR_YELLOW," ");
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    SendClientMessage(playerid,COLOR_YELLOW," ");
    return 1;
}

CMD:removeblock(playerid,params[])
{
    for(new i=0;i<=sizeof(block);i++) DestroyObject(block[i][playerid]);
    return 1;
}

CMD:rb(playerid, params[])
            return cmd_roadblock(playerid, params);

CMD:roadblock(playerid,params[])
{
        new number, atrb = atblock[playerid];
        if(sscanf(params,"d",number))
        {
            SendClientMessage(playerid,COLOR_LIGHTBLUE,"USAGE: /rb <1/2/3/4>");
            SendClientMessage(playerid,COLOR_LIGHTBLUE,"| 1: Small Roadblock");
            SendClientMessage(playerid,COLOR_LIGHTBLUE,"| 2: Barrier");
            SendClientMessage(playerid,COLOR_LIGHTBLUE,"| 3: Traffic cone");
            SendClientMessage(playerid,COLOR_LIGHTBLUE,"| 4: Detour sign");
            SendClientMessage(playerid,COLOR_WHITE,"----------------------");
            format(string, sizeof string,"The roadblock will expire after %i minutes, or use /REMOVEBLOCK for remove the lastest block.",EXPIRE_MINUTES);
            SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
            return 1;
        }

        switch(number)
        {
            case 1:
            {
                    new Float:X, Float:Y, Float:Z, Float:A;
                    GetPlayerPos(playerid, X, Y, Z);
                    GetPlayerFacingAngle(playerid, A);
                    if(atblock[playerid] < MAX_ROADBLOCKS)
                    {
                        block[atrb][playerid] = CreateObject(1459, X, Y+1, Z-0.5,0,0,A);
                        GameTextForPlayer(playerid,"~w~Roadblock ~b~Placed!",3000,1);
                        #if SEND == true
                        GetPlayerName(playerid,pName,32);
                        format(string,sizeof (string)," %s added a roadblock(%i).",pName,number);
                        SendClientMessageToAll(COLOR_GREEN, string);
                        #else
                        SetTimerEx("ExpireRoadblock", EXPIRE_MINUTES*60000, false, "i", block[atrb][playerid]);
                        atblock[playerid] += 1;
                        #endif
                    } else {
                        format(string,sizeof string,"You cannot place more then %i Roadblocks!",MAX_ROADBLOCKS);
                        SendClientMessage(playerid, COLOR_RED, string);
                    }
                    return 1;
            }


            case 2:
            {
                    new Float:X, Float:Y, Float:Z, Float:A;
                    GetPlayerPos(playerid, X, Y, Z);
                    GetPlayerFacingAngle(playerid, A);
                    if(atblock[playerid] < MAX_ROADBLOCKS)
                    {
                        block[atrb][playerid] = CreateObject(978, X, Y+1, Z,0,0,A);
                        GameTextForPlayer(playerid,"~w~Roadblock ~b~Placed!",3000,1);
                        #if SEND == true
                        GetPlayerName(playerid,pName,32);
                        format(string,sizeof string,"%s added a roadblock(%i).",pName,number);
                        SendClientMessageToAll(COLOR_GREEN, string);
                        #else
                        SetTimerEx("ExpireRoadblock", EXPIRE_MINUTES*60000, false, "i", block[atrb][playerid]);
                        atblock[playerid] += 1;
                        #endif
                    } else {
                       format(string,sizeof string,"You cannot place more then %i Roadblocks!",MAX_ROADBLOCKS);
                        SendClientMessage(playerid, COLOR_RED, string);
                    }
                    return 1;
            }


            case 4:
            {
                    new Float:X, Float:Y, Float:Z, Float:A;
                    GetPlayerPos(playerid, X, Y, Z);
                    GetPlayerFacingAngle(playerid, A);
                    if(atblock[playerid] < MAX_ROADBLOCKS)
                    {
                        block[atrb][playerid] = CreateObject(1238, X, Y+1, Z-0.5, 0, 0.0,A);
                        GameTextForPlayer(playerid,"~w~Cone ~b~Placed!",3000,1);
                        #if SEND == true
                        GetPlayerName(playerid,pName,32);
                        format(string,sizeof string," %s added a roadblock(%i).",pName,number);
                        SendClientMessageToAll(COLOR_GREEN, string);
                        #else
                        SetTimerEx("ExpireRoadblock", EXPIRE_MINUTES*60000, false, "i", block[atrb][playerid]);
                        atblock[playerid] += 1;
                        #endif
                    } else {
                        format(string,sizeof string,"You cannot place more then %i Roadblocks!",MAX_ROADBLOCKS);
                        SendClientMessage(playerid, COLOR_RED, string);
                    }
                    return 1;
            }

            case 5:
            {
                    new Float:X, Float:Y, Float:Z, Float:A;
                    GetPlayerPos(playerid, X, Y, Z);
                    GetPlayerFacingAngle(playerid, A);
                    if(atblock[playerid] < MAX_ROADBLOCKS)
                    {
                        block[atrb][playerid] = CreateObject(1425, X, Y+1, Z-0.5, 0, 0.0,A,300);
                        GameTextForPlayer(playerid,"~w~Sign ~b~Placed!",3000,1);
                        #if SEND == true
                        GetPlayerName(playerid,pName,32);
                        format(string,sizeof string," %s added a roadblock(%i).",pName,number);
                        SendClientMessageToAll(COLOR_GREEN, string);
                        #else
                        SetTimerEx("ExpireRoadblock", EXPIRE_MINUTES*60000, false, "i", block[atrb][playerid]);
                        atblock[playerid] += 1;
                        #endif
                    } else {
                        format(string,sizeof string,"You cannot place more then %i Roadblocks!",MAX_ROADBLOCKS);
                        SendClientMessage(playerid, COLOR_RED, string);
                    }
                    return 1;
            }

       
            }
    return 1;
}


forward ExpireRoadblock(blockid);
public ExpireRoadblock(blockid)
{
    DestroyObject(blockid);
    return 1;
}
When i go IG i see "roadblock placed" but i cant see the Roadblock :O hELP +REP...
*I Was modify the script for the server, and the script owner is in the server credits!


Re: Script Working in part.... - [MG]Dimi - 07.12.2011

Had same problem a while ago. For me it got created after I move from position I was when I typed the command.


Re: Script Working in part.... - jaydon - 07.12.2011

not sure if this is the problem but the case starts with 0 soo it would be
pawn Код:
case 0:



Re: Script Working in part.... - Gooday - 08.12.2011

Quote:
Originally Posted by [MG]Dimi
Посмотреть сообщение
Had same problem a while ago. For me it got created after I move from position I was when I typed the command.
So how i could fix it?


Re: Script Working in part.... - iggy1 - 08.12.2011

If you are in a vehicle when you use the command try getting out. Some objects stay invisible (if in a vehicle) until you leave the vehicle. I have only noticed this with some objects added since 0.3c (so not sure if it will help), the col files are loaded but not the textures. The problem [MG]Dimi had is probably from the streamer plugin, it doesn't load newly created objects for players until they move.