Automatische Abschusssystem

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
  • Hallo
    Ich suche ein Script das mit der object Id 3267 arbeitet das heißt
    So bald wenn jemand im umkreis von 500meter ist dass er abgeknallt wird von der position wo das object ist
    und das es die Rakette von der Lenkrakete der Hydra ist aber diese nicht die ganze zeit verfolgt sondern nur so 7 sec
    aber das nicht die Hydra Hunter und Police maveric abgeschossen ist


    mfg Komet

  • Du könntest auch einfach eine explosion beim spieler erzeugen wenn er sich in dem gebiet aufhält bzw es betritt.Das würde dann den kill durch eine Rakete simulieren.


    Das wäre wesentlich ressourcensparender obwohl so eine Rakete die durch die Luft fliegt natürlich ganz schön was her macht^^

  • jo und das ganze um eine paar Sekunden verzögern, mit MoveObject kann dir Rakete sogar Simuliert werden, jedoch kann dir Rakete das
    Fluggefährt nie verfehlen da du ihn immer 100% vom Himmel schießen wirst dazu kannst dann ein Zufallssystem verwenden

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • hier ist ein filterscript dazu aus dem englischen forum http://forum.sa-mp.com/index.php?topic=144767.0


    wenn du in einem bestimmten radius zu der Flug abwehr bist (einstellbar in .pwn)
    wirst du von einer lichtkugel verfolgt, soblad die Kugel nah genug an dir dran ist explodiert sie und du stirbst^^


    du kannst es deinen wünschen noch anpassen, indem du einen Timer setzt der nach der gewünschten Zeit das Lichtobjekt zerstört und den "verfolgungs"timer abbricht


    gruß snail


    EDIT : achja man kann da auch einstellen welche fahrzeuge angegriffen werden sollen


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • danke
    wie mache ich das man schon vorher die dinger einfügt und das die dann schießen weißt du wie man das macht???
    wäre nett
    mfg

    Einmal editiert, zuletzt von Komet ()

  • ja hab ich schon aber wenn ich das mach muss ich erst den befehl eingeben dann wird zwa wieder son ding gemacht und dann wird das erste was ICH in der pwn createt habe genommen total komisch

  • #include <a_samp>
    #define COLOR 0x00FF00FF
    #define RED 0xFF0000FF
    #define DISTANCESHOT 100
    #define EXPORADIUS 7
    #define MOVESPEED 50
    #define TIMERTIME 300
    stock SetObjectFaceToPlayer(objectid,playerid)
    {
    new Float:X[2], Float:Y[2], Float:Z;
    new Float:Angle;


    GetObjectPos(objectid, X[0], Y[0], Z);
    GetPlayerPos(playerid, X[1], Y[1], Z);


    if(X[0] > X[1] && Y[0] > Y[1]) Angle = floatabs(atan2(floatsub(X[1], X[0]), floatsub(Y[1], Y[0])));
    if(X[0] > X[1] && Y[0] <= Y[1]) Angle = floatabs(atan2(floatsub(Y[0], Y[1]), floatsub(X[1], X[0]))) + 270.0;
    if(X[0] <= X[1] && Y[0] > Y[1]) Angle = floatabs(atan2(floatsub(Y[1], Y[0]), floatsub(X[0], X[1]))) + 90.0;
    if(X[0] <= X[1] && Y[0] <= Y[1]) Angle = floatabs(atan2(floatsub(X[0], X[1]), floatsub(Y[0], Y[1]))) + 180.0;
    SetObjectRot(objectid,0,0,Angle);
    return 1;
    }
    stock Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
    {
    new Float:a;
    GetPlayerPos(playerid, x, y, a);
    if (IsPlayerInAnyVehicle(playerid))
    GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    else
    GetPlayerFacingAngle(playerid, a);
    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
    return a;
    }
    new flare[MAX_PLAYERS];
    new launcher[MAX_OBJECTS];
    new placed[MAX_OBJECTS];
    new placinglnchr[MAX_PLAYERS];
    new timer[MAX_PLAYERS];
    forward launch(playerid);
    forward flarekill(flare2,playerid);
    public OnPlayerConnect(playerid){
    placinglnchr[playerid] = -1;
    timer[playerid] = SetTimerEx("launch",TIMERTIME,1,"i",playerid);
    return 1;
    }
    public OnPlayerDisconnect(playerid){
    KillTimer(timer[playerid]);
    return 1;
    }
    public OnPlayerDeath(playerid){
    DestroyObject(flare[playerid]);
    return 1;
    }
    public OnFilterScriptInit(){
    print("In-game launcher creator by Kurence loaded");
    for(new i;i<MAX_OBJECTS;i++) launcher[i] = -1;
    }
    public OnPlayerCommandText(playerid,cmdtext[]){
    if(strcmp("/addlauncher",cmdtext,true) == 0){
    if(placinglnchr[playerid] != -1){
    new string[100];
    format(string,sizeof(string),"Launcher created, his ID: %d",placinglnchr[playerid]);
    SendClientMessage(playerid,COLOR,string);
    DestroyObject(launcher[placinglnchr[playerid]]);
    new Float:X,Float:Y,Float:Z,Float:angle;
    GetPlayerPos(playerid,X,Y,Z);
    GetXYInFrontOfPlayer(playerid,X,Y,10);
    GetPlayerFacingAngle(playerid,angle);
    launcher[placinglnchr[playerid]] = CreateObject(3267,X,Y,Z,0,0,angle);
    placed[placinglnchr[playerid]] = 1;
    placinglnchr[playerid] = -1;
    return 1;
    }
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid,X,Y,Z);
    GetXYInFrontOfPlayer(playerid,X,Y,10);
    for(new i;i<MAX_OBJECTS;i++){
    if(launcher[i] == -1){
    launcher[i] = CreateObject(3267,X,Y,Z,0,0,0);
    AttachObjectToPlayer(launcher[i],playerid,0,10,0,0,0,0);
    SendClientMessage(playerid,COLOR,"Place the launcher where you want it and use ''/addlauncher'' again");
    placinglnchr[playerid] = i;
    break;
    }
    }
    return 1;
    }
    if(strcmp("/dellauncher",cmdtext,true) == 0){
    if(placinglnchr[playerid] != -1) return SendClientMessage(playerid,RED,"Place that launcher first");
    for(new i;i<MAX_OBJECTS;i++){
    if(launcher[i] != -1){
    new Float:X,Float:Y,Float:Z;
    GetObjectPos(launcher[i],X,Y,Z);
    if(IsPlayerInRangeOfPoint(playerid,10,X,Y,Z)){
    DestroyObject(launcher[i]);
    launcher[i] = -1;
    }
    }
    }
    return 1;
    }
    return 0;
    }
    public launch(playerid){
    new Float:X,Float:Y,Float:Z;
    new Model = GetVehicleModel(GetPlayerVehicleID(playerid));
    if (Model == 417 || Model == 563 || Model == 553 || Model == 519 || Model == 592 || Model == 577 || Model == 464 || Model == 465 || Model == 511 || Model == 512 || Model == 593 || Model == 460 || Model == 513 || Model == 487 || Model == 488 || Model == 447 || Model == 469 || Model == 501){
    if(IsValidObject(flare[playerid])){
    GetObjectPos(flare[playerid],X,Y,Z);
    if(IsPlayerInRangeOfPoint(playerid,EXPORADIUS,X,Y,Z)){
    CreateExplosion(X,Y,Z,7,25);
    DestroyObject(flare[playerid]);
    }
    else{
    GetPlayerPos(playerid,X,Y,Z);
    MoveObject(flare[playerid],X,Y,Z,MOVESPEED);
    }
    return 1;
    }
    for(new i;i<MAX_OBJECTS;i++){
    if(placed[i] != 1) return 0;
    new Float:pX,Float:pY,Float:pZ;
    if(launcher[i] != -1){
    SetObjectFaceToPlayer(launcher[i],playerid);
    GetObjectPos(launcher[i],X,Y,Z);
    GetPlayerPos(playerid,pX,pY,pZ);
    if(IsPlayerInRangeOfPoint(playerid,DISTANCESHOT,X,Y,Z)){
    flare[playerid] = CreateObject(354,X,Y,Z,0,0,0);
    MoveObject(flare[playerid],pX,pY,pZ,MOVESPEED);
    SetTimerEx("flarekill",30000,0,"ii",flare[playerid],playerid);
    return 1;
    }
    }
    }
    }
    else{
    CreateExplosion(X,Y,Z,7,25);
    DestroyObject(flare[playerid]);
    }
    return 1;
    }
    public flarekill(flare2,playerid){
    new Float:X,Float:Y,Float:Z;
    GetObjectPos(flare2,X,Y,Z);
    CreateExplosion(X,Y,Z,7,25);
    DestroyObject(flare2);
    }
    public OnPlayerKeyStateChange(playerid) launch(playerid);

  • Sowas ist doch leicht gescriptet????
    Erst machst du ein MoveObject nach oben, dann machst du 7 weitere MoveObjects jede sekunde auf die neue Position des Spielers.
    Sollte sich die Rakete auf 10 m ihn genähert haben *boom*... oder eben nach 8 sekunden automatisch *booom* :D Wo ist das Problem?


    CreateExplosion ist ebenfalls ein Befehl, den du dir angucken solltest, ansonsten über einen globalen Timer oder SetTimerEx.


    Grüße!

  • Mini das ist nicht mein problem
    ich will wenn ich diese ficher mappe laso das object das dann von da auch raketten geschoßen werden
    nur irgend wie muss man noch was ändern


    /edit kann mir keiner helfen?

    Einmal editiert, zuletzt von Komet ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen