Szerző Téma: Carjump és Speedboost parancsok átírása  (Megtekintve 833 alkalommal)

Carjump és Speedboost parancsok átírása
« Dátum: 2012. július 15. - 20:56:24 »
0 Show voters
Hello mindenki!
Ahogy már a cím is írja, azt kérném tõletek, ha van 1 kis fölös idõtök, légyszi írjatok át nekem két parancsot (úgyanúgy, tehát olyan, mintha csak 1-et kellene). Van egy scriptem, amiben van carjump és speedboost:
 
#include <a_samp>
new Float:Speed[MAX_PLAYERS];
new Float:Jump[MAX_PLAYERS];
public OnFilterScriptInit()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
    if (IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
        Speed = 1.25;
    }
}
for (new i = 0; i < MAX_PLAYERS; i++)
{
    if (IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
        Jump = 0.2;
    }
}
return 1;
}
 
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/speedon\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0x00CC00AA,\"Jármû gyorsítás bekapcsolva. A num 8 billentyûvel tudsz gyorsítani, ha jármûben vagy.\");
new name[24], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), \"%s bekapcsolta a jármû gyorsítást!\", name);
SendClientMessageToAll(0x00CC00AA, string);
        Speed[playerid] = 1.25;
        return 1;
    }
if (strcmp(\"/speedoff\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFF0000AA,\"Jármû gyorsítás kikapcsolva.\");
        new name[24], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), \"%s kikapcsolta a jármû gyorsítást!\", name);
SendClientMessageToAll(0xFF0000AA, string);
        Speed[playerid] = 1.00;
        return 1;
    }
      if (strcmp(\"/jumpon\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0x00CC00AA,\"Jármû ugrás bekapcsolva. A H billentyûvel tudsz ugrani, ha jármûben vagy.\");
new name[24], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), \"%s bekapcsolta a jármû ugrást!\", name);
SendClientMessageToAll(0x00CC00AA, string);
        Jump[playerid] = 0.2;
        return 1;
    }
if (strcmp(\"/jumpoff\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFF0000AA,\"Jármû ugrás kikapcsolva.\");
        new name[24], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), \"%s kikapcsolta a jármû ugrást!\", name);
SendClientMessageToAll(0xFF0000AA, string);
        Jump[playerid] = 0.0;
        return 1;
    }
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
//=========================================================================================
//Carjump:
    if(newkeys & KEY_CROUCH)
    {
    new Float:x, Float:y, Float:z;
    GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
    SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z + Jump[playerid]);
    }
//=========================================================================================
//SpeedBoost:
if (IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
                if (newkeys & KEY_ANALOG_UP
)
                {
                    new Float:vx, Float:vy, Float:vz;
                    GetVehicleVelocity(GetPlayerVehicleID(playerid), vx, vy, vz);
                    if (floatabs(vx) < 3 && floatabs(vy) < 3 && floatabs(vz) < 3)
                    {
                        SetVehicleVelocity(GetPlayerVehicleID(playerid), vx * Speed[playerid], vy * Speed[playerid], vz * Speed[playerid]);
                    }
                    return 1;
                }

 
Úgy kellene átírni a parancsokat, hogyha már valaki bekapcsolta a speedet vagy a jumpot, akkor ne küldjön mindenkinek üzit, csak annak, aki bekapcsolta.
Elõre is kösz mindenkinek.

xXx

  • Vendég
Carjump és Speedboost parancsok átírása
« Válasz #1 Dátum: 2012. július 15. - 21:06:56 »
0 Show voters
#include <a_samp>
new Float:Speed[MAX_PLAYERS];
new Float:Jump[MAX_PLAYERS];
public OnFilterScriptInit()
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
    if (IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
        Speed = 1.25;
    }
}
for (new i = 0; i < MAX_PLAYERS; i++)
{
    if (IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
        Jump = 0.2;
    }
}
return 1;
}
 
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/speedon\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0x00CC00AA,\"Jármû gyorsítás bekapcsolva. A num 8 billentyûvel tudsz gyorsítani, ha jármûben vagy.\");
        Speed[playerid] = 1.25;
        return 1;
    }
