Beiträge von JanKNB135

    Verbesserung:


    Oben im Script:

    #define DIALOG_IPOD 1 //Du legst DIALOG_IPOD als Dialog Nummer 1 fest. (Wenn du 1 schon hast, schreib 2. Die Zahl ist beliebig.)


    OnPlayerCommand:

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/ipodan", true) == 0)
    {
    ShowPlayerDialog(playerid, DIALOG_IPOD, DIALOG_STYLE_LIST, "iPod - Wähle deinen Sender", "Technobase \nHardbase\nHousetime\nClubtime\nILoveRadio", "Auswählen", "Abbrechen"); //Dialogfenster wird erstellt
    return 1;
    }
    if (strcmp(cmdtext, "/ipodaus", true) == 0)
    {
    StopAudioStreamForPlayer(playerid);
    return 1;
    }
    return 1;
    }



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_IPOD)
    {
    if(response==0)//falls antwort=abbrechen
    {
    return 1; //fenster wird geschlossen
    }
    if(response==1)//falls antwort=auswählen oder doppelklick
    {
    switch(listitem)//dies erspart dir viele if abfragen
    {
    case 0: //wenn die erste möglichkeit gewählt wird
    {
    PlayAudioStreamForPlayer(playerid, "http://listen.technobase.fm/dsl.pls");
    return 1;
    }
    case 1: //wenn die zweite möglichkeit gewählt wird
    {
    PlayAudioStreamForPlayer(playerid, "http://listen.hardbase.fm/dsl.pls");
    return 1;
    }
    case 2: //...
    {
    PlayAudioStreamForPlayer(playerid, "http://listen.housetime.fm/dsl.pls");
    return 1;
    }
    case 3: //...
    {
    PlayAudioStreamForPlayer(playerid, "http://listen.Clubtime.fm/dsl.pls");
    return 1;
    }
    case 4: //...
    {
    PlayAudioStreamForPlayer(playerid, "http://www.iloveradio.de/listen.m3u");
    return 1;
    }
    }
    }
    }

    return 1;
    }


    PS: Die Zeilen sind hier im Forum falsch eingerückt!!


    //edit Überarbeitet und Fehler behoben. Jetzt klappt es! Habs getestet!

    öffne mal die serverconfig und änder sie so ab:


    echo Executing Server Config...
    lanmode 1
    rcon_password [ein adminpasswort hier eintragen]
    maxplayers 500
    port 7777
    hostname RPG-Second-Life
    gamemode0 [dein script hier eintragen] 1
    filterscripts
    announce 1
    query 1
    chatlogging 0
    weburl [webseite hier eintragen]
    onfoot_rate 40
    incar_rate 40
    weapon_rate 40
    stream_distance 300.0
    stream_rate 1000
    maxnpc 100
    logtimeformat [%H:%M:%S]


    Dein Script muss zudem in dem Ordner "gamemodes" drin sein und die endung ".pwn" haben.

    Bei dir hast du die Variable "vehicleid" noch nicht definiert. Über "SetPlayerPos" musst du noch "new vehicleid" schreiben und dann darunter "vehicleid=GetPlayerVehicleID(playerid)". Danach musst du unter "SetVehiclePos" noch "PutPlayerInVehicle(playerid,vehicleid,0)" schreiben, damit der Spieler ins Fahrzeug gesetzt wird.


    Fertig sieht das ganze dann so aus:



    if(strcmp("/Goto LS BSN", cmdtext, true, 10) ==0)
    {
    new vehicleid;
    vehicleid=GetPlayerVehicleID(playerid);
    SetPlayerPos(playerid,1198.8595,-882.4097,42.7054);
    SetVehiclePos(vehicleid,1198.8595,-882.4097,42.7054);
    PutPlayerInVehicle(playerid,vehicleid,0);
    SendClientMessage(playerid, COLOR_BLAU, "Du hast dich auf´s Dach vom Burger Shot Nord (BSN) geportet.");
    SendClientMessage(playerid, COLOR_ROT, "NUTZE DEINE ADMINRECHTE NICHT AUS SONST KANN ES MIT DEM OWNER ÄRGER GEBEN WEIL MAN ES IN DER LOG NACHLESEN KANN!");
    return 1;
    }

    1. du legst fest, wohin du dich teleportieren willst (Koordinaten bestimmen)
    2. mit SetPlayerPos(playerid,X,Y,Z) die Position des Spielers ändern
    3. eine Variable erstellen (in meinem Beispiel vehicleid)
    4. die fahrzeug ID herausfinden und mit der variablen speichern (vehicleid=GetPlayerVerhicleID(playerid))
    5. mit SetVehiclePos(variable deines autos,X,Y,Z) die Position des Autos ändern
    6. mit PutPlayerInVehicle(playerid,variable deines autos,sitzplatz) den Spieler ins auto setzen (sitzplatz 0 heißt, dass der Spieler Fahrer ist)


    Die Koordinaten des Spielers und des Autos sollten gleich sein


    if(strcmp("/Goto LS BSN", cmdtext, true, 10) ==0)
    {
    new vehicleid;
    vehicleid=GetPlayerVehicleID(playerid);
    SetPlayerPos(playerid,1198.8595,-882.4097,42.7054);
    SetVehiclePos(vehicleid,1198.8595,-882.4097,42.7054);
    PutPlayerInVehicle(playerid,vehicleid,0);
    SendClientMessage(playerid, COLOR_BLAU, "Du hast dich auf´s Dach vom Burger Shot Nord (BSN) geportet.");
    SendClientMessage(playerid, COLOR_ROT, "NUTZE DEINE ADMINRECHTE NICHT AUS SONST KANN ES MIT DEM OWNER ÄRGER GEBEN WEIL MAN ES IN DER LOG NACHLESEN KANN!");
    return 1;
    }

    Hallo zusamen,
    ich habe ein Problem mit SetTimerEx. Erstmal vorweg: Ich habe den Timer schon häufiger verwendet und er hat auch immer funktioniert, jedoch habe ich bei einem meiner Timer zur Zeit Probleme.


    Beschreibung:
    Ich habe am Airport LS ein Flugzeug aufgestellt und davor ein Pickup erstellt. Läuft man durch das Pickup, soll nichts passieren (es passiert auch nichts). Wenn man in dem Pickup jedoch /fliegensf eingibt, so wird man in das Interior einer Shamal teleportiert (klappt auch) und das für 30 Sekunden. Ich habe also einen Timer bei dem Befehl /fliegensf erstellt, der nach dem Teleport in die Shamal starten soll. Nachdem die Zeit abgelaufen ist, soll man in SF vor einem anderen Flugzeug spawnen. Wenn ich jedoch /fliegensf eingebe, so werde ich in das Interior der Shamal teleportiert und beibe dort gefangen, denn der Timer lässt mich nicht mehr nach draußen.


    Hier der Code:


    Der Befehl /fliegensf:


    //...
    if (strcmp("/fliegensf", cmdtext, true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,1852.7072,-2440.7927,13.5547))
    {
    SetPlayerPos(playerid,1.808619,32.384357,1199.593750);
    SetPlayerInterior(playerid,1);
    SetTimerEx("ATFlug",30000,false,"i",playerid);
    return 1;
    }
    else
    {
    return SendClientMessage(playerid,ROT,"Du bist nicht am Airport!");
    }
    }
    //...


    Der Timer:


    forward AtFlug(playerid);
    public AtFlug(playerid)
    {
    SetPlayerPos(playerid,-1410.0612,-52.9376,14.1484);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,GRUEN,"Du bist nun in SF angekommen!");
    return 1;
    }


    Mein Pickup:


    new lsairportateinstieg;
    lsairportateinstieg=CreatePickup(1318,1,1852.7072,-2440.7927,13.5547,0);
    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid==lsairportateinstieg)
    {
    return 1;
    }
    //...


    Weiß jemand was ich da falsch gemacht habe, bzw. was ich da verändern muss? In meinen Augen ist da nämlich alles richtig ?(


    mfg
    Jan

    danke, aber das klappt immernoch nicht. Ich habe das jetzt abgeändert, wie du es gepostet hast, doch jetzt ist es so: ich sperre jemanden ein, dieser macht relog und spawnt ganz normal. nach etwa 10 sekunden wird er dann an den punkt teleportiert, wo man nach dem knasttimer spawnen soll. Kannste mir da helfen?


    public OnPlayerSpawn(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    new zeit;
    zeit=dini_Int(Spieler,"knastzeit");
    if(sSpieler[playerid][knastzeit] > 0)
    {
    SetPlayerPos(playerid,263.7467,77.5785,1001.0391);
    SetPlayerInterior(playerid,6);
    SetTimerEx("knasttimer",zeit,false,"i",playerid);
    return 1;
    }
    else
    {
    new wanteds,killerid;
    wanteds=GetPlayerWantedLevel(playerid);
    if(wanteds>=1)
    {
    if(IstSpielerInFraktion(killerid,1))
    {
    SetPlayerPos(playerid,266.7467,77.5785,1001.0391);
    SetPlayerInterior(playerid,6);
    return 1;
    }
    }
    else
    {
    if(IstSpielerInFraktion(playerid, 0))
    {
    SetPlayerPos(playerid, 825.6290,-1354.6455,13.5393);
    SetPlayerColor(playerid,WEISS);
    SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
    return 1;
    }
    else if(IstSpielerInFraktion(playerid, 1))
    {
    SetPlayerPos(playerid, 237.6967,78.9653,1005.0391);
    SetPlayerInterior(playerid,6);
    SetPlayerColor(playerid,BLAU);
    SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
    SendClientMessage(playerid,BLAU,"Du bist am LSPD gespawnt!");
    return 1;
    }
    }
    }
    return 1;
    }