Beiträge von Simon

    okay, der spawnt net an seiner alten position, obwohl zwsichen logout und login weniger als 15 min liegen


    public Anmelden(playerid)
    {
    new Spielerdatei[256], name[MAX_PLAYER_NAME], str[50], hour, minute, second, year, month, day, str2[50], str3[20], array1[2][50], array2[2][50], zeit[4];
    GetPlayerName(playerid,name,sizeof(name));
    gettime(hour,minute,second);
    getdate(year,month,day);
    format(str, sizeof str, "%d:%d",hour,minute); //hier wird die aktuelle Zeit abgefragt
    format(str2,sizeof(str2),"%s",dini_Get(Spielerdatei,"lastlogout")); //hier wird die zeit seines letzten logouts ausgelesen
    format(str3,sizeof(str3),"%d.%d.%d",day, month, year);
    format(Spielerdatei,sizeof(Spielerdatei),"/LCN/%s.ini",name);
    split(str2,array1,':'); // hier wird die stunde und Minute seines letzten logouts in 2 strings geteilt
    split(str,array2,':'); // hier wird die jetztige Stunde und Minute in 2 strings geteilt
    zeit[0] = strval(array1[0]); //stunde des letzten logouts
    zeit[1] = strval(array1[1]); // minute des letzten logouts
    zeit[2] = strval(array2[0]); // aktuelle stunde
    zeit[3] = strval(array2[1]); // aktuelle minute
    if(zeit[2] - zeit[0] <= 0 && zeit[3] - zeit[0] <= 15 && strcmp(str3, dini_Get(Spielerdatei,"logoutdate"), true) == 0)
    {
    respawn[playerid] = 1; //die variable wird beim public OnPlayerSpawn abgefragt..
    }
    dini_Set(Spielerdatei,"lastlogin",str);
    dini_Set(Spielerdatei,"logindate",str3);
    SpawnPlayer(playerid);
    return 1;
    }


    und wenn er dann spawnt wird abgefragt ob die variable respawn[playerid] 1 ist und wenn ja, wird er an seiner alten pos gespawnt..
    public SetPlayerSpawn(playerid)
    {
    SetPlayerSkin(playerid,Spieler[playerid][Skin]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    if(respawn[playerid] == 1)
    {
    SetPlayerPos(playerid,Spieler[playerid][posx],Spieler[playerid][posy],Spieler[playerid][posz]);
    SetPlayerVirtualWorld(playerid,Spieler[playerid][virtualworld]);
    SetPlayerInterior(playerid,Spieler[playerid][interior]);
    respawn[playerid] = 0;
    if(Spieler[playerid][posz] >= 25)
    {
    GivePlayerWeapon(playerid,46,1);
    }
    }
    return 1;
    }

    //edit: habs nun mal selber probiert, aber irgentwie will es nicht so wie ich will. Keine Ahnung, wo ich da nen Fehler habe..


    public Anmelden(playerid) // der Spieler gibt sein passwort ein und wird angemeldet
    {
    new Spielerdatei[256], name[MAX_PLAYER_NAME], str[50], hour, minute, second, year, month, day, str2[50], str3[20], array1[2][50], array2[2][50], zeit[4];
    GetPlayerName(playerid,name,sizeof(name));
    gettime(hour,minute,second);
    getdate(year,month,day);
    format(str, sizeof str, "%d:%d",hour,minute); //hier wird die aktuelle Zeit abgefragt
    format(str2,sizeof(str2),"%s",dini_Get(Spielerdatei,"lastlogout")); //hier wird die zeit seines letzten logouts ausgelesen
    format(str3,sizeof(str3),"%d.%d.%d",day, month, year);
    format(Spielerdatei,sizeof(Spielerdatei),"/LCN/%s.ini",name);
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    Spieler[playerid][Admin] = dini_Int(Spielerdatei,"Admin");
    Spieler[playerid][Skin] = dini_Int(Spielerdatei,"Skin");
    Spieler[playerid][Leader] = dini_Int(Spielerdatei,"Leader");
    Spieler[playerid][Member] = dini_Int(Spielerdatei,"Member");
    Spieler[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    Spieler[playerid][Score] = dini_Int(Spielerdatei,"Score");
    Spieler[playerid][posx] = dini_Int(Spielerdatei,"posx");
    Spieler[playerid][posy] = dini_Int(Spielerdatei,"posy");
    Spieler[playerid][posz] = dini_Int(Spielerdatei,"posz");
    Spieler[playerid][virtualworld] = dini_Int(Spielerdatei,"virtualworld");
    Spieler[playerid][interior] = dini_Int(Spielerdatei,"interior");
    SetPlayerScore(playerid,Spieler[playerid][Score]);
    split(str2,array1,':'); // hier wird die stunde und Minute seines letzten logouts in 2 strings geteilt
    split(str,array2,':'); // hier wird die jetztige Stunde und Minute in 2 strings geteilt
    zeit[0] = strval(array1[0]); //stunde des letzten logouts
    zeit[1] = strval(array1[1]); // minute des letzten logouts
    zeit[2] = strval(array2[0]); // aktuelle stunde
    zeit[3] = strval(array2[1]); // aktuelle minute
    if(zeit[2] - zeit[0] <= 0 && zeit[3] - zeit[0] <= 15 && strcmp(str3, dini_Get(Spielerdatei,"logoutdate"), true) == 0) //hiet wird stunde - stunde und minuten - minuten gerechnet und überprüft, ob zwischen logout und login weniger als 15 minuten liegen
    {
    respawn[playerid] = 1; //die variable wird beim public OnPlayerSpawn abgefragt..
    }
    dini_Set(Spielerdatei,"lastlogin",str);
    dini_Set(Spielerdatei,"logindate",str3);
    SpawnPlayer(playerid);
    return 1;
    }


    Logout:


    public OnPlayerDisconnect(playerid, reason)
    {
    new SpielerName[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    GetPlayerPos(playerid,x,y,z);
    Spieler[playerid][posx] = x;
    Spieler[playerid][posy] = y;
    Spieler[playerid][posz] = z;
    Spieler[playerid][interior] = GetPlayerInterior(playerid);
    Spieler[playerid][virtualworld] = GetPlayerVirtualWorld(playerid);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(togjoin[i] == 0)
    {
    if(reason == 0)
    {
    new DisConnect[256];
    format(DisConnect,sizeof(DisConnect),"%s (%d) hat die Verbindung verloren!",SpielerName,playerid);
    SendClientMessage(i,0xFFFFFFFF, DisConnect);
    }
    if(reason == 1)
    {
    new DisConnect[256];
    format(DisConnect,sizeof(DisConnect),"%s (%d) hat sich ausgeloggt!",SpielerName,playerid);
    SendClientMessage(i,0xFFFFFFFF, DisConnect);
    }
    if(reason == 2)
    {
    new DisConnect[256];
    format(DisConnect,sizeof(DisConnect),"%s (%d) wurde gekickt!",SpielerName,playerid);
    SendClientMessage(i,0xFFFFFFFF, DisConnect);
    }
    }
    }
    logout[playerid] = 1;
    respawn[playerid] = 0;
    Update(playerid);
    return 1;
    }


    Update:


    public Update(playerid)
    {
    new Spielerdatei[256],SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/LCN/%s.ini",SpielerName);
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(Spielerdatei,"Score",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Skin",Spieler[playerid][Skin]);
    dini_IntSet(Spielerdatei,"ban",Spieler[playerid][ban]);
    dini_IntSet(Spielerdatei,"Member",Spieler[playerid][Member]);
    dini_IntSet(Spielerdatei,"Leader",Spieler[playerid][Leader]);
    dini_FloatSet(Spielerdatei,"posx",Spieler[playerid][posx]);
    dini_FloatSet(Spielerdatei,"posy",Spieler[playerid][posy]);
    dini_FloatSet(Spielerdatei,"posz",Spieler[playerid][posz]);
    dini_IntSet(Spielerdatei,"interior",Spieler[playerid][interior]);
    dini_IntSet(Spielerdatei,"virtualworld",Spieler[playerid][virtualworld]);
    if(logout[playerid] == 1)
    {
    new hour, minute, second, year, month, day, str1[50], str2[50];
    gettime(hour,minute,second);
    getdate(year,month,day);
    format(str1,sizeof(str1), "%d:%d", hour, minute); //hier wird die aktuelle Zeit abgefragt
    dini_Set(Spielerdatei,"lastlogout",str1);
    format(str2,sizeof(str2),"%d.%d.%d",day, month, year); //hier wird das aktuelle Datum abgefragt
    dini_Set(Spielerdatei,"logoutdate",str2);
    }
    return 1;
    }


    registrieren;
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Dialog_Regis)
    {
    if(response)
    {
    new Spielerdatei[64], name[MAX_PLAYER_NAME], day, month, year, second, minute, hour, str1[50], str2[50];
    GetPlayerName(playerid,name,sizeof(name));
    gettime(hour,minute,second);
    format(str1, sizeof str1, "%d:%d", hour, minute); //Hier ist die ganze ausgabe, sieht schwer aus, ist es aber nicht!
    getdate(year,month,day);
    format(str2,sizeof(str2),"%d.%d.%d",day,month,year);
    format(Spielerdatei,sizeof(Spielerdatei),"/LCN/%s.ini",name);
    dini_Create(Spielerdatei);
    if(!strlen(inputtext))return ShowPlayerDialog(playerid, Dialog_Regis, DIALOG_STYLE_INPUT, "Registriere dich mit einem Passwort!", "Registrieren", "Registrieren!", "Abbrechen!");
    dini_Set(Spielerdatei,"Passwort",inputtext);
    dini_IntSet(Spielerdatei,"Admin",0);
    dini_IntSet(Spielerdatei,"ban",0);
    dini_Set(Spielerdatei,"bangrund","0");
    dini_IntSet(Spielerdatei,"Skin",0);
    dini_IntSet(Spielerdatei,"Member",0);
    dini_IntSet(Spielerdatei,"Leader",0);
    dini_IntSet(Spielerdatei,"Geld",1000);
    dini_IntSet(Spielerdatei,"Score",1);
    dini_FloatSet(Spielerdatei,"posx",0.0);
    dini_FloatSet(Spielerdatei,"posy",0.0);
    dini_FloatSet(Spielerdatei,"posz",0.0);
    dini_IntSet(Spielerdatei,"interior",0);
    dini_IntSet(Spielerdatei,"virtualworld",0);
    dini_Set(Spielerdatei,"regdate",str2);
    dini_Set(Spielerdatei,"lastlogin",str1);
    dini_Set(Spielerdatei,"logindate",str2);
    dini_Set(Spielerdatei,"lastlogout","- - -");
    dini_Set(Spielerdatei,"logoutdate","- - -");

    Anmelden(playerid);
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest automatisch eingeloggt!");
    }
    else
    {
    ShowPlayerDialog(playerid, Dialog_Regis, DIALOG_STYLE_INPUT, "Registrieren", "Registriere dich mit einem Passwort!", "Registrieren!", "Abbrechen!");
    }
    }
    return 1;
    }


    spawn:


    public OnPlayerSpawn(playerid)
    {
    if(duty[playerid] == 1)
    {
    SetPlayerColor(playerid,0xBB0000FF);
    SetPlayerSkin(playerid,147);
    }
    else
    {
    SetPlayerColor(playerid,0xFFFFFFFF);
    SetPlayerArmour(playerid,0.0);
    SetPlayerHealth(playerid,100.0);
    }
    SetPlayerSpawn(playerid);
    TogglePlayerControllable(playerid,1);
    return 1;
    }


    SetPlayerSpawn:
    public SetPlayerSpawn(playerid)
    {
    SetPlayerSkin(playerid,Spieler[playerid][Skin]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    if(respawn[playerid] == 1) // hier wird nun die variable wieder verwendet..
    {
    SetPlayerPos(playerid,Spieler[playerid][posx],Spieler[playerid][posy],Spieler[playerid][posz]);
    SetPlayerVirtualWorld(playerid,Spieler[playerid][virtualworld]);
    SetPlayerInterior(playerid,Spieler[playerid][interior]);
    respawn[playerid] = 0;
    if(Spieler[playerid][posz] >= 25)
    {
    GivePlayerWeapon(playerid,46,1);
    }
    }
    else
    {
    if(Spieler[playerid][Member] == 1 || Spieler[playerid][Leader] == 1)
    {
    SetPlayerPos(playerid,685.2319,-1276.2795,13.5609);
    }
    else if(Spieler[playerid][Member] == 2 || Spieler[playerid][Leader] == 2)
    {
    SetPlayerPos(playerid,-1743.0505,1398.6871,7.1875);
    }
    else if(Spieler[playerid][Member] == 3 || Spieler[playerid][Leader] == 3)
    {
    SetPlayerPos(playerid,-2178.6472,714.3528,53.8906);
    }
    else if(Spieler[playerid][Member] == 4 || Spieler[playerid][Leader] == 4)
    {
    SetPlayerPos(playerid,-2502.3442,1207.9100,37.4283);
    }
    else if(Spieler[playerid][Member] == 5 || Spieler[playerid][Leader] == 5)
    {
    SetPlayerPos(playerid,2597.3418,1888.7904,11.0312);
    }
    else if(Spieler[playerid][Member] == 6 || Spieler[playerid][Leader] == 6)
    {
    SetPlayerPos(playerid,2512.2119,-1689.4874,13.5450);
    }
    }
    return 1;
    }


    Ich hoffe ihr könnt mir da helfen, denn ich finde den fehler nicht. Habe keine Errors oder Warnings...

    das ist mir kla... die position, das interior und die virtuale welt wird abgefragt und in eine datei geschrieben..


    ich will nicht, dass er grundsätzlich an seiner alten position spawnt, nur wenn er sich innerhalb 15 minuten nach dem logout wieder einloggt..


    //edit: den Fehler habe ich gefunden.


    wenn ich ne variable erstelle variable[MAX_PLAYER_NAME]; dann gibt die variable ein string wieder, der maximal die länge hat, die in den eckigen klammern steht.
    Ich möchte aber, dass die Variable einem Namen zugewiesen wird.


    Eine playerid wird so zugewiesen: variable[MAX_PLAYERS]; >> variable[playerid] = 1;


    wie kann ich der variablen nen Namen zuweisen?

    nochmal deutlicher erklärt:


    Wenn sich ein Spieler einloggt und auf spawn klickt, wird er ja in den meisten fällen gespawnt :D
    Nehmen wir an, der Spieler wird am LSPD gespawnt.
    Der Spieler befindet sich zur Zeit am BSN und loggt sich aus. Dann loggt er sich wieder ein und wird am LSPD gespawnt.


    Ich möchte nun dann ,wenn man sich ausloggt und nach wenigen Minuten wieder einloggt, das man nicht am Spawnpunkt (hier LSPD) spawnt, sondern an der letzten position (hier BSN).


    Das Problem was ich habe: Ich kann variablen den playerids zuweisen: variable[MAX_PLAYERS]. Jedoch ist der Spieler Offline und er hat keine ID. Nun weise ich der variable einen Namen zu und zwar den Namen des spielers: variable [MAX_PLAYER_NAME].


    Sobald sich der Spieler ausloggt, wird die variable "spawntime[SpielerName]" auf 1 gesetzt und ein Timer von 15 Minuten gestartet. Wenn dieser Timer vorbei ist, soll die variable wieder auf 0 gesetzt werden: "spawntime[SpielerName] = 0;"


    Wenn der Spieler sich einloggt, wird überprüft, ob die variable mit seinem Namen 1 oder 0 ist. ist sie 0, spawnt er am spawnpunkt. ist sie 1, spawnt er an seiner alten Position.


    Nun Mein Problem. Ich muss mit Hilfe von SetTimerEx den Namen an das public übergeben, damit ich im public die variable mit den namen auf 0 setzten kann.


    new spawntime[MAX_PLAYER_NAME];
    new spawntimer[MAX_PLAYER_NAME];


    public OnPlayerDisconnect(playerid, reason);
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    spawntime[SpielerName] = 1;
    spawntimer[SpielerName] = SetTimerEx("spawntimeende",60000*15,0,"s",SpielerName);
    return 1;
    }

    public spawntimeende(name[])
    {
    spawntime[name] = 0;
    return 1;
    }


    Nun kommen folgende Errors:


    ähm iwie ist es doch unlogisch :S


    der Spieler ist ja offline.. der timer startet, wenn der spieler offline geht und wird gekillt wenn er online kommt.
    wenn das public aufgerufen wird, soll die variable mit dem namen, der mit dem SetTimerEx wiedergegeben werden soll, auf 0 gesetzt werden.

    jo sau logisch :wacko:


    ich bekomme Erros immer wenn ich die variable "spawntime[SpielerName]" benutze..


    public spawntimeende(name[])
    {
    new SpielerName[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GetPlayerName(i,SpielerName,sizeof(SpielerName));
    if(!strcmp(name,SpielerName,true))
    {
    spawntime[SpielerName] = 1;
    return 1;
    }
    }
    return 0;
    }


    //edit: wäre logisch wenn ich den error posten würde :S


    Zitat

    error 033: array must be indexed (variable "SpielerName")

    Guten Tag


    ich möchte, dass man, wenn man sich wenige minuten nachdem man sich ausgeloggt hat, wieder am selben ort spawnt.
    Dazu starte ich einen Timer, sobald der Spieler sich ausgeloggt und es wird eine variable auf 1 gesetzt. Wenn der Timer zuende ist und das public aufgerufen wird, soll die variable wieder auf 0 gesetzt werden.


    wenn der Spieler sich einloggt und die variable auf 1 ist, wird er an seiner alten position gespawnt.


    Da der Spieler Offline ist, kann ich nicht variable[MAX_PLAYERS] nutzen. Ich habe variable[MAX_PLAYER_NAME].


    Nun habe ich das Problem mit den timer, wie kann ich den namen denn wiedergeben? also ich mache ansonsten:


    public test(playerid)
    {
    variable[playerid] = 0;
    return 1;
    }


    wie mache ich das nun mit dem Spielernamen?


    public OnPlayerDisconnect(playerid, reason)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    spawntime[SpielerName] = 1;
    spawntimer[SpielerName] = SetTimerEx("spawntimeende",60000*15,0,"s",SpielerName);
    return 1;
    }


    public spawntimeende(???)
    {
    ???
    return 1;
    }


    Ich hoffe ihr könnt mir da helfen

    s0beit funkt auf 0.3c net mehr? hmm ich glaube aber es dauert net mehr lang dann wird s0beit auch wieder auf version c gehen.


    Zitat

    Nur weil ihr kein Plan habt? Mein Gott es ist 1. nicht verboten zu cheaten und 2. würdet ihr lesen können, hättet ihr längst erkannt, dass dieser ihn zum Testen braucht.

    da sei dir mal nicht so sicher, dass cheaten net verboten ist.. aber das ist hier nicht das Thema..

    Guten Tag


    ich wollte mal wissen, ob man Objekte zu einer Mapdatei convertieren kann.


    Man kann die gesavete map in MTA ja in ein converter kopieren und er spuckt den pawn code aus. Geht das auch andersherum.
    Ich habe in nem alten script etwas gemappt, wovon ich ein teil brauch. nun weiß ich nicht welche objekte welche sind, und würde die ganzen objekte zu einer MTA map datei convertieren und im MTA die unnötigen Objekte dieser Map löschen.


    wäre sehr nett wenn ihr mir einen Link schicken könntet


    mfg
    Simon

    lade dir mod S0beit runter.
    das geht schnell und kannst ganz einfach wieder deinstallieren.
    gibts keine viren oder probleme danach.
    am besten kann man es selber testen, denn du weiß am besten was du gescriptet hast..

    Ich habs früher gezockt wie so ein irrer.. auch über internet..


    Es hat mega spaß gemacht, keine Ahnung ob es das noch gibt: Bei bestimmten Bossen Schlüssel für eine geheime Stadt ähnlich wie das Geheime Kuh Level.
    Schlüssel der Zerstörung, Des Hasses und noch was, ich weiß es nicht mehr.


    Wenn man von jedem je 3 hatte, kam man in 3 überstätte, wo Bosse wie Überduriel oder überAndariel Aka lilith oder so auftauchten.. dort bekam man wenn die überbosse besigt hat jeweils ein Organ. die 3 Organe musste man nun mischen und dann kam man nach Übertristram oder sowas und da kammen überstarke monster mit den 3 letzten bossen, Baal, diablo und der andere keine Ahnung xD iwas mit "m", die jedoch mega stark waren und nur durch bestimmte Charaktäre geschwächt werden konnten um sie überhaupt zu besigen, da irgentjemand deine Werte so runtersetzt, das man nach wenigen Schlägen tot war.. Wenn mans geschafft hat, hat man so ne geile Fackel bekommen die, wenn sie passend und gut war echt nice war..


    würde mich mal interessieren ob das noch gibt. Außerdem gabs solche "Runs" da war son bot der immer ein "Baalrun" nach dem anderen gestartet hat, immer mit maximale SPieleranzahl auf Hölle durch Baal gerannt um zu LVLn. echt nice war es und macht immernoch hamma spaß!


    Dann gab es noch solche Ringe, ich glaube die hießenen Steine des Jordans oder Stein von Jordan oder so, wenn dort auf einem Server ne bestimmte Anzahl von verkauft worden sind, tauchte Überdiablo iwo auf und joa, wenn der besiegt wurde, gab es hamma sachen..


    Jedoch Spiele ich das immoment nicht mehr, warte auf Diablo 3, aber das dauert wohl noch :S

    mir hat bisher SA am besten gefallen weil man da einfach machen kann was man will, ob schwimmen tauschen fliegen fahren laufen alles! du kannst dein charakter trainieren und so.


    Ich glaube die neue version von GTA wird wohl ähnlich wie GTA IV. die Grafik kann man ja schon kaum toppen. Es wird wohl ne neue Map geben, vllt größer als sonst und natürlich andere Fahrzeuge und andere Waffen. Ich denke ma dann wird das Game ansich viel geiler, vllt auch dem RL viel näher, wie es schon in GTA IV war.


    Es kann aber genau das passieren was wir alle nicht hoffen, das die neue Version voll fürn Ar*** ist..

    Hey.


    Ich habe mir ein anti waffen hack gebastelt. ich habe als Vorlage das Antiwaffenhack von bfx genommen.
    Nun wird jede Sekunde überprüft ob der Spieler "illegale" waffen hat.


    hier mal wie ich es habe:


    //------------Anti Waffen:------------//
    new Weapons[MAX_PLAYERS][13];//
    new Ammos[MAX_PLAYERS][13];//
    forward GetSlot(weaponx);//
    forward GetPlayerWeapons(playerid);//
    new Checked_Weapons[MAX_PLAYERS][13];//
    new Checked_Ammos[MAX_PLAYERS][13];//
    //-----------------------------------//


    public OnGameModeInit()
    {
    SetTimer("check",1000,1);
    return 1;
    }


    public check()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    //wafffen:
    for(new j = 0;j<13;j++)
    {
    GetPlayerWeapons(i);
    if(Checked_Weapons[i][j] != Weapons[i][j])
    {
    cheater[i] = 5; // sieht unlogisch aus, jedoch wird diese variable noch woanders verwendet..
    if(cheater[i] >= 5)
    {
    new bstr[256],name[MAX_PLAYER_NAME],Spielerdatei[256];
    GetPlayerName(i,name,sizeof(name));
    format(bstr,sizeof(bstr),"%s wurde gebannt, Grund: Waffenhack", name);
    SendClientMessageToAll(0xFF0000FF,bstr);
    format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.ini", name);
    dini_Set(Spielerdatei,"bangrund","Waffenhack");
    dini_IntSet(Spielerdatei,"ban",1);
    Kick(i);
    }
    }
    }
    }
    return 1;
    }


    public GetSlot(weaponx)
    {
    new slot;
    if(weaponx == 0 || weaponx == 1){slot = 0;}
    else if(weaponx > 8 && weaponx < 10){slot = 1;}
    else if(weaponx > 9 && weaponx < 16){slot = 10;}
    else if(weaponx > 15 && weaponx < 20){slot = 8;}
    else if(weaponx > 21 && weaponx < 25){slot = 2;}
    else if(weaponx > 24 && weaponx < 28){slot = 3;}
    else if(weaponx == 28 || weaponx == 29 || weaponx == 32){slot = 4;}
    else if(weaponx == 30 || weaponx == 31){slot = 5;}
    else if(weaponx == 33 || weaponx == 34){slot = 6;}
    else if(weaponx > 34 || weaponx < 39){slot = 7;}
    return slot;
    }


    stock p_GivePlayerWeapon(playerid,Weapon,ammo)
    {
    Weapons[playerid][GetSlot(Weapon)] = Weapon;
    Ammos[playerid][GetSlot(Weapon)] = ammo;
    GivePlayerWeapon(playerid,Weapon,ammo);
    }


    stock p_ResetPlayerWeapons(playerid)
    {
    for(new i = 0;i<13;i++)
    {
    Weapons[playerid][i] = 0;
    Ammos[playerid][i] = 0;
    }
    ResetPlayerWeapons(playerid);
    }


    stock p_GetPlayerWeaponData(playerid,slotx,&weaps,&ammoz)
    {
    GetPlayerWeaponData(playerid,slotx,weaps,ammoz);
    }


    public GetPlayerWeapons(playerid)
    {
    for(new i = 0;i<13;i++)
    {
    GetPlayerWeaponData(playerid,i,Checked_Weapons[playerid][i],Checked_Ammos[playerid][i]);
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    for(new i = 0;i<13;i++)
    {
    Weapons[playerid][i] = 0;
    Ammos[playerid][i] = 0;
    Checked_Weapons[playerid][i] = 0;
    Checked_Ammos[playerid][i] = 0;
    }
    return 1;
    }


    //bsp command:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp("/gun", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,1.0,687.0,-1304.5022,13.6058))
    {
    p_GivePlayerWeapon(playerid,14,1);
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,684.0,-1304.5022,13.6058))
    {
    p_GivePlayerWeapon(playerid,23,50);
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,681.0,-1304.5022,13.6058))
    {
    p_GivePlayerWeapon(playerid,24,50);
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,681.0,-1300.4457,13.6058))
    {
    p_GivePlayerWeapon(playerid,25,50);
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,684.0,-1300.4457,13.6058))
    {
    p_GivePlayerWeapon(playerid,29,150);
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,687.0,-1300.4457,13.6058))
    {
    p_GivePlayerWeapon(playerid,33,50);
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,684.0,-1293.5950,13.6058))
    {
    p_GivePlayerWeapon(playerid,31,200);
    }
    if(IsPlayerInRangeOfPoint(playerid,1.0,687.0,-1293.5950,13.6058))
    {
    p_GivePlayerWeapon(playerid,30,200);
    }
    }
    return 1;
    }


    Mein Problem: ich gehe an diesen positionen und gebe /gun ein, und ich bekomme die waffe. Zwischendurch werde ich aber gebannt. als wenns zufall wäre..
    An Lags liegt es nicht..


    Ich hoffe ihr könnt mir da helfen, das Script hat keine Warnings oder Errors


    mfg
    Simon

    genau das möchte ich...


    wie gesagt habs mal versuchtg aber da ein error bekommen.. bin mir sowieso nicht sicher ob das so überhaupt hinhaut..

    hm also:


    wenn man ein auto zu jemanden porten will zum beispiel:


    /bringcar carid playerid.


    dazu brauche ich die carid.


    die carids sind jenachdem wie die autos gespawnt sind.


    Wenn ich nun ein Adminbefehl mache: /showcarid. dann sollen an jedem auto ein 3dtext stehen mit der carid.
    Dieser 3dTextlabel soll nur für den admin sichtbar sein: 3dTextLabelForPlayer.


    nun kann man ganz einfach wenn man vor dem auto steht: /bringcar x 0
    das Auto mit der carid x wird nun zum Spieler mit der id 0 geportet.


    jedoch muss man dazu die Zahl x wissen, und damit man net rumprobiert wollte ich es mit einem 3dtext am auto machen.


    //edit: habs nun einfach mal nen 1. versuch gestartet:


    if(strcmp("/showcarid", cmdtext, true, 10) == 0)
    {
    if(Spieler[playerid][Admin] >= 1)
    {
    if(showcarid[playerid] == 0)
    {
    showcarid[playerid] = 1;
    for(new a = 0; a < MAX_VEHICLES; a++)
    {
    new str[20];
    format(str,sizeof(str),"carid: %d",a);
    autoid[a] = CreatePlayer3DTextLabel(playerid,str,0x005EFFFF,0.0,0.0,0.0,30.0);
    Attach3DTextLabelToVehicle(autoid[a],a,0.0,0.0,1.5);
    }
    }
    else
    {
    showcarid[playerid] = 0;
    for(new a = 0; a < MAX_VEHICLES; a++)
    {
    DeletePlayer3DTextLabel(playerid,autoid[a]);
    }
    }
    }
    }


    jedoch bekomme ich in der zeile Attach3DTextLabel ein Tagmismatch error.

    jap dl weiß ich wohl.
    ne die carids wie sie gespawnt sind.
    also /getcar [carid] dann porte ich das car mit der jeweiligen carid zu mir. ich wollte nun die carid´s der autos an das auto packen als 3dtextlabel.

    Guten Tag


    Ich würde gerne, das die Admins per befehl die carids der autos sehen können. Und zwar soll ein 3dTextlabel an das auto mit der carid gehängt werden.
    Jedoch weißt ich nicht genau wie ich das machen soll.
    so sollte der befehl aussehen:


    if(strcmp("/showcarid", cmdtext, true, 10) == 0)
    {
    if(Spieler[playerid][Admin] >= 1)
    {
    if(showcarid[playerid] == 0)
    {
    //carids im form von 3dtext an jedes auto setzen
    showcarid[playerid] = 1;
    }
    else
    {
    //carids am auto wieder entfernen
    showcarid[playerid] = 0;
    }
    }
    }