Hey,
ich weiß das es jetzt seid 0.3z möglich ist Autos schaden zu geben, die keinen Fahrer haben.
Nun meine Frage, wie?
Ich weiß nicht wie man dem Auto Schaden gibt.
lg
Flash
Hey,
ich weiß das es jetzt seid 0.3z möglich ist Autos schaden zu geben, die keinen Fahrer haben.
Nun meine Frage, wie?
Ich weiß nicht wie man dem Auto Schaden gibt.
lg
Flash
OnPlayerWeaponShotin Kombination mit SetVehicleHealth
OnPlayerWeaponShotin Kombination mit SetVehicleHealth
Da habe ich eine Frage zu.
Kann man es auch Deaktiviert lassen? Also das, das Fahrzeug nicht Kaputt geht wie bei 0.3x?
MfG.
Klar, einfach das was der Thread ersteller machen will, bei dir im Script nicht machen oder was meinst du?
Man kann es doch alternativ auch mit "SetVehicleHealth" machen, oder nicht? (Dazu ganz einfach abfragen ob jemand im Auto sitzt)
Hi Pascal1996,
willst du die Fahrzeuge zerstören damit diese wieder an Ihrem Span punkt erscheinen oder damit sie ganz vom Script verschwinden?
lg Black
Servus, ich wollte es einfach wie im Singleplayer machen.
Also das die Autos dannach respawnen.
Habs aber schon geschafft, also danke
Ok
Kleine Anmerkung:
hast du SetVehicleToRespawn benutzt? Oder es einfach zerstört?
Falls du es zerstört hast, du kannst auch SetVehicleToRespawn(vehicleid); benutzen
lg Black
Hey, ich wollte nicht extra ein neues Thema eröffnen, aber bei mir klappt das auch nicht.
Ich fand mal ein FS, ich habe das in mein Script integriert und etwas angepasst. Leider nimmt das Veh kein schaden. Hier der Code, ich hoffe ihr könnt helfen.
#define VEHICLE_STATE_INACTIVE 0
#define VEHICLE_STATE_SPAWNED 1
#define VEHICLE_STATE_DYING 2
enum SyncVehInfo
{
STATE,
MODELID,
Float:POS[4],
TIMER,
COL[2],
RESPAWN_TIME,
Float:MAX_HEALTH
};
new
info[MAX_VEHICLES][SyncVehInfo],
Float:wdamage[13] = {
25.0,
40.0,
140.0,
90.0,
135.0,
60.0,
20.0,
25.0,
30.0,
30.0,
20.0,
75.0,
125.0
},
settings[2] = {
false,
true
};
forward UVDMG_OUVD(vehicleid);
forward UVDMG_OUVR(vehicleid);
forward UVDMG_AddVehicle(mdl, Float:x, Float:y, Float:z, Float:a, col1, col2, respawn, Float:health);
forward UVDMG_RemoveVehicle(id);
forward UVDMG_Set(setting, value);
forward UVDM_GetState(vehicleid);
public UVDMG_AddVehicle(mdl, Float:x, Float:y, Float:z, Float:a, col1, col2, respawn, Float:health)
{
new id = CreateVehicle(mdl, x, y, z, a, col1, col2, respawn);
SetVehicleHealth(id, health);
info[id][STATE] = VEHICLE_STATE_SPAWNED;
info[id][MODELID] = mdl;
info[id][POS][0] = x;
info[id][POS][1] = y;
info[id][POS][2] = z;
info[id][POS][3] = a;
info[id][TIMER] = -1;
info[id][COL][0] = col1;
info[id][COL][1] = col2;
info[id][RESPAWN_TIME] = respawn;
info[id][MAX_HEALTH] = health;
return id;
}
public UVDMG_RemoveVehicle(id)
{
if(info[id][STATE] != VEHICLE_STATE_INACTIVE)
{
info[id][STATE] = VEHICLE_STATE_INACTIVE;
if(info[id][TIMER] != -1)
KillTimer(info[id][TIMER]);
return DestroyVehicle(id);
}
else
return 0;
}
public UVDMG_Set(setting, value)
{
if(setting < sizeof(settings))
{
settings[setting] = value;
return 1;
}
else
return 0;
}
public UVDM_GetState(vehicleid)
{
return info[vehicleid][STATE];
}
stock Initialize()
{
for(new i=0;i<MAX_VEHICLES;++i)
{
info[i][STATE] = VEHICLE_STATE_INACTIVE;
info[i][TIMER] = -1;
}
}
public UVDMG_OUVD(vehicleid)
{
CallRemoteFunction("OnUnoccupiedSyncVehicleDeath", "i", vehicleid);
info[vehicleid][TIMER] = SetTimerEx("UVDMG_OUVR", 4999, false, "i", vehicleid);
}
public UVDMG_OUVR(vehicleid)
{
info[vehicleid][TIMER] = -1;
DestroyVehicle(vehicleid);
if(settings[1] == 1)
{
CreateVehicle(info[vehicleid][MODELID], info[vehicleid][POS][0], info[vehicleid][POS][1], info[vehicleid][POS][2], info[vehicleid][POS][3], info[vehicleid][COL][0], info[vehicleid][COL][1], info[vehicleid][RESPAWN_TIME]);
SetVehicleHealth(vehicleid, info[vehicleid][MAX_HEALTH]);
info[vehicleid][STATE] = VEHICLE_STATE_SPAWNED;
CallRemoteFunction("OnUnoccupiedSyncVehicleRespawn", "i", vehicleid);
}
else
info[vehicleid][STATE] = VEHICLE_STATE_INACTIVE;
}
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(hittype == BULLET_HIT_TYPE_VEHICLE && info[hitid][STATE] != VEHICLE_STATE_INACTIVE && !isVehicleOccupied(hitid))
{
new Float:vhp;
GetVehicleHealth(hitid, vhp);
switch(weaponid)
{
case 22..34:
{
if(vhp-wdamage[weaponid-22] >= 0)
{
SetVehicleHealth(hitid, (vhp = vhp-wdamage[weaponid-22]));
CallRemoteFunction("OnUnoccupiedSyncVehicleDamage", "iiif", playerid, hitid, weaponid, wdamage[weaponid-22]);
}
}
case 38:
{
if(settings[0] == 1 && vhp-140.0 >= 0)
{
SetVehicleHealth(hitid, (vhp = vhp-140.0));
CallRemoteFunction("OnUnoccupiedSyncVehicleDamage", "iiif", playerid, hitid, 38, 140.0);
}
}
}
if(info[hitid][STATE] != VEHICLE_STATE_DYING && vhp <= 250.0)
{
info[hitid][STATE] = VEHICLE_STATE_DYING;
info[hitid][TIMER] = SetTimerEx("UVDMG_OUVD", 5000, false, "i", hitid);
CallRemoteFunction("OnUnoccupiedSyncVehicleDying", "i", hitid);
}
}
return 1;
}
public OnVehicleSpawn(vehicleid)
{
if(info[vehicleid][STATE] != VEHICLE_STATE_INACTIVE)
{
SetVehicleHealth(vehicleid, info[vehicleid][MAX_HEALTH]);
}
}
stock isVehicleOccupied(vehicleid)
{
for(new i;i < GetMaxPlayers();++i)
{
if(IsPlayerConnected(i) && GetPlayerVehicleID(i) == vehicleid && GetPlayerVehicleSeat(i) == 0)
return true;
}
return false;
}
Alles anzeigen
Am besten lässt du das mit dem Filterscript sein und versuchst etwas eigenes zu machen.
Ich finde im Allgemeinen Filterscripts nicht so gut.
Wenn du ein GF hast, ok aber bei einem Selfmade macht es mehr kaputt weil nicht jeder das gleiche system hat.
Probiers doch einfach mal selber, hat 2 vorteile, du hast immer das selbe system und falls mal fehler auftretten kannst du schneller nachvolziehen woher dieser fehler kommt.
lg black
Am besten lässt du das mit dem Filterscript sein und versuchst etwas eigenes zu machen.
Ich finde im Allgemeinen Filterscripts nicht so gut.
Wenn du ein GF hast, ok aber bei einem Selfmade macht es mehr kaputt weil nicht jeder das gleiche system hat.
Probiers doch einfach mal selber, hat 2 vorteile, du hast immer das selbe system und falls mal fehler auftretten kannst du schneller nachvolziehen woher dieser fehler kommt.
lg black
Ja ich denke da hast du recht, werds mal versuchen
Ja ich denke da hast du recht, werds mal versuchen
Da wünsch ich dir viel Glück