[Hades] 1 Odesláno: 22. Srpen, 2017 Share Odesláno: 22. Srpen, 2017 Popis problému: Zdravím mam problem z pozici pro duel ale jde o pozici zony zmenil sem misto konanani duelu a tim padem se musi zmenit i zona duelu jde o 8 cisel pozic if(X >= && X <= && Y >= && Y <= ). Tato funkce ma vytvaret zonu duelu ale jak je tam dosadit tak aby to nevihazovalo Chyby/varování kompilátoru a při běhu: -- Kód: [spoiler]Puvodni duel z fora: #include #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #define BARVA_MODRA 0x33CCFFAA #define BARVA_BILA 0xEFEFF7AA #define MAX_PLAYERS_EX 200 forward duelTimerStart(); forward duelTimerUpdate(); enum DUEL_INFO { Started, Counter, Pocethracu, TimerStart, TimerUpdate } new Duel[DUEL_INFO]; new IsPlayerInDuel[MAX_PLAYERS_EX]; new DuelZbran[MAX_PLAYERS_EX]; stock WeaponName(weapon) { new Nazev[50]; if (weapon == 0) Nazev = "Nic"; else if(weapon == 1) Nazev = "Boxer"; else if(weapon == 2) Nazev = "Golfova hul"; else if(weapon == 3) Nazev = "Hul"; else if(weapon == 4) Nazev = "Nuz"; else if(weapon == 5) Nazev = "Baseballka"; else if(weapon == 6) Nazev = "Lopata"; else if(weapon == 7) Nazev = "Kulecnikova hul"; else if(weapon == 8) Nazev = "Katana"; else if(weapon == 9) Nazev = "Motorovka"; else if(weapon == 10) Nazev = "Dildo"; else if(weapon == 11) Nazev = "Dildo2"; else if(weapon == 12) Nazev = "Vibrator"; else if(weapon == 13) Nazev = "Vibrator2"; else if(weapon == 14) Nazev = "Kvetiny"; else if(weapon == 15) Nazev = "Cane"; else if(weapon == 16) Nazev = "Granat"; else if(weapon == 17) Nazev = "Slzny plyn"; else if(weapon == 18) Nazev = "Molotovuv koktejl"; else if(weapon == 22) Nazev = "Kolt45"; else if(weapon == 23) Nazev = "Pistole s tlumicem"; else if(weapon == 24) Nazev = "Desert Eagle"; else if(weapon == 25) Nazev = "Shotgun"; else if(weapon == 26) Nazev = "Sawn-off Shotgun"; else if(weapon == 27) Nazev = "Combat Shotgun"; else if(weapon == 28) Nazev = "Uzi"; else if(weapon == 29) Nazev = "Mp5"; else if(weapon == 30) Nazev = "AK47"; else if(weapon == 31) Nazev = "M4"; else if(weapon == 32) Nazev = "Tec9"; else if(weapon == 33) Nazev = "Rifle"; else if(weapon == 34) Nazev = "Sniperka"; else if(weapon == 35) Nazev = "Raketomet"; else if(weapon == 36) Nazev = "Teplonavadeci Raketomet"; else if(weapon == 37) Nazev = "Plamenomet"; else if(weapon == 38) Nazev = "Minigun"; else if(weapon == 39) Nazev = "Satchel"; else if(weapon == 40) Nazev = "Bomba"; else if(weapon == 41) Nazev = "Spray"; else if(weapon == 42) Nazev = "Hasicak"; else if(weapon == 43) Nazev = "Fotak"; else if(weapon == 44) Nazev = "Noční vidění"; else if(weapon == 45) Nazev = "Infračervená vize"; else if(weapon == 46) Nazev = "Padak"; return Nazev; } stock Jmeno(playerid) { new p[MAX_PLAYER_NAME]; if(IsPlayerConnected(playerid)) GetPlayerName(playerid,p,MAX_PLAYER_NAME); return p; } IsNumeric(string[]){ for (new i = 0,j = strlen(string); i < j; i++) if(string[i] > '9' || string[i] < '0') return 0; return 1; } public duelTimerStart() { new string[10]; Duel[Counter]--; if(Duel[Counter] > 0) Duel[TimerStart] = SetTimer("duelTimerStart",1000,0); for(new i=0; i< MAX_PLAYERS_EX; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInDuel[i] != 0) { if(Duel[Counter] > 0) { format(string,sizeof(string),"%d",Duel[Counter]); GameTextForPlayer(i,string,1000,4); }else{ GameTextForPlayer(i,"~r~START!",2000,4); GivePlayerWeapon(i,DuelZbran[i],99999); } } } } return 1; } public duelTimerUpdate() { for(new i=0; i< MAX_PLAYERS_EX; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInDuel[i] != 0) { new Float:X,Float:Y,Float:Z; GetPlayerPos(i,X,Y,Z); if(X >= 2445.0791 && X = 2350.9741 && Y 47 || zbranid < 0 || zbranid == 44 || zbranid == 45 || zbranid == 19 || zbranid == 20 || zbranid == 21 || zbranid == 38 || zbranid == 43) return SendClientMessage(playerid,BARVA_BILA,"[!] Spatne zvolena zbran! Mrknete se na /duelweaponlist"); else { Duel[Pocethracu] ++ ; DuelZbran[playerid] = zbranid; IsPlayerInDuel[playerid] = 1; ResetPlayerWeapons(playerid); KillTimer(Duel[TimerUpdate]); Duel[TimerUpdate] = SetTimer("duelTimerUpdate",1000,1); Duel[Counter] = 3; SetPlayerHealth(playerid,100); SetPlayerArmour(playerid,0); SetPlayerInterior(playerid,0); format(string,sizeof(string),"Hrac %s byl pripojen do duelu se zbrani %s (%d)",Jmeno(playerid),WeaponName(zbranid),zbranid); SendClientMessageToAll(BARVA_MODRA,string); if(Duel[Pocethracu] == 1) { SetPlayerPos(playerid,2449.7778,2378.5486,71.0496); } else if(Duel[Pocethracu] == 2) { SetPlayerPos(playerid,2489.5415,2378.6658,71.0496); Duel[Started] = 1; SendClientMessageToAll(BARVA_MODRA,"Duel zahajen,pripravit..."); Duel[TimerStart] = SetTimer("duelTimerStart",1000,0); } } } return 1; } dcmd_duelweaponlist(playerid,params[]) { #pragma unused params if(IsPlayerConnected(playerid)) { SendClientMessage(playerid,BARVA_MODRA,"Duel Weapons List:"); SendClientMessage(playerid,BARVA_MODRA,"Desert Eagle - 24"); SendClientMessage(playerid,BARVA_MODRA,"Shotgun - 25"); SendClientMessage(playerid,BARVA_MODRA,"Sawn Off Shotgun - 26"); SendClientMessage(playerid,BARVA_MODRA,"Combat Shotgun - 27"); SendClientMessage(playerid,BARVA_MODRA,"Uzi - 28"); SendClientMessage(playerid,BARVA_MODRA,"MP5 - 29"); SendClientMessage(playerid,BARVA_MODRA,"AK47 - 30"); SendClientMessage(playerid,BARVA_MODRA,"M4 - 31"); SendClientMessage(playerid,BARVA_MODRA,"Tec9 -32"); } return 1; } dcmd_duelguest(playerid,params[]) { #pragma unused params if(IsPlayerConnected(playerid)) { new string[150]; SetPlayerInterior(playerid,0); SetPlayerPos(playerid,2460.1892,2336.0178,82.7734); ResetPlayerWeapons(playerid); format(string,sizeof(string),"Hrac %s se prisel podivat na duel.",Jmeno(playerid)); SendClientMessageToAll(BARVA_MODRA,string); } return 1; }[/spoiler] Dodatečné poznámky: Mě jde vlastne o tyto pozice if(X >= 2445.0791 && X <= 2497.3074 && Y >= 2350.9741 && Y <= 2402.0007) a zde sou me souradnice kde by se to melo odehravat (místo je ve vzduchu v kleci) AddPlayerClass(276,537.8679,-1472.1122,716.8849,218.0587,0,0,0,0,0,0); // arena AddPlayerClass(276,554.3687,-1488.7344,716.8849,44.4938,0,0,0,0,0,0); // arena ja to mel takto: if(X >= 537.8679 && X <= 554.3687 && Y >= -1472.1122 && Y <= -1488.7344) ale jak sem zjistil tak je to spatne předem diky za pomoc a vysvětlení Link to comment Share on other sites More sharing options...
0 The hidden face 77 Odesláno: 22. Srpen, 2017 Share Odesláno: 22. Srpen, 2017 Mám na tebe jeden dotaz, co má vlastně dělat tahle funkce... Je strašně neoptimalizované.. pro každého hráče kontroluješ pozic, zbraně a nastavuješ x proměnných. Určitě by šla vylepšit, jen popiš k čemu všemu slouží: public duelTimerUpdate() { for(new i=0; i< MAX_PLAYERS_EX; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInDuel[i] != 0) { new Float:X,Float:Y,Float:Z; GetPlayerPos(i,X,Y,Z); if(X >= 2445.0791 && X = 2350.9741 && Y 47 || zbranid < 0 || zbranid == 44 || zbranid == 45 || zbranid == 19 || zbranid == 20 || zbranid == 21 || zbranid == 38 || zbranid == 43) return SendClientMessage(playerid,BARVA_BILA,"[!] Spatne zvolena zbran! Mrknete se na /duelweaponlist"); else { Duel[Pocethracu] ++ ; DuelZbran[playerid] = zbranid; IsPlayerInDuel[playerid] = 1; ResetPlayerWeapons(playerid); KillTimer(Duel[TimerUpdate]); Duel[TimerUpdate] = SetTimer("duelTimerUpdate",1000,1); Duel[Counter] = 3; SetPlayerHealth(playerid,100); SetPlayerArmour(playerid,0); SetPlayerInterior(playerid,0); format(string,sizeof(string),"Hrac %s byl pripojen do duelu se zbrani %s (%d)",Jmeno(playerid),WeaponName(zbranid),zbranid); SendClientMessageToAll(BARVA_MODRA,string); if(Duel[Pocethracu] == 1) { SetPlayerPos(playerid,2449.7778,2378.5486,71.0496); } else if(Duel[Pocethracu] == 2) { SetPlayerPos(playerid,2489.5415,2378.6658,71.0496); Duel[Started] = 1; SendClientMessageToAll(BARVA_MODRA,"Duel zahajen,pripravit..."); Duel[TimerStart] = SetTimer("duelTimerStart",1000,0); } } } return 1; } A co se té zóny týče, tak MinY v MinX > *------------- | | | gangzone | | center | | | -------------* < MaxX ^ MaxY zde máš obrázek z wiki jak to vlastně vypadá. Takže co ty potřebuješ je: stoupnout si do jednoho rohu, kde chceš vytvořit tu zónu a /save. Poté do protějšího rohu a zase /save. A tyhle pozice (jenom X a Y, pokud ti nezáleží na Z) dosadit do té podmínky. Musíš si dávat pozor na operátory --> tzn. správně umístit ty pozice v podmínce, aby jsi je neprohodil, to by ti pak správně nefungovalo. Link to comment Share on other sites More sharing options...
0 [Hades] 1 Odesláno: 22. Srpen, 2017 Author Share Odesláno: 22. Srpen, 2017 (upraveno) mela by to byt funkce ze pokud opusti zonu tak to napise ze hrac odesel z duelu a vyhodí ho to z duelu na pozici kde byl a nacte puvodni zbrane a ume by to asi ani tam nemuselo byt protoze duel ma byt v kleci co sem vytvoril a ve finále mě ani nedošlo že tu klec neopustí takže když se nikdo nepripoji bude to chtit prikaz /duelend hrac %s se odpojil z duelu a pokud by si byl tak ochoten a nevedl me spravnou cestou jak na to Takto by to bylo kdybych od dělal zonu ale neopustim duel dobrovolne pokud by se nepripojil souper #include #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1#define BARVA_MODRA 0x33CCFFAA#define BARVA_BILA 0xEFEFF7AA#define MAX_PLAYERS_EX 200forward duelTimerStart();forward duelTimerUpdate();enum DUEL_INFO{Started,Counter,Pocethracu,TimerStart,TimerUpdate}new Duel[DUEL_INFO];new IsPlayerInDuel[MAX_PLAYERS_EX];new DuelZbran[MAX_PLAYERS_EX];stock WeaponName(weapon){new Nazev[50];if (weapon == 0) Nazev = "Nic";else if(weapon == 1) Nazev = "Boxer";else if(weapon == 2) Nazev = "Golfova hul";else if(weapon == 3) Nazev = "Hul";else if(weapon == 4) Nazev = "Nuz";else if(weapon == 5) Nazev = "Baseballka";else if(weapon == 6) Nazev = "Lopata";else if(weapon == 7) Nazev = "Kulecnikova hul";else if(weapon == 8) Nazev = "Katana";else if(weapon == 9) Nazev = "Motorovka";else if(weapon == 10) Nazev = "Dildo";else if(weapon == 11) Nazev = "Dildo2";else if(weapon == 12) Nazev = "Vibrator";else if(weapon == 13) Nazev = "Vibrator2";else if(weapon == 14) Nazev = "Kvetiny";else if(weapon == 15) Nazev = "Cane";else if(weapon == 16) Nazev = "Granat";else if(weapon == 17) Nazev = "Slzny plyn";else if(weapon == 18) Nazev = "Molotovuv koktejl";else if(weapon == 22) Nazev = "Kolt45";else if(weapon == 23) Nazev = "Pistole s tlumicem";else if(weapon == 24) Nazev = "Desert Eagle";else if(weapon == 25) Nazev = "Shotgun";else if(weapon == 26) Nazev = "Sawn-off Shotgun";else if(weapon == 27) Nazev = "Combat Shotgun";else if(weapon == 28) Nazev = "Uzi";else if(weapon == 29) Nazev = "Mp5";else if(weapon == 30) Nazev = "AK47";else if(weapon == 31) Nazev = "M4";else if(weapon == 32) Nazev = "Tec9";else if(weapon == 33) Nazev = "Rifle";else if(weapon == 34) Nazev = "Sniperka";else if(weapon == 35) Nazev = "Raketomet";else if(weapon == 36) Nazev = "Teplonavadeci Raketomet";else if(weapon == 37) Nazev = "Plamenomet";else if(weapon == 38) Nazev = "Minigun";else if(weapon == 39) Nazev = "Satchel";else if(weapon == 40) Nazev = "Bomba";else if(weapon == 41) Nazev = "Spray";else if(weapon == 42) Nazev = "Hasicak";else if(weapon == 43) Nazev = "Fotak";else if(weapon == 44) Nazev = "Noční vidění";else if(weapon == 45) Nazev = "Infračervená vize";else if(weapon == 46) Nazev = "Padak";return Nazev;}stock Jmeno(playerid){new p[MAX_PLAYER_NAME];if(IsPlayerConnected(playerid)) GetPlayerName(playerid,p,MAX_PLAYER_NAME);return p;}IsNumeric(string[]){ for (new i = 0,j = strlen(string); i < j; i++) if(string > '9' || string < '0') return 0; return 1; }public duelTimerStart(){new string[10];Duel[Counter]--;if(Duel[Counter] > 0) Duel[TimerStart] = SetTimer("duelTimerStart",1000,0);for(new i=0; i< MAX_PLAYERS_EX; i++){if(IsPlayerConnected(i)){if(IsPlayerInDuel != 0){if(Duel[Counter] > 0){format(string,sizeof(string),"%d",Duel[Counter]);GameTextForPlayer(i,string,1000,4);}else{GameTextForPlayer(i,"~r~START!",2000,4);GivePlayerWeapon(i,DuelZbran,99999);}}}}return 1;}public duelTimerUpdate(){for(new i=0; i< MAX_PLAYERS_EX; i++){if(IsPlayerConnected(i)){if(IsPlayerInDuel != 0){new Float:X,Float:Y,Float:Z;GetPlayerPos(i,X,Y,Z);if(Duel[Counter] == 0){if(Duel[Pocethracu] == 1){new string[150];format(string,sizeof(string),"Vitezem duelu je %s.",Jmeno(i));SendClientMessageToAll(BARVA_MODRA,string);KillTimer(Duel[TimerUpdate]);DuelZbran = 0;IsPlayerInDuel = 0;SpawnPlayer(i);Duel[started] = 0;Duel[Pocethracu] = 0;}}}else{DuelZbran = 0;IsPlayerInDuel = 0;SpawnPlayer(i);new string[150];format(string,sizeof(string),"Hrac %s opustil duel.",Jmeno(i));SendClientMessageToAll(BARVA_MODRA,string);Duel[Pocethracu] --;if(Duel[Pocethracu] == 0){KillTimer(Duel[TimerUpdate]);Duel[started] = 0;}}}}return 1;}public OnPlayerCommandText(playerid,cmdtext[]){if(IsPlayerConnected(playerid)){dcmd(duel,4,cmdtext);dcmd(dueljoin,8,cmdtext);dcmd(duelguest,9,cmdtext);dcmd(duelweaponlist,14,cmdtext);}return 0;}dcmd_duel(playerid,params[]){#pragma unused paramsif(IsPlayerConnected(playerid)){SendClientMessage(playerid,BARVA_MODRA,"Duel:");SendClientMessage(playerid,BARVA_MODRA,"/dueljoin");SendClientMessage(playerid,BARVA_MODRA,"/duelstart");SendClientMessage(playerid,BARVA_MODRA,"/duelguest");SendClientMessage(playerid,BARVA_MODRA,"/duelweaponlist");}return 1;}dcmd_dueljoin(playerid,params[]){if(IsPlayerConnected(playerid)){new string[150];new zbranid=strval(params);if(!params[0]||!IsNumeric(params)) return SendClientMessage(playerid,BARVA_BILA,"[!] Použití: /dueljoin [zbranid]");else if(Duel[started] != 0) return SendClientMessage(playerid,BARVA_BILA,"[!] Duel jiz probiha,vyckejte!");else if(IsPlayerInDuel[playerid] != 0) return SendClientMessage(playerid,BARVA_BILA,"[!] Jiz jste v duelu!");else if(zbranid > 47 || zbranid < 0 || zbranid == 44 || zbranid == 45 || zbranid == 19 || zbranid == 20 || zbranid == 21 || zbranid == 38 || zbranid == 43) return SendClientMessage(playerid,BARVA_BILA,"[!] Spatne zvolena zbran! Mrknete se na /duelweaponlist");else{Duel[Pocethracu] ++ ;DuelZbran[playerid] = zbranid;IsPlayerInDuel[playerid] = 1;ResetPlayerWeapons(playerid);KillTimer(Duel[TimerUpdate]);Duel[TimerUpdate] = SetTimer("duelTimerUpdate",1000,1);Duel[Counter] = 3;SetPlayerHealth(playerid,100);SetPlayerArmour(playerid,0);SetPlayerInterior(playerid,0);format(string,sizeof(string),"Hrac %s byl pripojen do duelu se zbrani %s (%d)",Jmeno(playerid),WeaponName(zbranid),zbranid);SendClientMessageToAll(BARVA_MODRA,string);if(Duel[Pocethracu] == 1){SetPlayerPos(playerid,536.2170,-1481.2561,717.2756);}else if(Duel[Pocethracu] == 2){SetPlayerPos(playerid,556.7703,-1481.2313,717.2756);Duel[started] = 1;SendClientMessageToAll(BARVA_MODRA,"Duel zahajen,pripravit...");Duel[TimerStart] = SetTimer("duelTimerStart",1000,0);}}}return 1;}dcmd_duelweaponlist(playerid,params[]){#pragma unused paramsif(IsPlayerConnected(playerid)){SendClientMessage(playerid,BARVA_MODRA,"Duel Weapons List:");SendClientMessage(playerid,BARVA_MODRA,"Desert Eagle - 24");SendClientMessage(playerid,BARVA_MODRA,"Shotgun - 25");SendClientMessage(playerid,BARVA_MODRA,"Sawn Off Shotgun - 26");SendClientMessage(playerid,BARVA_MODRA,"Combat Shotgun - 27");SendClientMessage(playerid,BARVA_MODRA,"Uzi - 28");SendClientMessage(playerid,BARVA_MODRA,"MP5 - 29");SendClientMessage(playerid,BARVA_MODRA,"AK47 - 30");SendClientMessage(playerid,BARVA_MODRA,"M4 - 31");SendClientMessage(playerid,BARVA_MODRA,"Tec9 -32");}return 1;}dcmd_duelguest(playerid,params[]){#pragma unused paramsif(IsPlayerConnected(playerid)){new string[150];SetPlayerInterior(playerid,0);SetPlayerPos(playerid,539.7651,-1470.2284,716.8849);ResetPlayerWeapons(playerid);format(string,sizeof(string),"Hrac %s se prisel podivat na duel.",Jmeno(playerid));SendClientMessageToAll(BARVA_MODRA,string);}return 1;} vlaste se jen odelal radek ze zonou if(X >=532.2701 && X <=559.5403 && Y >=-1481.0779 && Y <=-1481.0552) { ale jak ted ukoncit duel pomoci prikazu Edited 22. Srpen, 2017 by Doobyvatel Link to comment Share on other sites More sharing options...
0 Twixo 1 Odesláno: 22. Srpen, 2017 Share Odesláno: 22. Srpen, 2017 Vyzerá to ako ATomasov duel, ten by sa mal ukončovať hneď, keď niekto umrie. Link to comment Share on other sites More sharing options...
0 [Hades] 1 Odesláno: 22. Srpen, 2017 Author Share Odesláno: 22. Srpen, 2017 jj je to jeho duel a ano ukoncuje ale pokud se nikdo nepripoji musel by si opustit strechu ale pokud zmenis misto duelu na klec tak sni jen tak nevilezes Link to comment Share on other sites More sharing options...
0 Twixo 1 Odesláno: 22. Srpen, 2017 Share Odesláno: 22. Srpen, 2017 Uprav podľa seba ten duel join, keď hráč zakladá ten duel, takže všetko čo je pred if(duel[počethraču] == 1), takže ak to založí, tak sprav timer napr. na 20sec. A keď skončí timer, tak zruší duel. Skús si pozrieť duelupdate public a všetko za }else{ slúži ku ukončeniu duelu. A potom, keď sa napojí druhý hráč, takže pod if(duel[počethraču] == 1) skonči timer. To by si mohol zvládnuť Funkcie kt. budeš potrebovať, sú v tom duelupdate timer napr. CMD: ... for(new i = 0; i <= MAX_PLAYERS; i++){ DuelZbran = 0;IsPlayerInDuel = 0;SpawnPlayer(i);Duel[Pocethracu] --;if(Duel[Pocethracu] == 0)KillTimer(Duel[TimerUpdate]);Duel[started] = 0; a tak ďalej Link to comment Share on other sites More sharing options...
Dotaz
[Hades] 1
Popis problému:
Zdravím mam problem z pozici pro duel ale jde o pozici zony zmenil sem misto konanani duelu
a tim padem se musi zmenit i zona duelu jde o 8 cisel pozic if(X >= && X <= && Y >= && Y <= ).
Tato funkce ma vytvaret zonu duelu ale jak je tam dosadit tak aby to nevihazovalo
Chyby/varování kompilátoru a při běhu:
--
Kód:
Dodatečné poznámky:
Mě jde vlastne o tyto pozice
if(X >= 2445.0791 && X <= 2497.3074 && Y >= 2350.9741 && Y <= 2402.0007)
a zde sou me souradnice kde by se to melo odehravat (místo je ve vzduchu v kleci)
AddPlayerClass(276,537.8679,-1472.1122,716.8849,218.0587,0,0,0,0,0,0); // arena
AddPlayerClass(276,554.3687,-1488.7344,716.8849,44.4938,0,0,0,0,0,0); // arena
ja to mel takto:
if(X >= 537.8679 && X <= 554.3687 && Y >= -1472.1122 && Y <= -1488.7344)
ale jak sem zjistil tak je to spatne
předem diky za pomoc a vysvětlení
Link to comment
Share on other sites
5 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now