hay,
Bei meiner Gamemode ist es so das Polizisten in den Autos immer 5 Schuss Shotgun finden. Ich möchte das nicht mehr haben. Ich finde aber nicht mehr wo ich das ein oder ausstellen kann. Nach was soll ich im Script suchen?
Danke
hay,
Bei meiner Gamemode ist es so das Polizisten in den Autos immer 5 Schuss Shotgun finden. Ich möchte das nicht mehr haben. Ich finde aber nicht mehr wo ich das ein oder ausstellen kann. Nach was soll ich im Script suchen?
Danke
Das ist im Singleplayer varankert und kann meines Wissens nach nicht ausgestellt werden.
MEINES WISSENS NACH! (Nur für die, die meinen alles kopieren und kommentieren zu müssen.)
achso, na da kann ich ja lange suchen, vermutlich find ichs deshalb auch nicht
könnte man das mit einem kleinen Script umfixen?
Tut mir Leid. Da kann ich dir nicht helfen.
Ich interessiere mich zwar für das scripting, bin aber zu dumm dafür.
Hm also eigentlich kann man das unterdrücken ich guck mal was sich machen lässt
Mach doch einfach eine Abfrage bei OnPlayerStateChange wenn er als Fahrer in ein Cop Auto einsteigt das ihm 5 Schuss Munition der Shotgun abgezogen werden.
ja das hört sich gut an, bin nur ein vollkommner Noob
wer nett wenn mir einer das scripten kann
AutoID ist die 596
Nerdbeere du kommentierst selbst sinnlos eine Frage und meinst was hier zu posten, also musst du nicht versuchen dich aufzublasen..
Zum Thema, man kann jedoch nachfragen ob ein Fahrzeug eine Shotgun für den Spieler besitzt oder nicht, denn wenn man es nachscriptet, kann man es auch abstellen oder?
new bool:gVehicleSpecialAction[MAX_VEHICLES][MAX_PLAYERS];
new gLastVehicleID[MAX_PLAYERS];
forward CheckVehicleSpecialAction(playerid, vehicleid);
stock RemovePlayerWeapon(playerid, weaponid)
{
if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50) return false;
new saveweapon[13], saveammo[13];
for(new slot = 0; slot < 12; slot++)
GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);
ResetPlayerWeapons(playerid);
for(new slot; slot < 12; slot++)
{
if(saveweapon[slot] == weaponid || saveammo[slot] == 0) continue;
GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
}
GivePlayerWeapon(playerid, 0, 1);
return true;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
gVehicleSpecialAction[vehicleid][forplayerid] = true;
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) gLastVehicleID[playerid] = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER && gVehicleSpecialAction[gLastVehicleID[playerid]][playerid] == true) SetTimerEx("CheckVehicleSpecialAction", 2000, 0, "dd", playerid, gLastVehicleID[playerid]);
return 1;
}
public CheckVehicleSpecialAction(playerid, vehicleid)
{
switch(GetVehicleModel(vehicleid))
{
case 596..598:
{
new weapon, ammo, cw = GetPlayerWeapon(playerid);
GetPlayerWeaponData(playerid, 3, weapon, ammo);
if(weapon == 25)
{
RemovePlayerWeapon(playerid, weapon);
if(ammo > 5) GivePlayerWeapon(playerid, weapon, (ammo-5));
SetPlayerArmedWeapon(playerid, cw);
}
}
}
gVehicleSpecialAction[vehicleid][forplayerid] = false;
return true;
}
Ja das funktioniert. Hast du dir das gerade eben mal schnell ausgedacht? Finds lustig, übelstes Script für so ne kleine Sache
Jo hab ich
Jo hab ich
das depremiert mich irgendwie
na danke
------------------------------------------------------------------------
Doch noch eine Frage dazu. Es geht zwar auch so irgendwie allerdings verschwindet nicht alle Munition aus folgendem Grund. Wenn ein Polizist schnell vom Polizeifahrzeug in ein anderes Fahrzeug steigt wird es nicht abgezogen. Dieses SettimerEx funtioniert wohl nur mit ninimal 1000. Gibts ne Möglichkeit die Zeit noch zu verkürzen bis das abgezogen wird?
Das blöde ist, ich weiß nichtmehr direkt, wann genau die Waffe gegeben wird, aber es gäbe eine Sache, wie du meine Version verbesserst, also einfach folgenden Code mim vorhandenen ersetzen:
new bool:gVehicleSpecialAction[MAX_VEHICLES][MAX_PLAYERS];
new gLastVehicleID[MAX_PLAYERS];
new bool:gPlayerVehicleSpecialAction[MAX_PLAYERS];
forward CheckVehicleSpecialAction(playerid, vehicleid);
stock RemovePlayerWeapon(playerid, weaponid)
{
if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50) return false;
new saveweapon[13], saveammo[13];
for(new slot = 0; slot < 12; slot++)
GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);
ResetPlayerWeapons(playerid);
for(new slot; slot < 12; slot++)
{
if(saveweapon[slot] == weaponid || saveammo[slot] == 0) continue;
GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
}
GivePlayerWeapon(playerid, 0, 1);
return true;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
gVehicleSpecialAction[vehicleid][forplayerid] = true;
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
if(gPlayerVehicleSpecialAction[playerid] == true) CheckVehicleSpecialAction(playerid, gLastVehicleID[playerid]); //Führt Funktion sofort aus!
gLastVehicleID[playerid] = GetPlayerVehicleID(playerid);
}
if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER && gVehicleSpecialAction[gLastVehicleID[playerid]][playerid] == true)
{
gPlayerVehicleSpecialAction[playerid] = true;
SetTimerEx("CheckVehicleSpecialAction", 2000, 0, "dd", playerid, gLastVehicleID[playerid]);
}
return 1;
}
public CheckVehicleSpecialAction(playerid, vehicleid)
{
switch(GetVehicleModel(vehicleid))
{
case 596..598:
{
new weapon, ammo, cw = GetPlayerWeapon(playerid);
GetPlayerWeaponData(playerid, 3, weapon, ammo);
if(weapon == 25)
{
RemovePlayerWeapon(playerid, weapon);
if(ammo > 5) GivePlayerWeapon(playerid, weapon, (ammo-5));
SetPlayerArmedWeapon(playerid, cw);
}
}
}
gPlayerVehicleSpecialAction[playerid] = false;
gVehicleSpecialAction[vehicleid][forplayerid] = false;
return true;
}
ok, hab noch ein Fehler:
W:\Server\SA-MP 0.3a Windows Server\gamemodes\GM.pwn(4746) : warning 202: number of arguments does not match definition
Zeile posten und wir machen Schluss mim Thema
hihi ok
if(gPlayerVehicleSpecialAction[playerid] == true) CheckVehicleSpecialAction(playerid, gLastVehicleID[playerid]); //Führt Funktion sofort aus!
Ok bitte überprüfe ob du es richtig eingefügt hast, da ich keinen Fehler bekommen wenn ich es in einen leeren GM reinhau. Außer das mit forplayerid aber das gehört zu playerid
Aber ansonsten bitte überprüfen und dann sagen obs geklappt hat, Danke!
das ist richtig eingefügt denke ich.
Es ist so, wenn ich den Fehler mit forplayerid korrigiere, erst dann kommt obige Fehlermeldung.
Oder ich korrigiere ihn falsch, mache:
forward CheckVehicleSpecialAction(playerid, vehicleid, forplayerid);
und:
public CheckVehicleSpecialAction(playerid, vehicleid,forplayerid)
public CheckVehicleSpecialAction(playerid, vehicleid,forplayerid)
vielleicht hinten das ; vergessen?
Seid wann kommt ein ";" nach einem Public
ach ne daran liegts nicht,das ist immer so....