Beiträge von Deagle

    switch(RaceCheckpoint[playerid])
    {
    case 1:
    {
    SetPlayerRaceCheckpoint(playerid,1,-2457.5818,-85.8853,42.1875,-2487.3667,-87.6387,39.1798,2);
    RaceCheckpoint[playerid] = 2;
    }
    case 2:
    {
    RaceCheckpoint[playerid] == 2;
    SetPlayerRaceCheckpoint(playerid,1,-2487.3667,-87.6387,39.1798,-2477.2505,-114.9111,39.1798,2);
    RaceCheckpoint[playerid] = 3;
    }
    case 3:
    {
    DisablePlayerCheckpoint(playerid);
    RaceCheckpoint[playerid] = 0;
    return 1;
    }
    }


    du überprüfst erst ob der Checkpoint 1 ist und DANN switcht du es, so KANN es nicht gehen, mach mal das if(RaceCheckpoint[playerid] == 1) weg!

    public OnPlayerRequestSpawn(playerid)
    {
    if(IST REGISTRIERT) //Schauen ob user registriert ist, musst du mit deiner Abfrage ersetzten
    {
    if(IST EINGELOGGT)
    {
    return 1;
    }
    else
    {
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"LOGIN","Gib dein Passwort an:","Login","Cancel");
    return 0;
    }
    }
    else
    {
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"REGISTER","Gib dein Passwort zum Registrieren an:","Register","Cancel");
    return 0;
    }
    return 0;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1) //LOGIN
    {
    if(!response)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Du MUSST dich einloggen!");
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"LOGIN","Gib dein Passwort an:","Login","Cancel");
    return 1;
    }
    else
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid, 0xFF0000AA, "Das Kennwort isat falsch!");
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"LOGIN","Gib dein Passwort an:","Login","Cancel");
    return 1;
    }
    else
    {
    //Passwort checken und einloggen
    return 1;
    }
    }
    }
    else if(dialogid == 2) //REGISTER
    {
    if(!response)
    {
    SendClientMessage(playerid, 0xFF0000AA, "Du MUSST dich registrieren!");
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"REGISTER","Gib dein Passwort zum Registrieren an:","Register","Cancel");
    return 1;
    }
    else
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid, 0xFF0000AA, "Du MUSST ein Kennwort angeben!");
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"REGISTER","Gib dein Passwort zum Registrieren an:","Register","Cancel");
    return 1;
    }
    else
    {
    //Registrieren
    return 1;
    }
    }
    }
    return 0;
    }


    Gruß, Deagle

    Hallo zämme ...


    Habe einen ChatBot geschriben, der auf dumme Komentare antwortet oder auf bestimmte Befehle antwortet ...
    Problem ist, wenn aich NICHTS angegeben ist, macht er das was als erstes in der if Anweisung steht ...
    Was mache ich falsch?


    public OnPlayerText(playerid, text[])
    {
    if(!strcmp(text, "bot", true, 3))
    {
    if(!strlen(text[4]))
    {
    SetTimerEx("Bot", BOT_DELAY, false, "is", 1, playerid, "Bot");
    }
    if(!strcmp(text[4], "spruch", true))
    {
    SetTimerEx("Bot", BOT_DELAY, false, "is", 2, playerid, "Bot");
    }
    else if(!strcmp(text[4], "datum", true))
    {
    SetTimerEx("Bot", BOT_DELAY, false, "is", 3, playerid, "Bot");
    }
    else if(!strcmp(text[4], "version", true))
    {
    SetTimerEx("Bot", BOT_DELAY, false, "is", 4, playerid, "Bot");
    }
    else if(!strcmp(text[4], "serverinfo", true))
    {
    SetTimerEx("Bot", BOT_DELAY, false, "is", 5, playerid, "Bot");
    }
    else
    {
    SetTimerEx("Bot", BOT_DELAY, false, "is", 1, playerid, "Bot");
    }
    }
    return 1;
    }


    public Bot(mode, playerid, text[])
    {
    if(mode == 1)
    {
    SendClientMessage(playerid, BOTCOLOR, "Bot: Möglichkeiten: spruch, version, datum, serverinfo");
    }
    else if(mode == 2)
    {
    switch(random(4))
    {
    case 0: SendClientMessageToAll(BOTCOLOR, "Bot: Scheiße in der Lampenschale gibt gedämpftes Licht im Saale.");
    case 1: SendClientMessageToAll(BOTCOLOR, "Bot: Nervengas ist kein Spielzeug.");
    case 2: SendClientMessageToAll(BOTCOLOR, "Bot: Lieber einen wackeligen Stammtisch, als einen festen Arbeitsplatz.");
    }
    }
    else if(mode == 3)
    {
    new year, month, day, hour, minute, str[128];
    getdate(year, month, day);
    gettime(hour, minute);
    format(str,sizeof(str), "Bot: Heute ist der %02d,%02d,%d und es ist %02d:%02d Uhr.", day, month, year, hour, minute);
    SendClientMessageToAll(BOTCOLOR, str);
    }
    else if(mode == 4)
    {
    SendClientMessageToAll(BOTCOLOR, "Bot: Chatbot V0.1 by Projumper.");
    }
    else if(mode == 5)
    {
    SendClientMessageToAll(BOTCOLOR, "Bot: Server - GermanCityOfDreams");
    SendClientMessageToAll(BOTCOLOR, "Bot: IP - No IP set.");
    SendClientMessageToAll(BOTCOLOR, "Bot: Besitzer - Projumper & Alex");
    }
    }

    Soweit ich weiß kann man die X und Y Rotation eines Fahrzeuges nicht auslesen oder irgendwie "messen".


    Wofür brauchst du das eigentlich?
    Willst du einen CMD machen um das Fahrzeug wieder wichtig hin zu stellen, wenn es auf dem Dach liegt?
    Oder was ist dein Ziel?


    Wenn du uns sagst, was es bewirken soll, können wir dir evtl. helfen ;)

    Hallo zusammen,


    habe mir einen Bot gemacht, der in einem Infernus durch ganz San Andreas fährt ...


    Er Connectet, aber der Dödel steigt nicht in sein Auto ...


    Inhalt des NPC (/npcmodes/)


    #include <a_npc>


    // name der recordeten datei (im beispiel war es CARBOT oder ZIVIBOT)
    #define RECORDING "CARBOT_GANZ_SAMP"
    // Record typ, 1 = in einen fahrzeug, 2 = zu fuß
    #define RECORDING_TYPE 1


    main()
    {
    }


    public OnRecordingPlaybackEnd()
    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER, RECORDING);


    public OnNPCEnterVehicle(vehicleid, seatid)
    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER, RECORDING);


    public OnNPCExitVehicle()
    StopRecordingPlayback();


    UND hier das FS das den Bot laden soll:


    #include <a_samp>
    #include <a_npc>
    new CARBOT_GANZ_SAMP_CAR;


    public OnFilterScriptInit()
    {
    //Hier stehen auch noch einige prints
    ConnectNPC("CARBOT","racebot");// erstes carbot steht für den namen hier im script, 2tes wie der record heißt!!!!
    CARBOT_GANZ_SAMP_CAR = CreateVehicle(411, 2243.9841, -2313.5048, 13.1020, 7.0, 0, 0, -1);// im prinzip eig egal wo man die hinspawnt, die weden später geportet denke ich (war zumindest so)
    return 1;
    }


    public OnFilterScriptExit()
    {
    //Hier stehen auch noch einige prints
    DestroyVehicle(CARBOT_GANZ_SAMP_CAR);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "CARBOT", true))
    {
    PutPlayerInVehicle(playerid, CARBOT_GANZ_SAMP_CAR, 0);
    }
    }
    return 1;
    }


    KAnn mir jemand sagen was ich falsch mache?

    #include <a_samp>
    new towhere;
    new Objekt;


    public OnFilterScriptInit()
    {
    print("\n-3 Point Move-\n");
    Objekt = CreateObject(ID, A_PosX, A_PosY, A_PosZ, RotX, RotY, RotZ);
    towhere = 1;
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/moveobject", true, 11))
    {
    MoveObject(Objekt, B_PosX, B_PosY, B_PosZ, Speed);
    towhere = 2;
    }
    }


    public OnObjectMoved(objectid)
    {
    if(objectid == Objekt)
    {
    if(towhere == 2)
    {
    MoveObject(Objekt, C_PosX, C_PosY, C_PosZ, Speed);
    towhere = 3;
    }
    if(towhere == 3)
    {
    MoveObject(Objekt, A_PosX, A_PosY, A_PosZ, Speed);
    towhere = 1;
    }
    if(towhere == 1)
    {
    return 1;
    }
    }
    return 1;
    }



    A_PosX, A_PosY, A_PosZ sind die Punkte auf der Map von Punkt A.
    B_PosX, B_PosY, B_PosZ sind die Punkte auf der Map von Punkt B.
    C_PosX, C_PosY, C_PosZ sind die Punkte auf der Map von Punkt C.


    wenn towhere = 1 ist, bedeutet das dass das Objekt zu Punkt A bewegt wird oder dort ist.
    wenn towhere = 2 ist, bedeutet das dass das Objekt zu Punkt B bewegt wird.
    wenn towhere = 3 ist, bedeutet das dass das Objekt zu Punkt C bewegt wird.


    Was du mit dem Script jetzt machst, überlasse ich dir, es sollte aber normal funktionieren ;)
    Wenn ich was falsch gemacht habe sagts einfach ;)


    Gruß, Deagle

    Wenn du ein Car-Ownership hättest, dass die autos aus einer Datei ausliest, könntest du einen teil hunzufügen namens "Kraftstoff"
    Und denen das zuweisen ...
    Oder mit nem Array Kraftstoffe[212][50] = { {"KRAFTSTOFF für Landstalker"}, {"KRAFTSTOFF für Bravura"} ..... };


    Dann schauen ob einer inner tanke ist, wenn er /fill macht, wenn ja, bekommt er die auswahl .. wenns das falsche benzin ist --> 5 sec warten --> BOOM :)


    wäre nur scripttechnisch ein großer aufwand denk ich, wenn man noch garnichts hat!


    Aber ich lass lieber die Profis vor :D

    Ich find das Tut eigentlich sinnlos, Aber ich find die Stimme lustig, vor allem "San Andreas Muuuuuuuuulitplayer" :)


    5/10 für die Stimme undso xD

    Dank dir, habe es jetzt mit Stock gemacht, und er zeigt mir nichts mehr an, Danke ;)


    //EDIT:


    Schade, ich hatte gehofft es ginge ...


    Jetzt scheterts am explode :(


    new exp = GetData(playerid, "Myspawn"), array[5][10];
    explode(exp, array, ',');
    SetPlayerPos(playerid, exp[0], exp[1], exp[2]);
    SetPlayerFacingAngle(playerid, exp[3]);


    stock explode(string[], dest[][], token = ' ', max = sizeof (dest), ml = sizeof (dest[])) // from YSI (Y_less)


    KAnn mir bitte jemand nochmal helfen? Tut mir leid, ich bin ein hoffnunfsloser fall ^^


    Danke und Gruß, Deagle

    du brauchst nur die includes, eigentlich ^^
    Aber ich glaub du kannst nur wieder den ganzen Server laden ...


    Lad einfach alles, und kopier deine Scripte in den neuen Server ;)
    Also Filterscripts, Gamemodes und Scriptfiles ;)

    new Float:x, Float:y, Float:z;
    GetPlayerPos(playeridid,Float:x,Float:y,Float:z);
    SetObjectPos(objectid,Float:x+5,Float:y,Float:z);



    So würdest du das objekt (objectid angeben) auf Command zum Player "porten", mit einem abstand von 5 auf der X-Achse ;)


    GZ, Deagle

    Hallo zusammen,


    mein Vorhaben ist simpel, jedoch klappt es mir trotz allem nicht :D


    public GetData(playerid, slotname[])
    {
    new slotid;
    for(new s; s<arraynr; s++)
    {
    if(!strfind(dataarray[s], slotname, true))
    {
    slotid = s;
    }
    }
    format(userfile,sizeof(userfile), "%s/%s.%s", PATH, PlayerName(playerid), TYPE);
    new File:Get = fopen(userfile, io_read), nr=0, Line[128], output[25];
    while(fread(Get, Line))
    {
    if(nr IS slotid)
    {
    Line[strlen(Line) - 1] = 0;
    format(output,sizeof(output), "%s", Line);
    }
    nr++;
    }
    fclose(Get);
    return output;
    }


    Soweit stimmt alles, jedoch erhalte ich immer diese Meldung:


    error 090: public functions may not return arrays (symbol "GetData")


    Wie verklicker ich jetz Pawn dass er das durchgehen lassen soll?


    MfG, Projumper


    PS: Wusste nicht wo rein damit, und ich dachte hier sei es am besten aufgehoben ;)