Beiträge von JustMe.77

    new tmpobjid;
    Das ist eine temporäre Variable, auf die du nur Zugriff hast, während der Befehl ausgeführt wird. Weder zuvor noch danach ist sie vorhanden.


    new gObj[2];
    Das schreibst du ja unter die Includes, sprich es ist global deklariert, somit hast du jederzeit Zugriff und der Wert bleibt erhalten, daher kannst du darüber das Objekt später löschen.


    Alles klar, danke :)


    Nur habe ich ein kleines Problem:



    CMD:deletetest(playerid,params[])
    {
    DestroyObject(gObj[i]);
    }




    C:\Users\Dave\Desktop\OX-Event.pwn(264) : error 017: undefined symbol "i"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Kannst du mir auch sagen wie ich das in einem Befehl mache, möchte nicht 2 verschiedene haben...

    Hey Leute, da Wiki zurzeit Down ist frage ich hier nach:


    Ich habe eine schöne Map für mein guten Freund Slice erstellt, nun möchte ich folgendes machen:


    Ich habe eine normale Map mit ungefähr 100 Objekten worin sich aber 2 Objekte befinden die per Befehl auftauchen sollen, genau da wo ich sie hingemappt habe.


    Der Code der Türen sieht so aus:



    tmpobjid = CreateObject(1498,1866.485,-2496.830,5047.411,0.000,0.000,36.199,300.000);
    SetObjectMaterial(tmpobjid, 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(tmpobjid, "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
    tmpobjid = CreateObject(1498,1841.824,-2495.508,5047.339,0.000,0.000,335.900,300.000);
    SetObjectMaterial(tmpobjid, 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(tmpobjid, "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);


    Welche Callbacks benötige ich, welche Functions etc?


    Ich möchte das man die Objekte erstellen kann (auf den Koordinaten oben angegeben) und ebenfalls wieder löschen kann.



    Würde mich über eine schnelle Antwort freuen, ich würde es ja selber versuchen aber kann nicht viel ohne Wiki anfangen..



    Edit1: Habs ohne Wiki geschafft ein Befehl zu erstellen um die Objekte zu erstellen. Wie lösche ich sie wieder?



    CMD:edoor(playerid,params[])
    {
    new tmpobjid;


    tmpobjid = CreateObject(1498,1866.485,-2496.830,5047.411,0.000,0.000,36.199,300.000);
    SetObjectMaterial(tmpobjid, 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(tmpobjid, "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);
    tmpobjid = CreateObject(1498,1841.824,-2495.508,5047.339,0.000,0.000,335.900,300.000);
    SetObjectMaterial(tmpobjid, 0, 5150, "wiresetc_las2", "ganggraf01_LA_m", 0);
    SetObjectMaterialText(tmpobjid, "LOCKED", 0, 50, "Calibri", 15, 1, -65536, 0, 1);


    SendClientMessage(playerid,0xFF0055FF,"Rooms blocked");
    return 1;
    }

    Jeffry:


    Danke, habe zurzeit ein Probleme mit dem Login/Register System. Das Problem ist, das ich Befehle ausführen kann indem ich F5 drücke (Textfeld öffnet sich) und ich die Befehle eingeben kann ohne gekickt zu werden. Ich habe zwar eine Kick Funktion drin das wenn man das Passwortfeld schließt, aber nicht wenn man Befehle ausführt.


    Außerdem wird der Spieler gespawnt wenn ich ein falsches Passwort eingebe.


    Hier meine Publics


    Spoiler anzeigen

    public OnPlayerConnect(playerid)
    {
    PlayAudioStreamForPlayer(playerid, "dl.dropboxusercontent.com/s/6zmyjochwhilhzl/KC.mp3?dl=0");
    if(fexist(UserPath(playerid)))
    {
    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
    }
    new string[520];
    playersonline++;
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    format(string,sizeof string,"{007DFF}%s{FEFEFE} has joined the server! There are currently {007DFF}%d{FEFEFE} player(s) online.",Name,playersonline);
    SendClientMessageToAll(COLOR_GREEN, string);

    TextDrawShowForPlayer(playerid, Textdraw0);
    return 1;



    OnPlayerRequestClass


    Spoiler anzeigen

    public OnPlayerRequestClass(playerid, classid)
    {
    SetSpawnInfo(playerid,0,12,280.9249,1359.5286,10.5859,172.2551,24,500,34,500,0,0);
    if(PlayerInfo[playerid][pBanned] == 1)
    {
    Ban(playerid);
    }
    SetPlayerPos(playerid, 280.9249,1359.5286,10.5859);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);

    Spoiler anzeigen
    SpawnPlayer(playerid);
    return 1;
    }


    OnPlayerSpawn


    Spoiler anzeigen

    public OnPlayerSpawn(playerid)
    {
    StopAudioStreamForPlayer(playerid); // Stop the audio stream
    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 100);
    GivePlayerWeapon(playerid, 24, 500);
    GivePlayerWeapon(playerid, 34, 300);

    Spoiler anzeigen
    return 1;
    }




    Ich hatte außerdem mal ein Code eingefügt um die Spawnbuttons zu entfernen, dachte es ist vielleicht wichtig das zu erwähnen.

    Hi, ich habe folgende Fragen:


    Ich habe ein Befehl erstellt womit ich ein Auto erstelle (mit Attachten Objekten). Doch ich möchte das Auto da erstellen wo sich der Spieler befindet. Ich weiß das ich GetPlayerPos brauche, aber weiß nicht wie ich das anwenden soll.



    ocmd:jmbullet(playerid, params[])
    {
    new tmpobjid;
    new carvid;
    CreateVehicle(541,-199.906,1221.879,19.324,177.737,0,0,-1);
    AddVehicleComponent(carvid, 1010);
    AddVehicleComponent(carvid, 1074);
    AddVehicleComponent(carvid, 1087);
    ChangeVehiclePaintjob(carvid, 1);


    tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
    SetDynamicObjectMaterialText(tmpobjid, 0, "JustMe.77", 90, "Ariel", 20, 1, -16711936, 0, 1);
    AttachDynamicObjectToVehicle(tmpobjid, carvid, 0.000, 1.200, 0.292, 0.000, 270.000, 90.000);
    tmpobjid = CreateDynamicObject(1547,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
    SetDynamicObjectMaterial(tmpobjid, 0, 7419, "vegasbuild", "vgnwoodenwall_256", 0);
    AttachDynamicObjectToVehicle(tmpobjid, carvid, -0.020, -2.211, 0.100, 90.000, 90.000, 270.000);
    tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
    SetDynamicObjectMaterialText(tmpobjid, 0, "LnD 77", 120, "Ariel", 20, 1, -65536, 0, 1);
    AttachDynamicObjectToVehicle(tmpobjid, carvid, -0.010, -2.220, 0.073, 0.000, 0.000, 270.000);


    return 1;
    }



    Außerdem werden Ingame die attachten Objekte nicht angezeigt, weiß jemand woran das liegt?



    EDIT: Habe es selber hinbekommen, doch das Problem mit den Attachten Objekten besteht immer noch, jemand eine Idee woran es liegt?

    Wo liegt denn der Fehler?Habe so oft gesucht..


    Spoiler anzeigen

    #include <a_samp>
    #include <streamer>

    Spoiler anzeigen
    new carvid_0; //NRG
    new carvid_1; //Burrito
    new carvid_2; //Sultan
    new carvid_3 //Sultan

    Spoiler anzeigen
    public OnFilterScriptInit()
    {

    Spoiler anzeigen
    new tmpobjid;

    Spoiler anzeigen
    carvid_0 = CreateVehicle(522,984.726,-1544.247,13.174,357.938,0,0,-1); //NRG
    carvid_1 = CreateVehicle(482,979.305,-1523.298,13.669,175.674,0,0,-1); //Burrito
    carvid_2 = CreateVehicle(560,992.784,-1533.000,13.280,90.366,0,0,-1); //Sultan
    carvid_3 = CreateVehicle(560,992.784,-1533.000,13.280,90.366,0,0,-1); //Sultan

    //Tuning Sultan
    AddVehicleComponent(carvid_2, 1033);
    AddVehicleComponent(carvid_2, 1026);
    AddVehicleComponent(carvid_2, 1010);
    AddVehicleComponent(carvid_2, 1029);
    AddVehicleComponent(carvid_2, 1082);
    AddVehicleComponent(carvid_2, 1170);
    AddVehicleComponent(carvid_2, 1141);

    //Tuning Sultan
    AddVehicleComponent(carvid_3, 1033);
    AddVehicleComponent(carvid_3, 1026);
    AddVehicleComponent(carvid_3, 1010);
    AddVehicleComponent(carvid_3, 1029);
    AddVehicleComponent(carvid_3, 1082);
    AddVehicleComponent(carvid_3, 1170);
    AddVehicleComponent(carvid_3, 1141);

    Spoiler anzeigen
    //NRG-500
    tmpobjid = CreateDynamicObject(1654,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
    AttachDynamicObjectToVehicle(tmpobjid, carvid_0, -0.340, 0.180, 0.080, 0.000, 360.000, 270.000);

    Spoiler anzeigen
    //Burrito
    tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
    SetDynamicObjectMaterialText(tmpobjid, 0, "La cosa Nostra", 130, "Ariel", 80, 1, -1, 0, 1);
    AttachDynamicObjectToVehicle(tmpobjid, carvid_1, 0.942, -0.950, 0.471, 0.000, -6.799, 0.000);

    Spoiler anzeigen
    //Sultan1
    tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
    SetDynamicObjectMaterialText(tmpobjid, 0, "LCN", 130, "Ariel", 70, 1, -1, 0, 1);
    AttachDynamicObjectToVehicle(tmpobjid, carvid_2, 0.000, -0.110, 0.799, 180.000, 90.000, 270.000);

    //Sultan2
    tmpobjid = CreateDynamicObject(19483,0.0,0.0,-1000.0,0.0,0.0,0.0,-1,-1,-1,300.0,300.0);
    SetDynamicObjectMaterialText(tmpobjid, 0, "LCN", 130, "Ariel", 70, 1, -1, 0, 1);
    AttachDynamicObjectToVehicle(tmpobjid, carvid_3, 0.000, -0.110, 0.799, 180.000, 90.000, 270.000);

    Spoiler anzeigen
    public OnFilterScriptExit()
    {
    DestroyVehicle(carvid_0);
    DestroyVehicle(carvid_1);
    DestroyVehicle(carvid_2);
    DestroyVehicle(carvid_3);
    }

    Spoiler anzeigen
    public OnVehicleSpawn(vehicleid)
    {
    if(vehicleid == carvid_0)
    {
    }
    else if(vehicleid == carvid_1)
    {
    }
    else if(vehicleid == carvid_2)
    {
    AddVehicleComponent(carvid_2, 1033);
    AddVehicleComponent(carvid_2, 1033);
    AddVehicleComponent(carvid_2, 1033);
    AddVehicleComponent(carvid_2, 1033);
    AddVehicleComponent(carvid_2, 1033);
    AddVehicleComponent(carvid_2, 1033);
    AddVehicleComponent(carvid_2, 1033);
    }

    else if(vehicleid == carvid_3)
    {
    AddVehicleComponent(carvid_3, 1033);
    AddVehicleComponent(carvid_3, 1033);
    AddVehicleComponent(carvid_3, 1033);
    AddVehicleComponent(carvid_3, 1033);
    AddVehicleComponent(carvid_3, 1033);
    AddVehicleComponent(carvid_3, 1033);
    AddVehicleComponent(carvid_3, 1033);
    }
    }



    C:\Users\Dave\Desktop\Lacananana.pwn(9) : error 001: expected token: ";", but found "public"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    Ach was wären wir nur ohne dich Jeffry:


    Funktioniert reibungslos, doch eins möchte ich noch wissen. Ich habe gemerkt das du den Wert bei new str[64]; verändert hast.
    Ist das besser und wenn ja, wieso? Ich habe in Vermutung das man SAMP Technisch nur 64 Zeichen machen kann, bin mir aber nicht sicher.


    Klär mich bitte auf :D

    Jeffry:


    Hey Jeffry, ich bins wieder. Hat übrigends alles geklappt.


    Nur bin ich dabei jetzt die Befehle so umzuändern das nur noch Admins die Befehle benutzen können, habe da leider aber kleine Probleme.



    Mein Befehl sieht so aus:



    ocmd:tpgun(playerid,params[])
    {
    new str[256];
    if(Teleportgun[playerid] == 1)
    if(PlayerInfo[playerid][pAdmin] >= 5)
    {
    format(str, sizeof(str), "Teleportgun {FF0000}deaktiviert{FFFFFF}.");
    Teleportgun[playerid] = 0;
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    }
    else
    {
    format(str, sizeof(str), "Teleportgun {00FF00}aktiviert{FFFFFF}.");
    Teleportgun[playerid] = 1;
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    }
    else ErrorMessages(playerid, 1);
    return 1;
    }



    Habe da die Admin Abfrage eingebaut, bin Ingame Admin Level 5, doch beim eingeben des Befehls kommt die ErrorMessage (Nur Admins können den Befehl benutzen etc).



    Weißt woran das liegt? Ist das erste mal das ich in meinen Befehlen eine Admin Abfrage einbaue.




    So sieht z.B bei meinem Script ein AdminBefehl aus (nicht von mir):



    ocmd:akill(playerid, params[])
    {
    new id;
    if(PlayerInfo[playerid][pAdmin] >= 5)
    {
    if(sscanf(params, "u", id))return SendClientMessage(playerid, COLOR_GREY, "USAGE: /akill [playerid]");
    SetPlayerHealth(id, 0);
    new string[128];
    format(string, sizeof(string), "Admin %s has killed you!", GetName(playerid));
    SendClientMessage(id, COLOR_RED, string);
    }
    else ErrorMessages(playerid, 1);
    return 1;
    }

    Jeffry:


    Du meinst doch diese Funktion hier oder?


    stock GetWeaponSlot(weaponid) //©Jeffry
    {
    switch(weaponid)
    {
    case 0,1: return 0;
    case 2..9: return 1;
    case 22..24: return 2;
    case 25..27: return 3;
    case 28,29,32: return 4;
    case 30,31: return 5;
    case 33,34: return 6;
    case 35..38: return 7;
    case 16..18,39: return 8;
    case 41..43: return 9;
    case 10..15: return 10;
    case 44..46: return 11;
    case 40: return 12;
    default: return -1;
    }
    return -1;
    }


    Wenn nicht dann weiß ich auch nicht, entweder du gibst mir die falsche Seite oder es liegt daran das ich 20 Beiträge pro Seite habe (ist so eingestellt)

    Hallo, ich habe da ein kleinen schönen Befehl erstellt, nur komme ich bei einer Stelle nicht weiter.


    Mein Befehl sieht so aus:



    ocmd:sgun(playerid,params[])
    {
    new str[256];
    if(Secretgun[playerid] == 1)
    {
    format(str, sizeof(str), "Secretgun {FF0000}deaktiviert{FFFFFF}.");
    Secretgun[playerid] = 0;
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    }
    else
    {
    format(str, sizeof(str), "Secretgun {00FF00}aktiviert{FFFFFF}.");
    Secretgun[playerid] = 1;
    GivePlayerWeapon(playerid, 23, 10);
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    }
    return 1;
    }



    Der Befehl funktioniert wie gewollt, doch anstatt das ich alle Waffen lösche nachdem ich den Befehl wieder eingebe, möchte ich das die AKTUELLE Waffe die ich in der Hand halte gelöscht wird.
    Ich habe es auch mit GetPlayerWeapon versucht doch komme nicht weiter..



    Dennoch habe ich noch eine andere Frage, insgesamt also:


    1. Wie lösche ich die aktuelle Waffe?
    2. Wie lösche ich die im Script bestimmte Waffen ID? Heißt ich habe in der Hand eine Deagle, eine Sniper und eine Shotgun. Ich habe die Shotgun in der Hand doch wenn ich den Befehl wieder eingebe soll sich die Deagle löschen. Ist das möglich?