Bei Tod Waffen "hinterlassen"?

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 scripte gerade an einem kleinem DM-Gamemode und wollte deshalb fragen wie man die Waffen "hinterlassen" kann. Das heißt z. B. wenn man stirbt und noch eine M4 hatte, die M4 an der Position wo man gestorben ist als Pickup erscheint. (Wenn man im Singleplayer Polizisten erschießt kann man ja auch die Pistole und den Schlagstock nehmen)

  • Ich habe hier diesen Befehl gefunden: "SetDeathDropAmount(amount);" Mit dem kann man nach dem Tod Waffenpickups hinterlassen. Aber ob ich bei amount true, false, irgendeine Zahl oder was auch immer eingebe bekomme ich diese Fehlermeldung: "C:\...\gamemodes\LSGF.pwn(299 -- 300) : error 076: syntax error in the expression, or invalid function call". Hab's bei OnGameModeInit() hingeschreiben. Was muss ich bei Amount hinschreiben?

  • kleines bisschen gedult. ich arbeite gerade dran. dürfte noch ne weile dauern ^^.

  • okay also hier haste es:



    // Ganz oben Hin:
    new WaffePickup[212]; // Hier bekommt das Pickup seine eigene ID
    new Waffe[212][2]; // Hier bekommt die fallen gelassene Waffe die ID und die Munition
    // Die jeweilige ID setzt sich aus der Playerid + Waffenslot zusammen. Daher maximal 212 (maximale spielerzahl: 200, maximale slots: 12)


    public OnPlayerDeath(playerid, killerid, reason)
    {
    new Waffen[13][2],Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<13;i++)
    {
    new Pickupid;
    GetPlayerWeaponData(playerid,i,Waffen[i][0],Waffen[i][1]);
    if(Waffen[i][0]>=1)
    {
    switch(Waffen[i][0])
    {
    case 1:{Pickupid=331;}
    case 2:{Pickupid=333;}
    case 3:{Pickupid=334;}
    case 4:{Pickupid=335;}
    case 5:{Pickupid=336;}
    case 6:{Pickupid=337;}
    case 7:{Pickupid=338;}
    /* ... Bitte weiterführen

    http://wiki.sa-mp.com/wiki/Weapons // dementsprechende Waffenids
    http://wiki.sa-mp.com/wiki/Pickup_help // dementsprechende Pickupids


    Beispiel: Waffen[i][0] (Waffenid) entspricht case 1 (Waffenid 1)
    auf 'http://wiki.sa-mp.com/wiki/Weapons' ID 1 raussuchen, Name der Waffe merken
    auf 'http://wiki.sa-mp.com/wiki/Pickup_help' mit dem namen der waffe unter der kategorie 'Waffen Pickups'
    die Pickupid raussuchen und einfügen.
    */
    }
    switch(i)
    {
    case 1:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+1,y,z);}
    case 2:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+2,y,z);}
    case 3:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+3,y,z);}
    case 4:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+1,z);}
    case 5:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+2,z);}
    case 6:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+3,z);}
    case 7:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-1,y,z);}
    case 8:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-2,y,z);}
    case 9:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-3,y,z);}
    case 10:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-1,z);}
    case 11:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-2,z);}
    case 12:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-3,z);}
    }
    Waffe[playerid+i][0]=Waffen[i][0];
    Waffe[playerid+i][1]=Waffen[i][1];
    }
    }
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new i=0;i<212;i++) // schaut ob der spieler in einem der fallengelassenen Pickups steht
    {
    if(pickupid==WaffePickup[i])
    {
    GivePlayerWeapon(playerid, Waffe[i][0], Waffe[i][1]); // Gibt dem Spieler der die Waffe aufnimmt die Waffe + Muni
    DestroyPickup(WaffePickup[i]]); // Löscht sicherheitshalber nocheinmal den Pickup um ein respawn zu vermeiden
    }
    }
    return 1;
    }


    Sollte eigendlich alles klappen. Wenn es probleme gibt einfach hier melden.


    Sooo...
    und nun zu meiner Bezahlung. Tu mir nur 1 gefallen.
    Merk dir BITTE meinen Namen!!! ^^ *flüster* so werde ich irgendwann berühmt :thumbup:


    MfG
    OnlinePsycho

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • wie gesagt du musst das case weiterführen

  • das mit "Beispiel: Waffen[0] (Waffenid) entspricht case 1 (Waffenid 1)
    auf 'http://wiki.sa-mp.com/wiki/Weapons' ID 1 raussuchen, Name der Waffe merken
    auf 'http://wiki.sa-mp.com/wiki/Pickup_help' mit dem namen der waffe unter der kategorie 'Waffen Pickups'
    die Pickupid raussuchen und einfügen." habe ich nciht verstanden ..



    //EDIT//


    habs mal getestet, und geht auch soweit, nur der legt mich falsche waffen dahin .. warum ?

  • new WaffePickup[212]; // Hier bekommt das Pickup seine eigene ID
    new Waffe[212][2]; // Hier bekommt die fallen gelassene Waffe die ID und die Munition


    // onplayerdeath
    //-----(waffe hinterlassen)---------------------------------------------------//
    new Waffen[13][2],Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<13;i++)
    {
    new Pickupid;
    GetPlayerWeaponData(playerid,i,Waffen[i][0],Waffen[i][1]);
    if(Waffen[i][0]>=1)
    {
    switch(Waffen[i][0])
    {
    case 1:{Pickupid=321;}
    case 2:{Pickupid=322;}
    case 3:{Pickupid=323;}
    case 4:{Pickupid=324;}
    case 5:{Pickupid=325;}
    case 6:{Pickupid=326;}
    case 7:{Pickupid=330;}
    case 8:{Pickupid=331;}
    case 9:{Pickupid=333;}


    }
    /* ... usw


    http://wiki.sa-mp.com/wiki/Weapons // dementsprechende Waffenids
    http://wiki.sa-mp.com/wiki/Pickup_help // dementsprechende Pickupids


    Beispiel: Waffen[i][0] (Waffenid) entspricht case 1 (Waffenid 1)
    auf 'http://wiki.sa-mp.com/wiki/Weapons' ID 1 raussuchen, Name der Waffe merken
    auf 'http://wiki.sa-mp.com/wiki/Pickup_help' mit dem namen der waffe unter der kategorie 'Waffen Pickups'
    die Pickupid raussuchen und einfügen.
    */
    switch(i)
    {
    case 1:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+1,y,z);}
    case 2:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+2,y,z);}
    case 3:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x+3,y,z);}
    case 4:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+1,z);}
    case 5:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+2,z);}
    case 6:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y+3,z);}
    case 7:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-1,y,z);}
    case 8:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-2,y,z);}
    case 9:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x-3,y,z);}
    case 10:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-1,z);}
    case 11:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-2,z);}
    case 12:{WaffePickup[playerid+i]=CreatePickup(Pickupid,22,x,y-3,z);}
    }
    // Waffe[playerid+i][0]=Waffen[i][0];
    // Waffe[playerid+i][1]=Waffen[i][1];
    }
    }


    // onplayerpickuppickup
    //-----(waffe hinterlassen)---------------------------------------------------//
    for(new i=0;i<212;i++) // schaut ob der spieler in einem der fallengelassenen Pickups steht
    {
    if(pickupid==WaffePickup[i])
    {
    GivePlayerWeapon(playerid, Waffe[i][0], Waffe[i][1]); // Gibt dem Spieler der die Waffe aufnimmt die Waffe + Muni
    DestroyPickup(WaffePickup[i]); // Löscht sicherheitshalber nocheinmal den Pickup um ein respawn zu vermeiden
    }
    }


    mehr habe ich nicht, aber der legt immer ganz falsche waffen dahin

  • also bei mir klappts so weit eigendlich. wo ran liegt dein problem denn? was lasst er falsch fallen?

  • =D cool ^^. wenns probleme gibt: xfire = psychoonline oder pn an mich