Autor Wątek:  Wykolejnice  (Przeczytany 21607 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline Paul

  • Zasłużony dla Symulatora
  • Wiadomości: 523
    • Zobacz profil
    • Beskidzka Strona Kolejowa
  • Otrzymane polubienia: 16
Wykolejnice
« dnia: 15 Stycznia 2006, 16:00:48 »
Witam

Ale dawno tu nie pisałem. Tak jakoś. Wczoraj wpadł mi do głowy pomysł żeby zrobić wykolejnice do symulatora. Poniżej prezentuję efekty pracy:





Link:
http://kontrakt-bhp.com.pl/paul/maszyna/wykolejnice.rar

Wykolejnice wykonane są w ośmiu różnych wersjach: prawa z napędem po prawej, prawa z napędem po lewej, lewa z napędem po prawej, lewa z napędem po lewej oraz te cztery w wersji podwójnej (sprzężonej) stosowanej na rozjazdach. Modele mają ruchomą belkę wykolejającą i obracającą się i świecącą w ciemności latarnię, ale niestety nie potrafią wykolejać. Myślałem z patentem z dwoma rozjazdami które by wykolejały ale doszłem do wniosku że było by to zbyt kłopotliwe, zwłaszcza przy wykolejnicach sprzężonych na rozjazdach. I tu pytanie do Devs - czy dało by się od strony programu zrobić takie coś jak wykolejnica?

Pozdrawiam, Paweł
automatyka sterowania ruchem kolejowym rox
www.isdr.pl | www.bsk.isdr.pl | pokrzesik.wytnij@gmail.com

Offline eu43

  • Wiadomości: 239
    • Zobacz profil
    • http://www.eu43.fora.pl/
  • Otrzymane polubienia: 0
Wykolejnice
« Odpowiedź #1 dnia: 15 Stycznia 2006, 17:23:45 »
No super to wymyśliłeś. Jestem pod wrażeniem. Myślę, że eventy do wykolejenia będzie trudno zrobić (o ile się da). Maszyna nie jest przystosowana do takich symulacji.

Offline Żabek

  • Wiadomości: 546
  • Gdzie jest guzik rezygnacji?
    • Zobacz profil
  • Otrzymane polubienia: 2
Wykolejnice
« Odpowiedź #2 dnia: 15 Stycznia 2006, 17:24:28 »
trzebaby chyba ustawić DamageFlag toru na 128 i po sprawie.
Przykład eventu z Scenery.doc:
a może wykolejnica?
event Wk1_1 updatevalues 0 Wk1_status DamageFlag 128 1 endevent
The Frog

Offline eu43

  • Wiadomości: 239
    • Zobacz profil
    • http://www.eu43.fora.pl/
  • Otrzymane polubienia: 0
Wykolejnice
« Odpowiedź #3 dnia: 15 Stycznia 2006, 17:32:55 »
Cytat: "Żabek"
trzebaby chyba ustawić damagetrack na 128 i po sprawie.

Właśnie! Trzeba by zrobić odcinek toru jakieś 5m i tam zrobić damangetrack na 128. Ale co zrobić jak wykolejnica się "cofnie". Wtedy pociąg też się wykolei.

Offline Żabek

  • Wiadomości: 546
  • Gdzie jest guzik rezygnacji?
    • Zobacz profil
  • Otrzymane polubienia: 2
Wykolejnice
« Odpowiedź #4 dnia: 15 Stycznia 2006, 17:39:35 »
Jak mówisz - nawet 1m toru ze standardowym DamageFlag i o nazwie tor_Wk1. Do tego dorabiasz eventy:
1. wykolejnica założona:
event Wk1_1 updatevalues 0 tor_Wk1_status DamageFlag 128 1 endevent
2. wykolejnica zdjęta:
event Wk1_0 updatevalues 0 tor_Wk1_status DamageFlag 0 1 endevent
Jeśli się mylę proszę mnie poprawić.
The Frog

Offline uetam

  • Zasłużony dla Symulatora
  • Wiadomości: 2641
    • Zobacz profil
  • Otrzymane polubienia: 6
Wykolejnice
« Odpowiedź #5 dnia: 15 Stycznia 2006, 17:41:24 »
Mhm, tak w ogole to skoro juz sie za to wziales, to moze tez napedy do zwrotek 34/300 albo w ogole cale modele tych zwrotek? Do neb by juz bylo... ;-)

