Beiträge von Darklight

    Kurz eine Frage.
    Ich habe mit einer Variable, die ich AutoHausLS[9] genannt habe, Autos hinzugefügt.
    Gibt es eine Möglichkeit, wie ich für alle Autos, welche sich in der Variable befinden, die SetVehicleParamsEx benutze.


    Also ich möchte nicht jedes mal schreiben: SetVehicleParamsEx(AutoHausLS[0], ...); SetVehicleParamsEx(AutoHausLS[1], ...);
    Sondern das dies für alle gleichzeitig geschieht.


    Danke

    if (strcmp("/kleinhaus", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 100, 1650.47692871,-1726.48388672,1493.25354004))
    {
    GetPlayerPos(playerid, a1, b2, c3);
    b_CreateObject(10829, a1, b2, c3-2, 0.0, 0.0);
    return 1;
    }
    return 1;
    }


    Einfach bei der Z-Koordinate ein Minus 2 (-2) einsetzen.

    Hab mal eine Frage.
    Gibt es eine Möglichkeit die ID eines Fahrzeuges herauszufinden, ohne das der Spieler in diesem Sitzt ?


    Ich möchte nämlich das Auto eines Spielers nach dem Disconnect "verschwinden" lassen, wofür ich aber die VehicleID bräuchte.

    Dir fehlt die Überschrift(caption).


    Versuch es mal so:
    ShowPlayerDialog(playerid, DIALOG_REGISTER2, DIALOG_STYLE_LIST, "Wähle dein Geschlecht","Männlich\r\nWeiblich", "OK", "Abbrechen");

    Abend Breadfisher,


    ich habe momentan ein kleines Problem.
    Ich möchte, dass wen ein Spieler einen Befehl (z.B. /test) eingibt, über einem Bot ein ChatBubble erscheint.
    Das Problem ist, dass ich den Namen des Bots nicht weiß. Wie kann ich den Namen des Bots herausfinden ?


    Ich komm leider nicht selbst darauf.

    Ein klein wenig unfair ist es schon, hast recht.


    GTA erkennt vllt. kein Unterschied, aber durch JoyPad zielt man ja automatisch immer auf den Kopf eines Spielers. Kann man dieses Zielen denn nicht erkennen ?

    Abend Breadfisher,


    mich würde es mal interessieren, ob es eine Möglichkeit gibt herauszufinden, ob ein Spieler ein JoyPad (bzw. die JoyPad Funktion) nutzt.
    Das automatische Zielen ist nämlich unfair anderen Spieler gegenüber.

    Guten Abend,


    ich habe heute mal ein wenig mit NPC's herumexperementiert.
    Zum Anfang habe ich es erst einmal mit einem NPC versucht.
    Mein Problem ist nun folgendes. Ich habe einen Timer erstellt, der wenn der Spieler auf die SkinAuswahl kommt, er sofort gespawnt wird.
    public OnPlayerRequestClass(playerid, classid)
    {
    SetTimer("PlayerSpawn",10,false);
    return 1;
    }
    Das funktioniert alleine auf dem Server auch ganz gut.
    Sobald aber der NPC connected und gleich danach ich versuche auf dem Server zu spielen, werde ich nicht gespawnt!
    Ich weiß leider nicht warum. Aber es muss auf jeden Fall an dem NPC liegen.


    Hier noch der Public PlayerSpawn:
    public PlayerSpawn(playerid)
    {
    new pfad[64];
    new npcname[64];
    new pName[MAX_PLAYER_NAME];
    new Float:Posx,Float:Posy,Float:Posz;
    if(IsPlayerNPC(playerid)) {
    GetPlayerName(playerid,npcname,64);
    if(!strcmp(npcname,"NPCTutorial",true)) {
    SetSpawnInfo(playerid,0,59,1153.4940,-1458.0972,15.7969,86.8402,0,0,0,0,0,0);
    new Text3D:NPCTutorial = Create3DTextLabel("Tutorial",ORANGE,0,0,0,10,0,0);
    Attach3DTextLabelToPlayer(NPCTutorial, playerid, 0.0, 0.0, 0.2);
    SetPlayerColor(playerid,0x00FF00AA);
    return 1;
    }
    }
    else {
    TextDrawShowForPlayer(playerid,Text:LifeIsTheFun);
    SpawnPlayer(playerid);
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    Posx = dini_Float(pfad,"XPosition");
    Posy = dini_Float(pfad,"YPosition");
    Posz = dini_Float(pfad,"ZPosition");
    SetPlayerPos(playerid,Posx,Posy,Posz);
    }
    return 1;
    }

    Hm, ich werde beides mal testen.


    Danke euch beiden.


    //edit: Das FS erstellt nur am unteren Bildschirmrand einen Balken und lässt Text laufen. Ich werds also nach der Idee von Snail machen müssen.

    Hey BreadfishUser,


    ich versuche momentan mein GameMode zu erweitern. Hierbei sollen die Koordinaten eines Spielers beim ausloggen gespeichert werden, ebenso wie sein Skin. Sobald der Spieler sich wieder einloggt, sollen die Koordinaten und die SkinID geladen werden und auf den Spieler angewendet werden.
    Mein Problem ist, dass sich die Koordinaten und die SkinID beim einloggen auf Null setzen, bzw. der Spieler nicht an seiner letzten Position spawnt.


    Hier die Ausschnitte meines GameModes.


    enum Info
    {
    Adminlevel,
    Scripter,
    Fraktion,
    Leader,
    Skin,
    Rang,
    XPosition,
    YPosition,
    ZPosition
    }
    new pInfo[MAX_PLAYERS][Info];


    public OnPlayerRequestClass(playerid, classid)
    {
    new pfad[64];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    if(dini_Exists(pfad)){
    SetSpawnInfo(playerid,0,pInfo[playerid][Skin],pInfo[playerid][XPosition],pInfo[playerid][YPosition],pInfo[playerid][ZPosition],0,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    }
    else {
    SetPlayerPos(playerid,1915.6471,1513.5712,17.6828);
    SetPlayerCameraPos(playerid,1910.0701,1513.6324,18.1750);
    SetPlayerCameraLookAt(playerid,1915.9482,1513.4377,17.6828);
    SetPlayerFacingAngle(playerid,92.8607);
    }
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    ClearPlayerChat(playerid);
    SendClientMessage(playerid, GELB, "Bitte Warten...");
    new pfad[64];
    new pName[MAX_PLAYER_NAME];
    new igmessage[64];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    format(igmessage,sizeof(igmessage),"{CC3333}%s {FFFFFF}hat die Stadt betreten",pName);
    SendClientMessageToAll(WEIS,igmessage);
    if(dini_Exists(pfad)) {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Ihr Account wurde gefunden.\nGeben sie bitte ihr Passwort ein:","Login","Abbrechen");
    return 1;
    }
    else {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte geben sie ihr gewünschtes Passwort ein:","Registrieren","Abbrechen");
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pfad[64];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    SpielerSpeichern(playerid);
    ResetVariablen(playerid);
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN) {
    if(response==0) {
    SendClientMessage(playerid,BLAU,"Sie haben den Anmeldevorgang abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response==1) {
    if(!strlen(inputtext)) {
    SendClientMessage(playerid,BLAU,"Es muss ein Passwort angegeben werden!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Ihr Account wurde gefunden/nGeben sie bitte ihr Passwort ein","Login","Abbrechen");
    return 1;
    }
    else {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid==DIALOG_REGISTER) {
    if(response==0) {
    SendClientMessage(playerid,BLAU,"Sie haben den Registrierungsvorgang abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response==1) {
    if(!strlen(inputtext)) {
    SendClientMessage(playerid,BLAU,"Es muss ein Passwort angegeben werden!");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte geben sie ihr gewünschtes Passwort ein:","Registrieren","Abbrechen");
    return 1;
    }
    else {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    return 1;
    }


    stock Register(playerid,key[]) {
    new pfad[64];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    dini_Create(pfad);
    dini_Set(pfad,"Passwort",key);
    dini_IntSet(pfad,"Level",0);
    dini_IntSet(pfad,"AdminLevel",0);
    SendClientMessage(playerid,BLAU,"Sie haben sich erfolgreich registriert");
    return 1;
    }
    stock Login(playerid,key[]) {
    new pfad[64];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    if(!strcmp(key,dini_Get(pfad,"Passwort"),true)) {
    LadeSpieler(playerid);
    return 1;
    }
    else {
    SendClientMessage(playerid,BLAU,"Ihr Passwort war inkorrekt");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Ihr Account wurde gefunden/nGeben sie bitte ihr Passwort ein","Login","Abbrechen");
    return 1;
    }
    }
    stock SpielerSpeichern(playerid) {
    new pfad[64];
    new pName[MAX_PLAYER_NAME];
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    dini_IntSet(pfad,"Level",GetPlayerScore(playerid));
    dini_IntSet(pfad,"Adminlevel",pInfo[playerid][Adminlevel]);
    dini_IntSet(pfad,"Scripter",pInfo[playerid][Scripter]);
    dini_IntSet(pfad,"Fraktion",pInfo[playerid][Fraktion]);
    dini_IntSet(pfad,"Leader",pInfo[playerid][Leader]);
    dini_IntSet(pfad,"Skin",GetPlayerSkin(playerid));
    dini_FloatSet(pfad,"XPosition",x);
    dini_FloatSet(pfad,"YPosition",y);
    dini_FloatSet(pfad,"ZPosition",z);
    return 1;
    }
    stock ResetVariablen(playerid) {
    pInfo[playerid][Adminlevel] = 0;
    pInfo[playerid][Scripter] = 0;
    pInfo[playerid][Fraktion] = 0;
    pInfo[playerid][Leader] = 0;
    pInfo[playerid][Skin] = 0;
    pInfo[playerid][XPosition] = 0;
    pInfo[playerid][YPosition] = 0;
    pInfo[playerid][ZPosition] = 0;
    return 1;
    }
    stock LadeSpieler(playerid) {
    new pfad[64];
    new message[65];
    new amessage[65];
    new pName[MAX_PLAYER_NAME];
    new Text3D:Adminlabel[MAX_PLAYERS];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(pfad,sizeof(pfad),"/Spieler/%s.dini",pName);
    SetPlayerScore(playerid,dini_Int(pfad,"Level"));
    SetPlayerSkin(playerid,dini_Int(pfad,"Skin"));
    pInfo[playerid][Adminlevel] = dini_Int(pfad,"Adminlevel");
    pInfo[playerid][Scripter] = dini_Int(pfad,"Scripter");
    pInfo[playerid][Fraktion] = dini_Int(pfad,"Fraktion");
    pInfo[playerid][Leader] = dini_Int(pfad,"Leader");
    format(message,sizeof(message),"Willkommen zurück, %s",pName);
    SendClientMessage(playerid,BLAU,message);
    if(pInfo[playerid][Scripter] == 1) {
    SendClientMessage(playerid,BLAU,"Sie haben sich als Scripter eingeloggt");
    }
    if(pInfo[playerid][Adminlevel] >= 1) {
    format(amessage,sizeof(amessage),"Sie haben sich als Adminlevel %d eingeloggt",dini_Int(pfad,"Adminlevel"));
    SendClientMessage(playerid,BLAU,amessage);
    Adminlabel[playerid] = Create3DTextLabel("Administrator",ROT,0,0,0,0,0);
    Attach3DTextLabelToPlayer(Adminlabel[playerid],playerid,0.0,0.0,0.7);
    }
    return 1;
    }


    //edit: Problem hat sich gelöst :D