Munition in Autos?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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

  • achso, na da kann ich ja lange suchen, vermutlich find ichs deshalb auch nicht :)


    könnte man das mit einem kleinen Script umfixen?

  • 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;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • 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 ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • 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?

    Einmal editiert, zuletzt von Zwirli ()

  • 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;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • 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 ^^

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • 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!

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • 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)

    2 Mal editiert, zuletzt von Zwirli ()

  • ach ne daran liegts nicht,das ist immer so....

    2 Mal editiert, zuletzt von Zwirli ()