Offline Paul

  • Zasłużony dla Symulatora
  • Wiadomości: 523
    • Zobacz profil
    • Beskidzka Strona Kolejowa
  • Otrzymane polubienia: 16
Wykolejnice
« Odpowiedź #6 dnia: 15 Stycznia 2006, 20:34:24 »
Dzięki za pomysł z tym damageflag, próbuję to zrobić ale wyskakuje mi komunikat 'event "Wk1_tor1" cannot find node "wk1tor_status"'. Tor o nazwie wk1tor w scenerii istnieje. Eventy wpisałem następujące:


event (p1)_tor1 updatevalues 0 Wk1tor_status DamageFlag 128 1 endevent
event (p1)_tor2 updatevalues 0 Wk1tor_status DamageFlag 0 1 endevent


Cytat: "Mateu"
Mhm, tak w ogole to skoro juz sie za to wziales, to moze tez napedy do zwrotek 34/300 albo w ogole cale modele tych zwrotek? Do neb by juz bylo... ;-)


No można pomyśleć ;-) Ostatnio zrobiłem nawet taki fajny program do generowania tekstury podsypki na rozjazdy ale ma drobne problemy z generowaniem cienia i przytwierdzeń pod wewnętrznymi szynami.

Pozdrawiam Paweł
automatyka sterowania ruchem kolejowym rox
www.isdr.pl | www.bsk.isdr.pl | pokrzesik.wytnij@gmail.com

Offline Żabek

  • Wiadomości: 546
  • Gdzie jest guzik rezygnacji?
    • Zobacz profil
  • Otrzymane polubienia: 2
Wykolejnice
« Odpowiedź #7 dnia: 15 Stycznia 2006, 20:38:08 »
Cytat: "Paul"
(...)ale wyskakuje mi komunikat 'event "Wk1_tor1" cannot find node "wk1tor_status"'. Tor o nazwie wk1tor w scenerii istnieje. Eventy wpisałem następujące:


event (p1)_tor1 updatevalues 0 Wk1tor_status DamageFlag 128 1 endevent
event (p1)_tor2 updatevalues 0 Wk1tor_status DamageFlag 0 1 endevent

No to Ci nie pomogę. Są tu mądrzejsi ode mnie. Moja trasa m. in. przez eventy leży gdzieś na boku dysku. A przykład był z dokumentacji symka... Może zamiast Wk1tor_status wpisz po prostu Wk1tor... Nie wiem.
The Frog

Offline Mati_An

  • Wiadomości: 630
  • Trasopisarz i fotograf
    • Zobacz profil
    • Moje Fotki
  • Otrzymane polubienia: 1
Wykolejnice
« Odpowiedź #8 dnia: 15 Stycznia 2006, 23:36:55 »
Ja to zrobiłem tak: tor blokowany wykolejnicą nazwałem wk1_tor, długość 0.5m, a do toru przypisałem zdarzenie wk1_tor_stop, które wygląda tak: event wk1_tor_stop putvalues 0.0 none 0.0 0.0 0.0 SetDamage 128 1 endevent I najważniejszy efekt czyli wykolejenie loka następuje. Żeby sterować tym zdarzeniem trzeba by pobawić się z komórką pamięci, ale to już pryszcz. Jedyny problem jest taki, że lokomotywa przy 20 km/h przejedzie przez wykolejnicę całą swoją długością i dopiero potem się wykolei.
Bajka o czasie - trza się brać tylko za trasy... a może nie tylko?

Offline Bart

  • Zasłużony dla Symulatora
  • Wiadomości: 415
    • Zobacz profil
  • Otrzymane polubienia: 0
Wykolejnice
« Odpowiedź #9 dnia: 16 Stycznia 2006, 00:01:50 »
Cytat: "Mateu"
Mhm, tak w ogole to skoro juz sie za to wziales, to moze tez napedy do zwrotek 34/300 albo w ogole cale modele tych zwrotek? Do neb by juz bylo... ;-)


nie wiem czy updatowałem do SVNa, ale wydaje mi się że lewą tak (i to już dawno). Paul sam robił teksturki do nich (zwrotnic)



więc dont give a *** :] do SPT już jest