if (strcmp(\"/speedoff\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFF0000AA,\"Jármû gyorsítás kikapcsolva.\");
        Speed[playerid] = 1.00;
        return 1;
    }
      if (strcmp(\"/jumpon\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0x00CC00AA,\"Jármû ugrás bekapcsolva. A H billentyûvel tudsz ugrani, ha jármûben vagy.\");
        Jump[playerid] = 0.2;
        return 1;
    }
if (strcmp(\"/jumpoff\", cmdtext, true, 10) == 0)
    {
        SendClientMessage(playerid,0xFF0000AA,\"Jármû ugrás kikapcsolva.\");
        Jump[playerid] = 0.0;
        return 1;
    }
return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
//=========================================================================================
//Carjump:
    if(newkeys & KEY_CROUCH)
    {
    new Float:x, Float:y, Float:z;
    GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z);
    SetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z + Jump[playerid]);
    }
//=========================================================================================
//SpeedBoost:
if (IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
                if (newkeys & KEY_ANALOG_UP
)
                {
                    new Float:vx, Float:vy, Float:vz;
                    GetVehicleVelocity(GetPlayerVehicleID(playerid), vx, vy, vz);
                    if (floatabs(vx) < 3 && floatabs(vy) < 3 && floatabs(vz) < 3)
                    {
                        SetVehicleVelocity(GetPlayerVehicleID(playerid), vx * Speed[playerid], vy * Speed[playerid], vz * Speed[playerid]);
                    }
                    return 1;
                }

 
Amúgy csak ezeket kellet kitörölni:
new name[24], string[128];
   GetPlayerName(playerid, name, sizeof(name));
   format(string, sizeof(string), \"%s kikapcsolta a jármû gyorsítást!\", name);
   SendClientMessageToAll(0xFF0000AA, string);
« Utoljára szerkesztve: 2012. július 15. - 21:09:04 írta xXx »

Carjump és Speedboost parancsok átírása
« Válasz #2 Dátum: 2012. július 16. - 12:16:12 »
0 Show voters
Hát köszi a segítséget, de én úgy gondoltam, hogy ha elõször kapcsolja be, tehát ha ki van neki kapcsolva és bekapcsolja, akkor küld mindenkinek üzit, de ha be van kapcsolva már és megint beírja, hogy /speedon, akkor nem küld mindenkinek üzit, akkor küld csak a playernek.

Dupla hozzászólás automatikusan összefûzve. ( 2012. július 18. - 08:52:08 )

Esetleg valaki más?
Szerk.:
Ha valakinek ez segít, eddig jutottam, de így mindenkinek kiírja, hogy bekapcsoltam (amikor már be volt), de nekem már azt írja, amit írtam, hogy már be van kapcsolva (nekem úgy kéne, hogy csak nekem írja ki, amikor már be volt kapcsolva és újra bekapcsoltam, a többi playernek meg ne írjon semmit).
 
   if (strcmp(\"/speedon\", cmdtext, true, 10) == 0)
    {
        if(Speed[playerid]==1.00)
        SendClientMessage(playerid,0x00CC00AA,\"Jármû gyorsítás bekapcsolva. A num 8 billentyûvel tudsz gyorsítani, ha jármûben vagy.\");
new name[24], string[128];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), \"%s bekapcsolta a jármû gyorsítást!\", name);
SendClientMessageToAll(0x00CC00AA, string);
Speed[playerid] = 1.25;
        if(Speed[playerid]==1.25) SendClientMessage(playerid,0xFF0000AA,\"A jármû gyorsítás már be van kapcsolva.\");
        return 1;
    }
« Utoljára szerkesztve: 2012. július 18. - 12:22:00 írta Kassenoid »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal