Beiträge von Cr4sh

    Danke :) immerhin eine Sache besser :) wenn ich /port eingebe, dann kommt nur die Info Message, aber wenn ich /port [den gewünschten ort] eingebe, dann passiert garnichts...


    Hier der neuste Code:
    //---------------------------------/port--------------------------------------//
    dcmd_port(playerid,params[])
    {
    if(IsPlayerAnAdmin(playerid,1))
    {
    new ort[15];
    if(sscanf(params,"s",ort))
    {
    if(!strlen(ort))
    {
    SendClientMessage(playerid,COLOR_WHITE,"Benutze: /port [Airport] [Startower] [Hafen] [Alka] [BSN]");
    }
    if(strfind(ort,"airport",true) == 0)
    {
    SetPlayerPos(playerid,1884.7861,-2551.8882,17.2422);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Los Santos Airport teleportiert.");
    return true;
    }
    if(strfind(ort,"startower",true) == 0)
    {
    SetPlayerPos(playerid,1541.1393,-1365.9103,329.7969);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich auf den Startower teleportiert.");
    GivePlayerWeapon(playerid,46,1);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Fallschirm für einen Fallschirmsprung bekommen.");
    return true;
    }
    if(strfind(ort,"hafen",true) == 0)
    {
    SetPlayerPos(playerid,835.0450,-2055.7283,12.8672);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Los Santos Hafen teleportiert.");
    return true;
    }
    if(strfind(ort,"alka",true) == 0)
    {
    SetPlayerPos(playerid,-3088.8301,1715.5558,3.2983);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Alcatraz teleportiert.");
    return true;
    }
    if(strfind(ort,"bsn",true) == 0)
    {
    SetPlayerPos(playerid,1198.8127,-920.6879,43.0326);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum BSN teleportiert.");
    return true;
    }
    }
    }
    return 1;
    }

    Habe es mal so probiert, aber wenn ich /port [den jeweiligen ort] eingeben, dann kommt die info Message und bei nur /port werde ich an den airport teleportiert...


    //---------------------------------/port--------------------------------------//
    dcmd_port(playerid,params[])
    {
    if(IsPlayerAnAdmin(playerid,1))
    {
    new ort[15];
    if(!sscanf(params,"s",ort))
    {
    //if(!strlen(ort))
    //{
    SendClientMessage(playerid,COLOR_WHITE,"Benutze: /port [Airport] [Startower] [Hafen] [Alka] [BSN]");
    }
    else if(sscanf(params,"s",ort))
    {
    if(strcmp(ort,"airport",true) == 0)
    {
    SetPlayerPos(playerid,1884.7861,-2551.8882,17.2422);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Los Santos Airport teleportiert.");
    return true;
    }
    if(strcmp(ort,"startower",true) == 0)
    {
    SetPlayerPos(playerid,1541.1393,-1365.9103,329.7969);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich auf den Startower teleportiert.");
    GivePlayerWeapon(playerid,46,1);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Fallschirm für einen Fallschirmsprung bekommen.");
    return true;
    }
    if(strcmp(ort,"hafen",true) == 0)
    {
    SetPlayerPos(playerid,835.0450,-2055.7283,12.8672);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Los Santos Hafen teleportiert.");
    return true;
    }
    if(strcmp(ort,"alka",true) == 0)
    {
    SetPlayerPos(playerid,-3088.8301,1715.5558,3.2983);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Alcatraz teleportiert.");
    return true;
    }
    if(strcmp(ort,"bsn",true) == 0)
    {
    SetPlayerPos(playerid,1198.8127,-920.6879,43.0326);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum BSN teleportiert.");
    return true;
    }
    }
    }
    return 1;
    }

    Hallo Breadfish :)


    Ich habe ein Problem mit meinem /port Befehl.
    Ich habe das jetzt so gemacht, dass man "/port ort" eingeben muss, und dann sollte man an den angegebenen Ort teleportiert werden.
    Allerdings wird man, wenn man /port eingibt, an alle möglichen Orte geportet..
    Was mache ich da falsch?


    Hier der Code:
    //---------------------------------/port--------------------------------------//
    dcmd_port(playerid,params[])
    {
    if(IsPlayerAnAdmin(playerid,1))
    {
    new ort[10];
    if(sscanf(params,"s",ort))
    {
    if(!strlen(ort))
    {
    SendClientMessage(playerid,COLOR_WHITE,"Benutze: /port [airport] [startower] [hafen] [alka] [bsn]");
    }
    else if(strcmp(ort,"airport",true) == 0)
    {
    SetPlayerPos(playerid,1884.7861,-2551.8882,17.2422);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Los Santos Airport teleportiert.");
    return true;
    }
    else if(strcmp(ort,"startower",true) == 0)
    {
    SetPlayerPos(playerid,1541.1393,-1365.9103,329.7969);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich auf den Startower teleportiert.");
    GivePlayerWeapon(playerid,46,1);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast einen Fallschirm für einen Fallschirmsprung bekommen.");
    return true;
    }
    else if(strcmp(ort,"hafen",true) == 0)
    {
    SetPlayerPos(playerid,835.0450,-2055.7283,12.8672);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Los Santos Hafen teleportiert.");
    return true;
    }
    else if(strcmp(ort,"alka",true) == 0)
    {
    SetPlayerPos(playerid,-3088.8301,1715.5558,3.2983);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum Alcatraz teleportiert.");
    return true;
    }
    else if(strcmp(ort,"bsn",true) == 0)
    {
    SetPlayerPos(playerid,1198.8127,-920.6879,43.0326);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_PURPLE,"Du hast dich zum BSN teleportiert.");
    return true;
    }
    }
    }
    return 1;
    }


    MfG
    Cr4sh

    Danke nochmal an beide :)


    Aber zu dem Beispiel:


    Wenn ich jetzt
    /deinbefehl
    eingeben würde, dann würden die ganzen möglichkeiten kommen und wenn ich
    /deinbefehl Schein
    eingeben würde, dann würde nur was passieren, wenn das wort hinter
    /deinbefehl
    Schein ist, oder wie?


    //edit: RedAge: Dein edit vom vorherigen Text hats klar gemacht :)
    Ich probiere jetzt mal rum und falls ich das nicht richtig hinbekomme, dann melde ich mich nochmal :)

    Gut. Vielen Dank für deine Hilfe :)


    Ich lese wir grad das Tutorial durch und ich hoffe, das ich das so hinbekomme, wie ich mir das vorstelle :)



    /edit: Also das Tutorial hat mir jetzt eig nur das gezeigt, was ich schon kann (dcmd-Befehle erstellen mit Zahlen als Parametern)


    Ich möchte jetzt aber "Wörter als Parameter" verwenden. Vllt sonst noch jemand eine Idee?


    Oder jemand, der mir folgendes erklären kann?:


    · strtok
    · strlen
    · cmd (text)
    · idx

    Also würde man im endeffekt /aaa BSN eingeben?


    RedAge: Einfach in deiner .pwn Datei richtig einrücken und untereinander schreiben und dann zwischen sie beiden codes ([pwn ] und [/pwn ]) einfügen.
    Anderfalls noch unter Einstellungen die "BB Codes" aktivieren.

    Nochmal danke für die Antworten :)


    RedAge: if(!strlen(Schein))


    was hat das dabei für einen sinn?



    @Barney': x_nr = strtok(cmdtext, idx);


    Kannst du das ein bisschen erklären? :)



    /edit: und das in ein "dcmd-befehl" einbauen. wäre das möglich?

    Hallo Breadfish,


    weil jemand wie das geht (das = überschrift)?


    ich will grad ein makler-"system" machen und dazu wäre es ganz nützlich wenn man mehrehe wörter als "parameter" dort eingeben könnte.


    also z.B. bie /port


    man gibt /port ein und bekommt die möglichkeiten.
    bei /port ort(z.B. BSN) wird man dann zum BSN geportet


    also quasie: /port BSN


    jemand eine idee? :)


    ich habe das beim /haussell befehl so probiert, aber da mecker er rum, weil er "cmdtext" nicht kennt...

    Spoiler anzeigen
    dcmd_haussell(playerid,params[])
    {
    if(HavePlayerJob(playerid,6))
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    new SellerID,BuyerID,preis;
    new s[128],n[128],m[128],pfad[50];
    if(sscanf(params,"uui",SellerID,BuyerID,preis))return SendClientMessage(playerid,COLOR_WHITE,"Benutze: /haussell [Verkäufer(ID)] [Käufer(ID)] [Preis]");
    if(strcmp(HausInfo[haus][Haus_Besitzer],SpielerName(SellerID),false) == 0)
    {
    if(GetPlayerMoney(BuyerID) >= preis)
    {
    format(s,sizeof(s),"Du hast %s das Angebot gemacht, das Haus von %s [ID: %i] für %i$ zu kaufen.",SpielerName(BuyerID),SpielerName(SellerID),haus,preis);
    format(n,sizeof(n),"%s möchte dir das Haus von %s [ID %i] für %i$ verkaufen.",SpielerName(playerid),SpielerName(SellerID),haus,preis);
    format(m,sizeof(m),"%s möchte dein Haus [ID: %i] für %i$ an %s verkaufen.",SpielerName(playerid),haus,preis,SpielerName(BuyerID));
    SendClientMessage(SellerID,COLOR_LBLUE,m);
    SendClientMessage(BuyerID,COLOR_LBLUE,n);
    SendClientMessage(playerid,COLOR_LBLUE,s);
    SendClientMessage(SellerID,COLOR_LBLUE,"Benutze, um das Angebot anzunehmen, /accept. Um es abzulehnen benutze /cancel");
    SendClientMessage(BuyerID,COLOR_LBLUE,"Benutze, um das Angebot anzunehmen, /accept. Um es abzulehnen benutze /cancel");
    if(strcmp(cmdtext,"/accept",true)==0)
    {
    format(pfad,50,"/Häuser/%d.txt",haus);
    dini_Set(pfad,"Besitzer",SpielerName(BuyerID));
    KillHaus(haus);
    LoadHaus(haus);
    }
    else if(strcmp(cmdtext,"/cancel",true)==0)
    {

    }
    }
    else SendClientMessage(playerid,COLOR_RED,"Der Käufer hat nicht genug Geld.");
    SendClientMessage(BuyerID,COLOR_RED,"Du hast nicht genug Geld, um das Haus zu kaufen.");
    }
    else SendClientMessage(playerid,COLOR_RED,"Dieses Haus gehört nicht dem Verkäufer.");
    }
    }
    return 1;
    }


    MfG
    Cr4sh

    Hallo Breadfish :)


    mein Loginsystem funktioniert nicht mehr, seitdem ich
    SetSpawnInfo(playerid,0,0,1214.8019,-920.9651,42.9246,343.5148,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    drin habe, damit man nicht immer wieder auf "spawn" klicken muss.
    Mein Problem ist aber, das ich beim Passwort eingeben kann was ich will. Ich werde trotzdem eingeloggt.


    Hier mal meine ganzen Codes:


    beim public OnPlayerRequestClass(playerid, classid):

    Spoiler anzeigen
    {
    //Register
    new Spielerdatei[64];
    new name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name2,sizeof(name2));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name2);
    if(fexist(Spielerdatei))
    {
    new string[95];
    format(string,200,"Herzlich Willkommen auf Crash's Testserver!\n\nBenutzername: %s\n\nBitte logge dich mit deinem Passwort ein:",name2);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    }
    else
    {
    new string[95];
    format(string,200,"Herzlich Willkommen auf Crash's Testserver!\n\nBenutzername: %s\n\nDu hast noch keinen Account. Bitte registriere dich:",name2);
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren",string,"Register","Abbrechen");
    }
    if(GetPVarInt(playerid,"loggedin") != 1)
    {
    TogglePlayerControllable(playerid,0);
    }
    SetSpawnInfo(playerid,0,0,1214.8019,-920.9651,42.9246,343.5148,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    return 1;
    }


    Der Dialog:

    Spoiler anzeigen
    case DIALOG_LOGIN:
    {
    if(response==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast den Vorgang abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    new string[95];
    SendClientMessage(playerid,COLOR_RED,"Du hast kein Passwort eingegeben.");
    format(string,sizeof(string),"Dein Account wurde gefunden.\n\n\nBenutzername: %s\n\n\nGib bitte dein Passwort ein:",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }


    und der stock:

    Spoiler anzeigen
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,COLOR_GREEN,"Erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Falsches Passwort.");
    new string[95];
    format(string,95,"Dein Account wurde gefunden.\n\n\nBenutzername: %s\n\n\nGib bitte dein Passwort ein:",SpielerName(playerid));
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbrechen");
    return 1;
    }
    }


    wer ne idee? :S


    MfG
    Cr4sh