chyba że dla chłopaki z Nebula Kreators Team  potrzebują :]
Marcin_EU (21-08-2005 20:42) napisał:
wystarczy znalezc wielu frajerow i za 10 lat ze starego symka bedziecie mieli bve, a za 50 to moze i mstsa

Offline uetam

  • Zasłużony dla Symulatora
  • Wiadomości: 2641
    • Zobacz profil
  • Otrzymane polubienia: 6
Wykolejnice
« Odpowiedź #10 dnia: 16 Stycznia 2006, 07:02:20 »
No to zwracam szacuneczek ;-)
@Bart - a wersja z used i unused ?:] Bedzie mozliwa?

Offline Paul

  • Zasłużony dla Symulatora
  • Wiadomości: 523
    • Zobacz profil
    • Beskidzka Strona Kolejowa
  • Otrzymane polubienia: 16
Wykolejnice
« Odpowiedź #11 dnia: 16 Stycznia 2006, 08:30:15 »
Racja, przypomniało mi się dopiero po napisaniu ostatniego posta :-) Wersja z Used i Unused jest jak najbardziej możliwa. Bart - to nie doszły w końcu te tekstury pobrudzone smarem? O takie:

http://paul.kolej.szczecin.pl/maszyna/rozjazdy/wyciapane.jpg

Moja propozycja - jak już trzymamy się standartów to może by zrobić te zwrotnice o długości 33.23 tak jak w rzeczywistości - bo są 34 metry teraz. Można by do tego dorobić jeszcze rozjazdy R=190 L=27.138 krzyżowy R=190 L=33.23 (ten mój ma R=150) i podwójny R=190 L=37.661 (modelem i teksturami podsypki zająłbym się sam). Bart przewidujesz wersje z napędem ręcznym (bambuły) i pędniowym? A w wykolejnicy brakuje belki ochronnej :-)

@Mati_An chodziło mi o procedury które by zmieniały DamageFlag ze 128 na 0 i odwrotnie przy zdejmowaniu i zakładaniu wykolejnicy.
automatyka sterowania ruchem kolejowym rox
www.isdr.pl | www.bsk.isdr.pl | pokrzesik.wytnij@gmail.com

Offline youBy

  • Deweloper
  • Wiadomości: 6167
  • Co tam?
    • Zobacz profil
    • Automat Weryfikujący Regulację i Lambdę
  • Otrzymane polubienia: 876
Wykolejnice
« Odpowiedź #12 dnia: 16 Stycznia 2006, 12:48:21 »
Cytat: "Bart"
chyba że dla chłopaki z Nebula Kreators Team  potrzebują :]
Już jak coś to Niezależny Klub Turystyczny :P. A przyda się wszystko.

Cytat: "Paul"
I tu pytanie do Devs - czy dało by się od strony programu zrobić takie coś jak wykolejnica?
Zapewne tak, tylko że nie doszedłem jeszcze do tego miejsca w kodzie. Na razie siedzę przy pliku mover.pas
Xoov
Powyższy post wyraża jedynie opinię autora w chwili publikacji. Autor zastrzega sobie prawo do zmiany poglądów bez podawania przyczyny, jak również informowania o tym.

Offline uetam

  • Zasłużony dla Symulatora
  • Wiadomości: 2641
    • Zobacz profil
  • Otrzymane polubienia: 6
Wykolejnice
« Odpowiedź #13 dnia: 16 Stycznia 2006, 12:57:43 »
Cytat: "Paul"
Racja, przypomniało mi się dopiero po napisaniu ostatniego posta :-) Wersja z Used i Unused jest jak najbardziej możliwa. Bart - to nie doszły w końcu te tekstury pobrudzone smarem? O takie:

http://paul.kolej.szczecin.pl/maszyna/rozjazdy/wyciapane.jpg


Mi tam sie marzy taki ladny model toru z srubami, wystajacymi podkladami znad posypki itd ;-)

Offline Mati_An

  • Wiadomości: 630
  • Trasopisarz i fotograf
    • Zobacz profil
    • Moje Fotki
  • Otrzymane polubienia: 1
Wykolejnice
« Odpowiedź #14 dnia: 16 Stycznia 2006, 12:58:47 »
Na razie wymyśliłem takie coś, wklejam całość zdarzeń żeby było łatwiej:// p1 - nazwa
// p2 p3 p4 p5 - współrzędne i obrót
// p6 - tekstura podsypki
// p7 - nazwa toru z wykolejnicą

