-
Üdv mindenkinek!
Az a problémám, hogy a nitrót, ha folyamatosan nyomom, egy idõ után elfogy, és csak akkor megy újra ha megint kattintok, ezt kellene
kiküszöbölni, hogy folyamatosan menjen, addig amíg nyomom.
A másik probléma, hogy multkor megcsináltam, hogy a lámpa a kocsin égjen nappal is.
Ezt úgy oldottam meg, hogy beraktam a ManualVehicleEngineAndLights; sort az ongamemode init alá, de ekkor nem indult be a kocsi, amikor bele
ültem. <- ezt is megcsináltam, az onplayerentervehicle dologgal...
DE A PROBLÉMA: Ha lekérek egy kocsit a /car vagy /v paranccsal, akkor ugye lehívtam a kocsit, alapból benne ülök, de a kocsi motorja nem
jár, csak akkor indul be ha kiszállok, és újra beülök...
Ez a jármûlehívó parancs:
dcmd_car(playerid, params[])
{
new Index;
new tmp[256]; tmp = strtok(params,Index);
new tmp2[256]; tmp2 = strtok(params,Index);
new tmp3[256]; tmp3 = strtok(params,Index);
if(!strlen(tmp)) return
SendClientMessage(playerid, -1, \"{FFFFFF}[TDc] {375FFF}Használat: {FFFFFF}/car [modelid/jármûnév] [szín1] [szín2]\");
new car;
new string[128];
new colour1, colour2;
if(!IsNumeric(tmp))
car = GetVehicleModelIDFromName(tmp);
else car = strval(tmp);
if(car < 400 || car > 611) return SendClientMessage(playerid, -1, \"Hiba: Nincs ilyen jármû!\");
if(car == 406 || car == 425 || car == 432 || car == 444 || car == 520 || car == 553 || car == 577 || car == 592) return SendClientMessage(playerid, -1, \"TILTOTT JÁRMÛ!\");
if(car == 407 || car == 408) return SendClientMessage(playerid, -1, \"TILTOTT JÁRMÛ!\");
if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
if(SpawnedVehicles[playerid] != 0) DestroyVehicle(SpawnedVehicles[playerid]);
new Float:X,Float:Y,Float:Z;
new Float:Angle,int1;
new LVehicleID = GetPlayerVehicleID(playerid);
GetPlayerPos(playerid, X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);
int1 = GetPlayerInterior(playerid);
SpawnedVehicles[playerid] = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1);
new world = GetPlayerVirtualWorld(playerid);
SetVehicleVirtualWorld(SpawnedVehicles[playerid], world);
LinkVehicleToInterior(LVehicleID,int1);
PlayerPlaySound(playerid,1085,0,0,0);
PutPlayerInVehicle(playerid,SpawnedVehicles[playerid],0);
format(string, sizeof(string), \"{FFFFFF}[TDc] {375FFF}Jármû lerakva! Név: %s | (Model ID: %d) | Szín1: %d, Szín2: %d\", VehicleNames[car-400], car, colour1, colour2);
return SendClientMessage(playerid,-1,string);
}
Igyekeztem minél érthetõbben leírni a gondomat :) Remélem tudtok segíteni!
-
Hali. Én ezt használom nitro fs-nek:
forward InfiniteNitro();
public OnFilterScriptInit()
{
SetTimer(\"InfiniteNitro\",2000,1);
return 1;
}
public InfiniteNitro()
{
new vehicleid;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerState(i)==2)
{
vehicleid=GetPlayerVehicleID(i);
if(CheckVehicle(vehicleid))
AddVehicleComponent(vehicleid,1010);
}
}
}
return 0;
}
A másik, a lámpa dolog:
dcmd_car(playerid, params[])
{
new Index;
new tmp[256]; tmp = strtok(params,Index);
new tmp2[256]; tmp2 = strtok(params,Index);
new tmp3[256]; tmp3 = strtok(params,Index);
if(!strlen(tmp)) return
SendClientMessage(playerid, -1, \"{FFFFFF}[TDc] {375FFF}Használat: {FFFFFF}/car [modelid/jármûnév] [szín1] [szín2]\");
new car;
new string[128];
new colour1, colour2;
new engine, lights, alarm, doors, bonnet, boot, objective;
if(!IsNumeric(tmp))
car = GetVehicleModelIDFromName(tmp);
else car = strval(tmp);
if(car < 400 || car > 611) return SendClientMessage(playerid, -1, \"Hiba: Nincs ilyen jármû!\");
if(car == 406 || car == 425 || car == 432 || car == 444 || car == 520 || car == 553 || car == 577 || car == 592) return SendClientMessage(playerid, -1, \"TILTOTT JÁRMÛ!\");
if(car == 407 || car == 408) return SendClientMessage(playerid, -1, \"TILTOTT JÁRMÛ!\");
if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
if(SpawnedVehicles[playerid] != 0) DestroyVehicle(SpawnedVehicles[playerid]);
new Float:X,Float:Y,Float:Z;
new Float:Angle,int1;
new LVehicleID = GetPlayerVehicleID(playerid);
GetPlayerPos(playerid, X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);
int1 = GetPlayerInterior(playerid);
SpawnedVehicles[playerid] = CreateVehicle(car, X+3,Y,Z, Angle, colour1, colour2, -1);
new world = GetPlayerVirtualWorld(playerid);
SetVehicleVirtualWorld(SpawnedVehicles[playerid], world);
LinkVehicleToInterior(LVehicleID,int1);
PlayerPlaySound(playerid,1085,0,0,0);
GetVehicleParamsEx(SpawnedVehicles[playerid], engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(SpawnedVehicles[playerid], 1, 1, alarm, doors, bonnet, boot, objective);
PutPlayerInVehicle(playerid,SpawnedVehicles[playerid],0);
format(string, sizeof(string), \"{FFFFFF}[TDc] {375FFF}Jármû lerakva! Név: %s | (Model ID: %d) | Szín1: %d, Szín2: %d\", VehicleNames[car-400], car, colour1, colour2);
return SendClientMessage(playerid,-1,string);
}
-
A kocsi lekérõ dolog mûködik, köszönöm.
A nitrós dologgal kapcsolatban ezt az error-t kapom:
D:\\Egyéb Fájlok\\SaMp Dolgaim\\Szerverek\\NewTDC Project\\gamemodes\\TDC.pwn(3469) : error 017: undefined symbol \"CheckVehicle\"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
-
Ez talán megoldja a problémád: [FS] Unlimited Nitro script by boemeles
-
Ez talán megoldja a problémád: [FS] Unlimited Nitro script by boemeles
Ez sem jó, mert ha elengedem a gombot, akkor a nitró megy tovább még pár másodpercig :/ és így nemlehet vele driftelni
-
Még anno írtam.
#include <a_samp>
public OnFilterScriptInit()
{
print(\"\\n-----------------------------------\");
print(\"Nitro Script by SkyHD\");
print(\"-----------------------------------\\n\");
SetTimer(\"NitroReset\", 3000, 1);
return 1;
}
forward NitroReset();
public NitroReset()
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
new vehicle = GetPlayerVehicleID(i);
AddVehicleComponent(vehicle, 1010);
}
}
public OnPlayerExitVehicle(playerid,vehicleid) RemoveVehicleComponent(vehicleid, 1010);
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER || !CheckNitro(GetPlayerVehicleID(playerid))) return false; else if ((((newkeys & (4)) == (4)) && ((oldkeys & (4)) != (4)))) AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); else if ((((newkeys & (4)) != (4)) && ((oldkeys & (4)) == (4)))) RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
return 1;
}
CheckNitro(vid)
{
new NoNitro[] = { 522,481,441,468,448,446,513,521,510,430,520,476,463 };
for(new e = 0; e < sizeof(NoNitro); e++) if(GetVehicleModel(vid) == NoNitro[e]) return false;
return true;
}
E: Vagy ha így jobban tetszik..
#include <a_samp>
public OnFilterScriptInit()
{
print(\"\\n-----------------------------------\");
print(\"Nitro Script by SkyHD\");
print(\"-----------------------------------\\n\");
SetTimer(\"NitroReset\", 3000, 1);
return 1;
}
forward NitroReset();
public NitroReset()
{
for(new i = 0; i<MAX_PLAYERS; i++)
{
new vehicle = GetPlayerVehicleID(i);
AddVehicleComponent(vehicle, 1010);
}
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER || !CheckNitro(GetPlayerVehicleID(playerid)))
{
return 0;
}
else
if ((((newkeys & (4)) == (4)) && ((oldkeys & (4)) != (4))))
{
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
else
if ((((newkeys & (4)) != (4)) && ((oldkeys & (4)) == (4))))
{
RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
return 1;
}
public OnPlayerExitVehicle(playerid,vehicleid)
{
RemoveVehicleComponent(vehicleid, 1010);
return 1;
}
CheckNitro(vid)
{
new NoNitro[] = { 522,481,441,468,448,446,513,521,510,430,520,476,463 };
for(new e = 0; e < sizeof(NoNitro); e++)
{
if(GetVehicleModel(vid) == NoNitro[e])
return 0;
}
return 1;
}
-
Müködik. Köszi