Problem mit Kegel ! Hilfe

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo


    Habe ein Problem mit meinen Kegeln. Immer wenn ich einen der beiden Cluckinbell in LS betrete komm ich beim
    anderen wieder raus. Hab auch schon gecheckt ob ich bei den Exit-Kegeln die SetPlayerPos Koordinaten vertauscht
    habe, indem ich sie einfach ausgetauscht habe. Aber wenn ich das mache besteht das Problem weiterhin. Habe auch
    versucht den zweiten Cluckinbell einfach mal umzubennen aber auch das hat nichts gebracht. Hatte das selbe Problem
    schon 2x.Einmal als ich den zweiten Pizzastuck eingefügt habe und einmal als ich den zweiten Burgershot eingefügt habe.
    Als bei denen das Problem auftrat hab ich einfach die SetPlayerPos vertauscht und schon was das Problem behoben. Diesmal
    funktioniert das jedoch nicht. Habe bisher nur die Kegel in LS gescriptet. Bevor ich das Problem nicht in den Griff bekomm will
    ich auch gar nicht erst anfangen weitere CLuckinells oder Burgershots einzufügen. Bitte helft mir..





    PS: if(pickupid==cluckinbellLSSenter) ist eigentlich an der richtigen stelle. Bekomme es nur irgendwie grade nicht da hin wo ichs
    gerne hätte. ^^



    MfG Dis

  • Das erklärt natürlich einiges. Kann mir das vll nochmal jemand genauer erklären ? Bin noch nicht so
    lange am scripten und das hier ist das einzige Tutorial das ich dazu gefunden habe. Leider verstehe
    ich es nicht so ganz. Der Threadersteller meinte auch es gäbe eine einfachere Möglichkeit.


    Bitte um Hilfe :)


    [ SCRIPTING ] Interiors mehrmals benutzen

  • if(pickupid==cluckinbellLSSenter)
    {
    SetPlayerPos(playerid,365.8784,-8.7374,1001.8516);
    SetPlayerFacingAngle(playerid,355.4061);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,9);
    SetPlayerVirtualWorld(playerid, 1);
    }
    if(pickupid==cluckinbellLSSexit)
    {
    if(GetPlayerVirtualWorld(playerid) == 1))
    {
    SetPlayerPos(playerid,2397.7092,-1897.3324,13.5469);
    SetPlayerFacingAngle(playerid,358.6072);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtalWorld(playerid, 0);
    }
    }
    if(pickupid==cluckinbellLSenter)
    {
    SetPlayerPos(playerid,365.8784,-8.7374,1001.8516);
    SetPlayerFacingAngle(playerid,355.4061);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,9);
    SetPlayerVirtualWorld(playerid, 2);//playerid wird in Virtual World 2 gesetez
    }
    if(pickupid==cluckinbellLSexit)
    {
    if(GetPlayerVirtualWorld(playerid) == 2)// abfrage ob er in Vworld 2 ist wen ja
    {
    SetPlayerPos(playerid,924.6235,-1352.8552,13.3767);
    SetPlayerFacingAngle(playerid,89.0534);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtalWorld(playerid, 0);
    }
    }


    //edit also


    if(GetPlayerVirtualWorld(playerid) == ID))


    frägt ab ob er in einer bestimmten Vworld ist
    und
    SetPlayerVirtalWorld(playerid, ID);


    Setz den Player in eine bestimmte Virtual World

  • Habs jetzt mal eingefügt..


    Code
    ..
    D:\GTA San Andreas\GTA Server\gamemodes\Tutorial.pwn(680) : error 029: invalid expression, assumed zero
    D:\GTA San Andreas\GTA Server\gamemodes\Tutorial.pwn(681) : warning 217: loose indentation
    
    
    Nur noch zwei Fehler die Andern hab ich behoben


    Wie beheb ich diese Fehlermeldungen ? Irgendwas schein ich falsch gemacht zu haben.

    Einmal editiert, zuletzt von DisgraceNo1 ()

  • Hab die Fehler gefunden. Du hattest einmal mehrere Klammern gemacht und einmal bei ''GetPlayerVirtualWorld''
    einen Rechtschreibfehler. Jetzt wurde es ohne Fehler Compiliert. Ich danke dir vielmals für die Hilfe. Jetzt hab
    ich das Prinzip verstanden und denke ich kann es anwenden. Sollte es damit nochmal Probleme geben wende ich
    mich dann direkt an dich. Hoffe du hilfst mir dann nochmal falls es dazu kommt :)



    Edit:
    Da DopeFire offline ist und er somit meine PN nicht lesen kann wende ich mich wieder an euch...



    Also hab das Script jetzt getestet. Alles funktioniert soweit ganz gut. Keine Fehler beim Compilen, der Server
    startet ganz normal. Nur gibt es jetzt ein Problem..


    Wenn ich in einen der beiden Cluckinbell reingehe werde ich reingeportet. Wenn ich jedoch wieder raus will
    sehe ich keinen Ausgangskegel. Habs bei beiden probiert aber keiner von beiden besitzt einen Ausgangskegel.
    Das Script ist von DopeFire so übernommen wie oben gepostet. Hab auch versucht einfach die Koordinaten neu
    zu nehmen aber hat nichts geholfen.

    Einmal editiert, zuletzt von DisgraceNo1 ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • SQL

    Du musst den Kegel in die passende Vworld setzen , benutze -1 für alle .


    Mom ich such schnell wiki welche zahl vworld ist


    // edit
    Versuch mal im exit pickup die Vworld auf 0 zu setzen , und probier es erneut

    Einmal editiert, zuletzt von DopeFire ()

  • Jetzt wollt ich grade fragen ob ich den Kegel auch irgendwie in die VWorld setzen muss dann stehts schon da. : D
    Kannste mir kurz erklären wie ich das mache ? :)


    Edit: Wie mache ich das ? Das Pickup ist ja unter GameModeInit.

    Code
    cluckinbellLSSexit=CreatePickup(1559,1,364.9783,-11.8437,1001.8516);
  • Vergessen wir mal alles was bisher gepostet wurde und widmen uns dem neuen Problem.



    Edit 2: Vorherigen Beitrag gelöscht nun zur genauen Problembeschreibung...


    Wenn ich mal ganz logisch denke kann es genau einen Grund geben wiso mir der Kegel in der VWorld1 nicht angezeigt
    wird. Der Kegel war zuvor in der Standard VWorld0. Woher soll der Kegel also jetzt wissen dass er plötzlich in VWorld1
    erscheinen soll ? Die Position des Kegels hat sich ja durch das neue Script nicht verändert. Nur der Ort wo der Spieler
    hingeportet wird hat sich verändert. Also ist der Kegel jetzt in VWorld0 und der Spieler in VWorld1.


    Wie bekomm ich den Kegel also dazu dass er sich in VWorld1 erstellt und nicht in VWorld0 ?

  • if(pickupid==cluckinbellLSenter)
    {
    SetPlayerPos(playerid,365.8784,-8.7374,1001.8516);
    SetPlayerFacingAngle(playerid,355.4061);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,9);
    SetPlayerVirtualWorld(playerid, 2);// Hier wird der Spieler in VWorld 2 gebracht, also muss der Kegel auch in VWorld 2 sein.
    }


    cluckinbellLSexit=CreatePickup(model, type, Float:X, Float:Y, Float:Z, Virtualworld);


    Hier gibt es mehr zu SetPlayerVirtualWorld