node -1 0 (p1) eventlauncher (p2) (p3) (p4) 3.0 t 0 (p1)o (p1)z end
node -1 0 (p7)_status memcell (p2) (p3) (p4) SetDamage 128 1 none endmemcell

node -1 0 (p1)_belka model (p2) (p3) (p4) (p5) wk_belkaP.t3d none endmodel
node -1 0 (p1)_latarnia model (p2) (p3) (p4) (p5) wk_latarniaPP.t3d none endmodel

event (p1)_Wz1 animation 0.5 (p1)_latarnia rotate trzon 0 0 0 100 endevent
event (p1)_Wz2 animation 0.5 (p1)_latarnia rotate trzon 0 0 -90 100 endevent

event (p1)_belka1 animation 0.5 (p1)_belka rotate belka_wykolejajaca_dol 0 0 0 100 endevent
event (p1)_belka2 animation 0.5 (p1)_belka rotate belka_wykolejajaca_dol 0 90 0 100 endevent

event (p1)o multiple 1.0 none (p7)_go (p1)_Wz2 (p1)_belka2 endevent
event (p1)z multiple 1.0 none (p7)_stop (p1)_Wz1 (p1)_belka1 endevent

event (p7)_go updatevalues 0.0 (p7)_status SetDamage 0 -1 endevent
event (p7)_stop updatevalues 0.0 (p7)_status SetDamage 128 1 endevent

event (p7)_stan getvalues 1.0 (p7)_status endevent

Tor z wykolejnicą trzeba jakoś nazwać, np. wk1_tor i do tego toru przypisać jednocześnie zdarzenia eventall1 i eventall2 o nazwie wk1_tor_stan (chodzi o to żeby wykolejało w obie strony i działało nie tylko na loki ale i na wagony).
Mam nadzieję, że nie namieszałem.
PS. Tor z wykolejnicą długi na 30m, a wykolejnica na 15 metrze, wtedy wykolejanie wygląda najlepiej.
Bajka o czasie - trza się brać tylko za trasy... a może nie tylko?

Offline Paul

  • Zasłużony dla Symulatora
  • Wiadomości: 523
    • Zobacz profil
    • Beskidzka Strona Kolejowa
  • Otrzymane polubienia: 16
Wykolejnice
« Odpowiedź #15 dnia: 16 Stycznia 2006, 20:16:27 »
Cytat: "Mati_An"
Na razie wymyśliłem takie coś, wklejam całość zdarzeń żeby było łatwiej:


Dzięki, działa, ale tu jest jeden problem - lok który przejeżdża mi przez taką "wykolejnicę" ulega raczej zepsuciu a nie wykolejeniu, co trochę śmiesznie wygląda. Tamten patent z DamageFlag był lepszy, tylko dalej nie wiem jak zmieniać zdarzeniami DamageFlag toru (wyskakuje mi to okienko cannot find node Wk1tor_status). O, widzę że z Andrychowa jesteś? Ja z Kęt :-)

Pozdrawiam, Paweł
automatyka sterowania ruchem kolejowym rox
www.isdr.pl | www.bsk.isdr.pl | pokrzesik.wytnij@gmail.com

Offline Mati_An

  • Wiadomości: 630
  • Trasopisarz i fotograf
    • Zobacz profil
    • Moje Fotki
  • Otrzymane polubienia: 1
Wykolejnice
« Odpowiedź #16 dnia: 16 Stycznia 2006, 20:45:12 »
Też kombinowałem z tym DamageFlag, ale trzeba by zrobić coś co zmienia definicję w torze z wykolejnicą, a do tego jeszcze nie doszłem (a Scenery.doc przerobiłem z 10 razy).

Pozdrawiam, Mateusz
Można powiedzieć, że Kęty to mój drugi dom (6 lat chodziłem tu do szkoły).
Bajka o czasie - trza się brać tylko za trasy... a może nie tylko?

Offline Paul

  • Zasłużony dla Symulatora
  • Wiadomości: 523
    • Zobacz profil
    • Beskidzka Strona Kolejowa
  • Otrzymane polubienia: 16
