GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: Kassenoid - 2012. július 15. - 20:56:24

Cím: Carjump és Speedboost parancsok átírása
Írta: Kassenoid - 2012. július 15. - 20:56:24
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.
Cím: Carjump és Speedboost parancsok átírása
Írta: xXx - 2012. július 15. - 21:06:56
#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);
Cím: Carjump és Speedboost parancsok átírása
Írta: Kassenoid - 2012. július 16. - 12:16:12
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;
    }