public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
vmid[playerid] = GetVehicleStatID(GetVehicleModel(vehicleid));
if(vmid[playerid] > -1) {
bptype[playerid] = 0;
#if(USE_TEXTDRAWS)
TextDrawHideForPlayer(playerid, bombtext[playerid]);
TextDrawDestroy(bombtext[playerid]);
KillTimer(removetimer[playerid]);
SetTimerEx("ShowTextDraw", 500, 0, "iii", playerid, vehicleid, 0);
#endif
}
return 1;
}
Mauzen
TextDrawHideForPlayer(playerid, bombtext[playerid]);
TextDrawDestroy(bombtext[playerid]);
KillTimer(removetimer[playerid]);
#define USE_TEXTDRAWS 1
forward RemoveTextDraw(playerid);
forward ShowTextDraw(playerid, vehicleid, count);
#if(USE_TEXTDRAWS)
public ShowTextDraw(playerid, vehicleid, count)
{
if(IsPlayerInVehicle(playerid, vehicleid)) {
bombtext[playerid] = TextDrawCreate(480, 200, " ");
TextDrawUseBox(bombtext[playerid], 1);
TextDrawBoxColor(bombtext[playerid], 0x00000066);
TextDrawFont(bombtext[playerid], 1);
UpdateTextDraw(playerid);
removetimer[playerid] = SetTimerEx("RemoveTextDraw", 2000, 1, "i", playerid);
TextDrawShowForPlayer(playerid, bombtext[playerid]);
} else {
count ++;
if(count < 20) SetTimerEx("ShowTextDraw", 500, 0, "iii", playerid, vehicleid, count);
}
}
public RemoveTextDraw(playerid)
{
if(!IsPlayerInAnyVehicle(playerid)) {
TextDrawHideForPlayer(playerid, bombtext[playerid]);
TextDrawDestroy(bombtext[playerid]);
KillTimer(removetimer[playerid]);
}
}
stock UpdateTextDraw(playerid)
{
new text[160] = " ";
#if(USE_TEXTDRAWS == 1)
if(bptype[playerid] == 0) text = "~r~Nothing~w~";
else text = "Nothing";
for(new i = 1; i < sizeof gBombTypes; i ++)
if(gVehicleBombs[vmid[playerid]][i + 1] == 1) {
if(bptype[playerid] == i) {
if(bfree[playerid] || !IsPlayerAllowedToDropBomb(playerid)) format(text, 160, "%s~n~~r~%s~w~", text, gBombTypes[i][bombName]);
else format(text, 160, "%s~n~~g~%s~w~", text, gBombTypes[i][bombName]);
} else format(text, 160, "%s~n~%s", text, gBombTypes[i][bombName]);
}
#elseif(USE_TEXTDRAWS == 2)
if(bfree[playerid] || bptype[playerid] == 0 || !IsPlayerAllowedToDropBomb(playerid)) format(text, 160, "~r~%s", gBombTypes[bptype[playerid]][bombName]);
else format(text, 160, "~g~%s", gBombTypes[bptype[playerid]][bombName]);
#endif
TextDrawSetString(bombtext[playerid], text);
}
bombtext[playerid] = TextDrawCreate(480, 200, " ");
TextDrawUseBox(bombtext[playerid], 1);
TextDrawBoxColor(bombtext[playerid], 0x00000066);
TextDrawFont(bombtext[playerid], 1);
TextDrawDestroy(bombtext[playerid]);
public ShowTextDraw(playerid, vehicleid, count)
{
if(IsPlayerInVehicle(playerid, vehicleid)) {
UpdateTextDraw(playerid);
removetimer[playerid] = SetTimerEx("RemoveTextDraw", 2000, 1, "i", playerid);
TextDrawShowForPlayer(playerid, bombtext[playerid]);
} else {
count ++;
if(count < 20) SetTimerEx("ShowTextDraw", 500, 0, "iii", playerid, vehicleid, count);
}
}
public RemoveTextDraw(playerid)
{
if(!IsPlayerInAnyVehicle(playerid)) {
TextDrawHideForPlayer(playerid, bombtext[playerid]);
KillTimer(removetimer[playerid]);
}
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
vmid[playerid] = GetVehicleStatID(GetVehicleModel(vehicleid));
if(vmid[playerid] > -1) {
bptype[playerid] = 0;
#if(USE_TEXTDRAWS)
TextDrawHideForPlayer(playerid, bombtext[playerid]);
KillTimer(removetimer[playerid]);
SetTimerEx("ShowTextDraw", 500, 0, "iii", playerid, vehicleid, 0);
#endif
}
return 1;
}
Create/Destroy the textdraw when player connects/disconnects
OnPlayerConnect: pawn Код:
pawn Код:
pawn Код:
pawn Код:
|
This is a FS, should i add OnPlayerConnect and OnPlayerDisconnect to it?
|
for(new i=0; i < MAX_PLAYERS; i++)
{
bombtext[i] = TextDrawCreate(480, 200, " ");
TextDrawUseBox(bombtext[i], 1);
TextDrawBoxColor(bombtext[i], 0x00000066);
TextDrawFont(bombtext[i], 1);
}
for(new i=0; i < MAX_PLAYERS; i++)
{
TextDrawDestroy(bombtext[i]);
}
OnPlayerConnect doesn't work well in FS.
Use OnFilterScriptInit and OnFilterScriptExit instead. OnFilterScriptInit: pawn Код:
pawn Код:
|