Wykolejnice
« Odpowiedź #17 dnia: 16 Stycznia 2006, 21:43:48 »
Po lekturze Scenery.doc uświadomiłem sobie że źle używałem komendy PutValues - ona wysyła informacje nie do toru tylko do memcell... Więc zmodyfikowałem to tak ale dalej nie działa (podczas odpalenia (p1)to nie zmienia DamageFlag ze 128 (początkowa wartość DamageFlag tego toru po eksporcie z 3ds) na 0):


node -1 0 memcell_(p1)tor memcell (p2) (p3) (p4) DamageFlag 0 1 (p1)tor endmemcell

event (p1)to updatevalues 0.0 memcell_(p1)tor DamageFlag 0 1 endevent
event (p1)tz updatevalues 0.0 memcell_(p1)tor DamageFlag 128 1 endevent

event (p1)z multiple 1 none (p1)_Wz1 (p1)_belka1 (p1)tz endevent
event (p1)o multiple 1 none (p1)_Wz2 (p1)_belka2 (p1)to endevent


Może ktoś bardziej wtajemniczony w obsługę eventów by to wyjaśnił? Bo ja w tym za bardzo obeznany nie jestem. Za co właściwie odpowiada ten drugi parametr po DamageFlag?

Pozdrawiam, Paweł
automatyka sterowania ruchem kolejowym rox
www.isdr.pl | www.bsk.isdr.pl | pokrzesik.wytnij@gmail.com

Offline piotpal

  • Wiadomości: 104
    • Zobacz profil
  • Otrzymane polubienia: 0
Wykolejnice
« Odpowiedź #18 dnia: 18 Stycznia 2006, 21:42:08 »
Nie jestem żadnym ekspertem, ale mam pewien pomysł co do tej wykolejnicy. Nie wiem czy wykonalny.
Chodzi głównie o to, aby w miejscu wykolejnicy dać rozjazd w którym niewidoczny byłby tor na zboczenie jak i wskaźnik zwrotki. Jeżeli wykolejnica byłaby nałożona na tor, rozjazd wskazywałby na zboczenie, które by się kończyło. Po przejechaniu takiej wykolejnicy z rozjazdem, po prostu wyskakiwałby błąd, no i koniec gry. Gdyby natomiast wykolejnica była zdjęta z toru rozjazd ułożony byłby na wprost.
Jeżeli to jest wykonalne to trzeba byłoby albo stworzyć nową wykolejnicę z niewidocznym rozjazdem, bądź sam rozjazd. Co o tym sądzicie?
Piotpal

Offline Qba_S

  • Wiadomości: 7
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Wykolejnice
« Odpowiedź #19 dnia: 20 Października 2007, 15:53:58 »
Przeglądając ostatnio forum natrafiłem na ten (dosyć dawno już opuszczony) wątek na temat wykolejnic. Z powodu chwilowego nadmiaru wolnego czasu postanowiłem przyjrzeć się bliżej problemowi modyfikowania właściwości DamageFlag torów. Doszedłem do wniosku, że nie jest możliwe edytowanie właściwości torów podczas uruchomienia symulatora (trzeba to zrobić przed, we właściwościach toru). Tory nie są obiektami aktywnymi, więc parametry takie jak DamageFlag, Quality czy Friction mogą być ustawiane tylko i wyłączne w momencie definiowania toru. Jedyną wartością jaką można sterować jest Velocity, ale do niej został stworzony specjalny rodzaj eventu (TrackVel). Tak czy inaczej udało mi się znaleźć ciekawe rozwiązanie problemu z wykolejnicą. Jest to połączenie sposobów zaproponowanych przez kolegów Żabka i piotpala.

Wygląda to mniej więcej tak:




Przed i za wykolejnicą wstawiamy dwie zwrotnice, o długości 3m i parametrze unvis. Jeśli zwrotnica jest skierowana prosto to wykolejnica jest wyłączona i pociąg wjeżdża na wprost, na zwykły, pięciometrowy kawałek toru (także tu warto ustawić unvis, aby był niewidzialny). Jeśli jednak zwrotnica jest skierowana w bok, to pociąg wjeżdża na niewidzialnego flexa (na obrazu zaznaczony na brązowo) z ustawionym DamageFlag na 128, co powoduje jego natychmiastowe wykolejenie. Flex ten łączy odgałęzienia zwrotnic.

