Wysłany: 2012-10-07, 10:34
zuraw13
Wiek: 27 Na forum: 5074 dni Posty: 95
Nick w MP: zuraw113
Piwa : 191
Tempomat, jak zmieni? klawisz z 2 na 1/3/5/6/7/8/9 [/ to jest jako lub].
Chcia?bym to zmieni?, poniewa? mam mapk? Polskie Paty i w niej ju? jest naprawa na klawisz 2.
Kod: #include <a_samp>
#define FILTERSCRIPT
#define COLOR1 0xf65d5dff
#define COLOR2 0xf65d5dff
#define COLOR3 0x5ed927ff
#define COLOR4 0xd9c227ff
#define TIMER_DELAY 500
#define ENABLING 3
#define foreach(Player,%1) for(new %1; %1 <= HighestPlayerID; %1++) if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
#define GetAngleBetweenCoordinates(%1,%2,%3,%4) (atan2(floatabs(%3 - %1), floatabs(%4 - %2)))
new Slots,
HighestPlayerID;
forward Tempomat_Refresh();
forward Tempomat_Version(index, response_code, data[]);
Float:GetHeadingAngle(Float:targetX, Float:targetY, Float:entityX, Float:entityY)
{
new
Float:vectorX = targetX - entityX,
Float:vectorY = targetY - entityY,
Float:HeadingAngle;
HeadingAngle = atan(-(vectorX/vectorY));
if(vectorY < 0)
HeadingAngle = (HeadingAngle >= 180) ? HeadingAngle - 180.0 : HeadingAngle + 180.0;
return HeadingAngle;
}
public OnFilterScriptInit()
{
Slots = GetMaxPlayers();
for(new playerid; playerid < Slots; playerid++)
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
HighestPlayerID = playerid;
SetTimer("Tempomat_Refresh", TIMER_DELAY, 1);
print("W??czono tempomat ");
return 1;
}
public OnFilterScriptExit()
return print("Wy??czono tempomat ");
public OnPlayerConnect(playerid)
{
if(playerid > HighestPlayerID && !IsPlayerNPC(playerid))
HighestPlayerID = playerid;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
for(new player; player < Slots; player++)
if(IsPlayerConnected(player) && !IsPlayerNPC(player))
HighestPlayerID = playerid;
return 1;
}
#if ENABLING == 1 || ENABLING == 3
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/tempomat", true)
|| !strcmp(cmdtext, "/cruise-control", true)
|| !strcmp(cmdtext, "/cruisecontrol", true))
return EnableCruiseControl(playerid);
return 0;
}
#endif
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_DRIVER && GetPVarInt(playerid, "Tempomat_Enabled") == 1)
DisableCruiseControl(playerid);
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPVarInt(playerid, "Tempomat_Enabled") == 1)
{
#if ENABLING == 2 || ENABLING == 3
if(newkeys & KEY_SUBMISSION)
return DisableCruiseControl(playerid);
#endif
if(newkeys & 8 || newkeys & 32 || newkeys & 128)
return DisableCruiseControl(playerid);
}
#if ENABLING == 2 || ENABLING == 3
else
{
if(newkeys & KEY_SUBMISSION)
return EnableCruiseControl(playerid);
}
#endif
}
return 1;
}
public Tempomat_Refresh()
{
new vehicleid,
Float:rotZ,
Float:velX,
Float:velY,
Float:velZ,
Float:speed;
foreach(Player, playerid)
{
vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid != 0 && GetPVarInt(playerid, "Tempomat_Enabled") == 1)
{
speed = GetPVarFloat(playerid, "Tempomat_Speed");
GetVehicleVelocity(vehicleid, velX, velY, velZ);
if(velX == 0.0 && velY == 0.0 && velZ == 0.0)
GetVehicleZAngle(vehicleid, rotZ);
else
rotZ = Float:GetHeadingAngle(velX, velY, 0.0, 0.0);
SetVehicleVelocity(vehicleid, speed * floatsin(-rotZ, degrees), speed * floatcos(-rotZ, degrees), velZ);
}
}
return 1;
}
EnableCruiseControl(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
SendClientMessage(playerid, COLOR1, "Tempomat mo?esz w??czy? tylko jako kierowca.");
else if(GetPVarInt(playerid, "Tempomat_Enabled") != 0)
SendClientMessage(playerid, COLOR1, "Tempomat jest ju? w??czony, aby wy??czy? wci?nij przycisk jazdy do przodu / ty?u lub hamulec.");
else
{
new vehicleid = GetPlayerVehicleID(playerid),
Float:velX,
Float:velY,
Float:velZ;
GetVehicleVelocity(vehicleid, velX, velY, velZ);
new Float:speed = floatsqroot(velX * velX + velY * velY + velZ * velZ);
if(speed > 0.1)
{
SetPVarFloat(playerid, "Tempomat_Speed", speed);
SetPVarInt(playerid, "Tempomat_Enabled", 1);
SendClientMessage(playerid, COLOR3, "Tempomat w??czony, aby wy??czy?, wci?nij przycisk jazdy do przodu / ty?u lub hamulec.");
}
else
SendClientMessage(playerid, COLOR3, "Nie mo?esz w??czy? tempomatu przy takiej pr?dko?ci. Przyspiesz!");
}
return 1;
}
DisableCruiseControl(playerid)
{
DeletePVar(playerid, "Tempomat_Enabled");
DeletePVar(playerid, "Tempomat_Speed");
SendClientMessage(playerid, COLOR4, "Tempomat zosta? wy??czony.");
return 1;
}
Ostatnio zmieniony przez zuraw13 2012-10-07, 22:14, w całości zmieniany 3 razy
Wysłany: 2012-10-07, 21:22
DumpeR
Wiek: 30 Na forum: 5330 dni Posty: 171
Nick w MP: dumpeer
Piwa : 1026
Wysłany: 2012-10-07, 21:30
zuraw13
Wiek: 27 Na forum: 5074 dni Posty: 95
Nick w MP: zuraw113
Piwa : 191
Wysłany: 2012-10-07, 21:45
Raydex
Wiek: 36 Na forum: 6037 dni Posty: 138
Piwa : 1043
Bo tr?jka jest nieoskryptowana w sampie.
Wysłany: 2012-10-07, 21:49
zuraw13
Wiek: 27 Na forum: 5074 dni Posty: 95
Nick w MP: zuraw113
Piwa : 191
To kt?re z tych s? oskryptowane:
1,3,5,6,7,8,9
Wysłany: 2012-10-07, 22:35
DumpeR
Wiek: 30 Na forum: 5330 dni Posty: 171
Nick w MP: dumpeer
Piwa : 1026
Wysłany: 2012-10-08, 14:49
zuraw13
Wiek: 27 Na forum: 5074 dni Posty: 95
Nick w MP: zuraw113
Piwa : 191
Wysłany: 2012-10-08, 14:52
Bartek23071993
WiceWersa
Wiek: 29 Na forum: 5223 dni Posty: 250
Nick w MP: WiceWersa
Piwa : 2429
W public'u OnPlayerKeyStateChange
if(newkeys & KEY_SUBMISSION)
Wysłany: 2012-10-08, 16:25
zuraw13
Wiek: 27 Na forum: 5074 dni Posty: 95
Nick w MP: zuraw113
Piwa : 191
Nie rozumiem o co chodzi z tym i jak to zrobi? ?eby zamiast dzia?a? po 2 to dzia?a np. 1/3/5/6/7/8/9 [/ to jest jako lub].
Mogliby?cie wy to zrobi??
B?d?
Wiem ?e tu czeba co? zmieni?:
Kod: if(newkeys & KEY_SUBMISSION)
Wysłany: 2012-10-08, 16:51
DumpeR
Wiek: 30 Na forum: 5330 dni Posty: 171
Nick w MP: dumpeer
Piwa : 1026
Wysłany: 2012-10-08, 16:55
zuraw13
Wiek: 27 Na forum: 5074 dni Posty: 95
Nick w MP: zuraw113
Piwa : 191
Nie wiedzia?em ?e ich tak ma?o.
Dobra dzi?ki.
Tagi: tempomat :: jak :: zmienić :: klawisz :: 1/3/5/6/7/8/9.
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: