Всем гуд!
Не так давно нашел скрипт для сервера,действовал он так:при нажатии на "w" шел огонь из под колес,все бы не чего но постоянно ездить с огоньком надоедает,вообщем так как я так сказать ещё зелёный в скриптинге то я попросил знакомого сделать команду для включения и выключения данной функции,в итоге он мне это сделал,хочу отметить сколько не переворачивал интернет но подобные скрипты везде либо работают на прямую либо есть команды но без отключения.
Вот сам эдокий код:
Дефайны:
PHP код:
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
NEW:
PHP код:
new fire[MAX_PLAYERS],firee[MAX_PLAYERS],fireee[MAX_PLAYERS],fireeee[MAX_PLAYERS],fireeeee[MAX_PLAYERS],fireeeeee[MAX_PLAYERS],fireinfo[MAX_PLAYERS];
new bool:fireEnable[MAX_PLAYERS];
В public OnPlayerConnect(playerid) :
PHP код:
fireinfo[playerid] = 0;
fireEnable[playerid] = false;
В public OnPlayerCommandText(playerid, cmdtext[]):
PHP код:
if(strcmp("/firew", cmdtext, true) == 0)
{
if(fireEnable[playerid] == true)
{
fireEnable[playerid] = false;
SendClientMessage(playerid, -1, "[OFF] Огненные колеса выключены!");
}
else
{
fireEnable[playerid] = true;
SendClientMessage(playerid, -1, "[ON] Огненные колеса включены!");
}
return 1;
}
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys):
PHP код:
new model = GetPlayerVehicleID(playerid);
model = GetVehicleModel(model);
if(HOLDING(KEY_SPRINT) && fireEnable[playerid] == true)
{
if(model == 400||model == 401||model == 402||model == 404||model == 405||model == 410
||model == 411||model == 412||model == 413||model == 415||model == 418||model == 419
||model == 420||model == 421||model == 422||model == 426||model == 429||model == 436
||model == 438||model == 439||model == 440||model == 445||model == 451||model == 458
||model == 459||model == 466||model == 467||model == 470||model == 474||model == 475
||model == 477||model == 478||model == 479||model == 480||model == 482||model == 489
||model == 490||model == 491||model == 492||model == 494||model == 495||model == 496
||model == 500||model == 502||model == 503||model == 504||model == 505||model == 506
||model == 507||model == 516||model == 517||model == 518||model == 526||model == 527
||model == 528||model == 529||model == 533||model == 534||model == 535||model == 536
||model == 540||model == 541||model == 542||model == 543||model == 546||model == 547
||model == 549||model == 550||model == 551||model == 554||model == 555||model == 558
||model == 559||model == 560||model == 561||model == 562||model == 565||model == 566
||model == 567||model == 568||model == 575||model == 576||model == 579||model == 580
||model == 582||model == 585||model == 587||model == 589||model == 596||model == 597
||model == 598||model == 599||model == 600||model == 602||model == 603||model == 604||model == 605)
{
if(fireinfo[playerid] == 0)
{
fire[playerid] = CreateObject(18694,0,0,0,0,0,0);
firee[playerid] = CreateObject(18694,0,0,0,0,0,0);
fireee[playerid] = CreateObject(18694,0,0,0,0,0,0);
fireeee[playerid] = CreateObject(18694,0,0,0,0,0,0);
AttachObjectToVehicle(fire[playerid], GetPlayerVehicleID(playerid), -0.8, 2.0, -2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(firee[playerid], GetPlayerVehicleID(playerid), 0.8, 2.0, -2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(fireee[playerid], GetPlayerVehicleID(playerid), -0.8, -2.0, -2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(fireeee[playerid], GetPlayerVehicleID(playerid), 0.8, -2.0, -2.0, 0.0, 0.0, 0.0);
fireinfo[playerid] = 1;
}
}
if(model == 465||model == 448||model == 581||model == 522||model == 461||model == 521||model == 523||model == 463||model == 586||model == 468)
{
if(fireinfo[playerid] == 0)
{
fireeeee[playerid] = CreateObject(18694,0,0,0,0,0,0);
fireeeeee[playerid] = CreateObject(18694,0,0,0,0,0,0);
AttachObjectToVehicle(fireeeee[playerid], GetPlayerVehicleID(playerid), 0.0, 1.3, -2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(fireeeeee[playerid], GetPlayerVehicleID(playerid), 0.0, -1.3, -2.0, 0.0, 0.0, 0.0);
fireinfo[playerid] = 1;
}
}
}
else if(RELEASED(KEY_SPRINT) && fireEnable[playerid] == true)
{
if(fireinfo[playerid] == 1)
{
DestroyObject(fire[playerid]);
DestroyObject(firee[playerid]);
DestroyObject(fireee[playerid]);
DestroyObject(fireeee[playerid]);
DestroyObject(fireeeee[playerid]);
DestroyObject(fireeeeee[playerid]);
fireinfo[playerid] = 0;
}
}
Вот и все огонёк из под колес готов но как написано в названии данной темы Огонь/"лёд"
Так что теперь раскажу о команде лёд из под колес,эту команду увидел в другом моде но как и предыдущая эта команда не отключалась,в итоге я немного пошарил в интернете результат как и с прошлой командой,тобеш не удачен ,в итоге я наконец хотел попробывать сделать что-то своими руками кстати говоря получилось(если найдёте косяки говорите,наматаю себе на ус
) делал сий дело по примеру прошлой команды поменяв имена переменных(кстати все ровно не совсем понимаю как они взаимодействуют со всем) в итоге вот что у меня вышло:
new:
PHP код:
new bool:ledEnable[MAX_PLAYERS];
new ice[MAX_PLAYERS],ice2[MAX_PLAYERS],icee[MAX_PLAYERS],icee1[MAX_PLAYERS];
В public OnPlayerConnect(playerid):
PHP код:
ledEnable[playerid] = false;//led
В public OnPlayerCommandText(playerid, cmdtext[]):
PHP код:
if(strcmp("/led", cmdtext, true, 10) == 0)
{
if(ledEnable[playerid] == true)
{
ledEnable[playerid] = false;
DestroyObject(ice[playerid]);
DestroyObject(ice2[playerid]);
DestroyObject(icee[playerid]);
DestroyObject(icee1[playerid]);
SendClientMessage(playerid, COLOR_RED, "System:[OFF] Холодок ^_^");
}
else
{
ledEnable[playerid] = true;
icee[playerid] = CreateObject(18710,0,0,0,0,0,0);
ice[playerid] = CreateObject(18710,0,0,0,0,0,0);
icee1[playerid] = CreateObject(18710,0,0,0,0,0,0);
ice2[playerid] = CreateObject(18710,0,0,0,0,0,0);
AttachObjectToVehicle(icee[playerid], GetPlayerVehicleID(playerid), -0.8, 2.0, -2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(ice[playerid], GetPlayerVehicleID(playerid), 0.8, 2.0, -2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(icee1[playerid], GetPlayerVehicleID(playerid), 0.0, 1.3, -2.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(ice2[playerid], GetPlayerVehicleID(playerid), 0.0, -1.3, -2.0, 0.0, 0.0, 0.0);
SendClientMessage(playerid, COLOR_RED, "System:[On] Холодок! ^_^");
}
return 1;
}
Как-то так кароч..