Sposób ten umożliwia w każdym momencie cofnięcie wykolejnicy (wystarczy przestawić zwrotnice na wprost). Ponieważ zwrotnice i tory je łączące są niewidzialne należy podłożyć pod to wszystko kawałek zwykłych torów, trochę dłuższych od całego modułu wykolejającego (np. o 10 cm), ale nie połączonych z żadnymi torami(w tym wypadku będzie to prosty kawałek o długości 11,1m). Bardzo ważne jest, aby zwrotnice były niewidzialne oraz nie miały podsypki i latarni (po wygenerowaniu tego w 3ds max'ie należy ręcznie usunąć podsypkę z pliku scenerii).

Teraz wystarczy tylko napisać eventy do sterowania wszystkim (ponieważ nie dołączyliśmy podsypki i latarni zwrotnicami musimy sterować bezpośrednio za pomocą funkcji switch).

Dołączam przykładową scenerię z działającą wykolejnicą:
http://www.sendspace.com/file/ptj3lc

Shift+1 -> wykolejnica zdjęta
Shift+2 -> wykolejnica założona

Offline AtapiCl

  • Zasłużony dla Symulatora
  • Wiadomości: 4426
    • Zobacz profil
    • O warszawskiej części linii kolejowej nr 7 Warszawa – Lublin i nie tylko ;)
  • Otrzymane polubienia: 212
Odp: Wykolejnice
« Odpowiedź #20 dnia: 22 Października 2007, 12:19:25 »
Przeglšdajšc ostatnio forum natrafiłem na ten (dosyć dawno już opuszczony) wštek na temat wykolejnic. Z powodu chwilowego nadmiaru wolnego czasu postanowiłem przyjżeć się bliżej problemowi modyfikowania właœciwoœci DamageFlag torów. Doszedłem do wniosku, że nie jest możliwe edytowanie właœciwoœci torów podczas uruchomiena symulatora (trzeba to zrobić przed, we właœciwoœciach toru). Tory nie sš obieketami aktywnymi, więc parametry takie jak DamageFlag, Quality czy Friction mogš być ustawiane tylko i wyłšczne w momencie definiowania toru.

Czyli wg. Ciebie nie działa wykolejanie i trzeba kombinować?

Już jakiś czas temu zrobiłem wykolejającą wykolejnicę sterowaną eventami bez jakichś wydziwów ze zwrotnicami.

Jeszcze dziś ją gdzieś powieszę...

EDIT:

Oto link:

http://www.sendspace.com/file/mb38xz
« Ostatnia zmiana: 22 Października 2007, 16:12:30 wysłana przez ziomalcl »

Offline Qba_S

  • Wiadomości: 7
    • Zobacz profil
  • Otrzymane polubienia: 0
Odp: Wykolejnice
« Odpowiedź #21 dnia: 22 Października 2007, 18:45:44 »
Rzeczywiœcie, jest to prostszy sposób (w sumie nawet gdzieœ wczeœniej opisany), tyle że jak napisał @Paul:

Cytat: Paul
Dzięki, działa, ale tu jest jeden problem - lok który przejeżdża mi przez taką "wykolejnicę" ulega raczej zepsuciu a nie wykolejeniu, co trochę śmiesznie wygląda. Tamten patent z DamageFlag był lepszy, tylko dalej nie wiem jak zmieniać zdarzeniami DamageFlag toru (wyskakuje mi to okienko cannot find node Wk1tor_status).

Sposób ze zwrotkami wyglšda trochę realistyczniej :)
Tak czy inaczej kłócić się nie bedę, a poza tym MaSzyna służy do jazdy a nie wykolejania :)


Offline Paul

  • Zasłużony dla Symulatora
  • Wiadomości: 523
    • Zobacz profil
    • Beskidzka Strona Kolejowa
  • Otrzymane polubienia: 16
Odp: Wykolejnice
« Odpowiedź #22 dnia: 23 Października 2007, 13:23:37 »
Baw się ze zwrotnicami jak masz wykolejnicę podwójną na rozjeździe...

Pozdr, Paweł
automatyka sterowania ruchem kolejowym rox
www.isdr.pl | www.bsk.isdr.pl | pokrzesik.wytnij@gmail.com