Szerző Téma: spawnoláskor elõjön egy dialog ahol lehet...  (Megtekintve 1416 alkalommal)

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Dátum: 2012. Október 18. - 08:33:35 »
0 Show voters
Hali
spawnoláskor elõjön egy dialog ahol lehet,fegyvereket venni.
Ez minden halál után elõjön,ez készen is van!
beraktam a dailogot az OnPlayerSpawn alá.
Mûködik normálisan!
De nekem úgy kéne,hogy van szeromon Két Csapat-
És azt szeretném hogy két különbözõ dialog jön fel!
Tehát,hogy másokat tudjanak vásárolni!
Ezt hogy tudom meg oldani?
Elõre is köszönöm a helpet!

spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #1 Dátum: 2012. Október 18. - 08:50:38 »
+1 Show voters
Mint bárhol máshol ahol megkülönbözteted ki melyik csapathoz tartozik.
Erre a gTeam nevû változót alkalmazzák a legtöbben meg ez a legelterjedtebb, de bármi más is lehet.
OnPlayerSpawn(playerid) alá:
 
if(gTeam[playerid] == BLUE) ShowPlayerDialog(playerid, WEAPON_BLUETEAM, blabla...
else if(gTeam[playerid] == RED) ShowPlayerDialog(playerid, WEAPON_REDTEAM, blabla...

 
És persze kell OnDialogResponse alá kettõ darab lehetõség is: if(dialogid == WEAPON_BLUETEAM)  if(dialogid == WEAPON_REDTEAM)

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #2 Dátum: 2012. Október 18. - 09:35:49 »
0 Show voters
Beraktam ezeket a hibákat írja :/
 

C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : error 001: expected token: \";\", but found \")\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
4 Errors.

 
Erre mutat rá.
 
    if(PlayerTeam[playerid] == TEAM_BLUE) ShowPlayerDialog(playerid, WEAPON_TERRORISTATEAM, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
    else if(PlayerTeam[playerid] == TEAM_RED) ShowPlayerDialog(playerid, WEAPON_KATONATEAM, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárlás\", \"Mostnem\");

Nem elérhető JackBronson

  • 1499
  • ??
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #3 Dátum: 2012. Október 18. - 09:40:28 »
0 Show voters
Torold ki onnan a WEAPON_TERRORISTATEAM-et probald meg ugy.
(Nem biztos)
De annak mar van funkcioja.
Definiald be ezt:
 DIALOG10000

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #4 Dátum: 2012. Október 18. - 09:42:13 »
0 Show voters
Idézetet írta: JaCk date=1350546028\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28712\" data-ipsquote-contentclass=\"forums_Topic
Torold ki onnan a WEAPON_TERRORISTATEAM-et probald meg ugy.
(Nem biztos)
De annak nincs semmi funkcioja.
 
Nem,nem azzal van a gond az a dialog neve,meg itt valami eírás gond van,csak nem találom meg valami
vesszõ vagy zárójel :/

Nem elérhető JackBronson

  • 1499
  • ??
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #5 Dátum: 2012. Október 18. - 09:43:51 »
0 Show voters
Nem hiszem, hogy eliras
 
expression has no effect

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #6 Dátum: 2012. Október 18. - 09:45:16 »
0 Show voters
Így van a Dialognál
 
   if(dialogid == WEAPON_TERRORISTATEAM)
{
    switch(listitem)
    {
        case 0:
        {
        if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 4,1);
        GivePlayerMoney(playerid, -450);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
   }
   case 1:
        {
        if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 29,150);
        GivePlayerMoney(playerid, -4000);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy MP5-t\");
   }
   case 2:
        {
        if(GetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 33,100);
        GivePlayerMoney(playerid, -6500);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Country Rifle-t\");
   }
if(dialogid == WEAPON_KATONATEAM)
{
    switch(listitem)
    {
        case 0:
        {
        if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 4,1);
        GivePlayerMoney(playerid, -450);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
   }
   case 1:
        {
        if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 32,150);
        GivePlayerMoney(playerid, -4000);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Tec9-t\");
   }
   case 2:
        {
        if(GetPlayerMoney(playerid) < 7500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 26,100);
        GivePlayerMoney(playerid, -7500);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Sawnoff Shotgun-t\");
   }
   return 1;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #7 Dátum: 2012. Október 18. - 10:06:57 »
0 Show voters
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #8 Dátum: 2012. Október 18. - 11:14:57 »
0 Show voters
OnPlayerSpawn
 
    if(PlayerTeam[playerid] == TEAM_TERRORISTA) ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
    else if(PlayerTeam[playerid] == TEAM_KATONA) ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárlás\", \"Mostnem\");

 
OnDialogResponse
 
   if(dialogid == 20322 && response)
{
    switch(listitem)
    {
        case 0:
        {
        if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 4,1);
        GivePlayerMoney(playerid, -450);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
        ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
   }
   case 1:
        {
        if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 29,150);
        GivePlayerMoney(playerid, -4000);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy MP5-t\");
        ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
   }
   case 2:
        {
        if(GetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 33,100);
        GivePlayerMoney(playerid, -6500);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Country Rifle-t\");
        ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
   }
if(dialogid == 20323 && response)
{
    switch(listitem)
    {
        case 0:
        {
        if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 4,1);
        GivePlayerMoney(playerid, -450);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
        ShowPlayerDialog(playerid, 20323, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárol\", \"Mostnem\");
   }
   case 1:
        {
        if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 32,150);
        GivePlayerMoney(playerid, -4000);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Tec9-t\");
        ShowPlayerDialog(playerid, 20323, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárol\", \"Mostnem\");
   }
   case 2:
        {
        if(GetPlayerMoney(playerid) < 7500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
        GivePlayerWeapon(playerid, 26,100);
        GivePlayerMoney(playerid, -7500);
        SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Sawnoff Shotgun-t\");
        ShowPlayerDialog(playerid, 20323, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárol\", \"Mostnem\");
   }
}
}
return 1;
}

 
Hibák amiket jelez
 
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15256) : error 017: undefined symbol \"IsPlayerInWater\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15259) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15268) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15278) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16026) : error 002: only a single statement (or expression) can follow each \"case\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16026 -- 16027) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16059) : warning 217: loose indentation
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16059) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16059) : error 017: undefined symbol \"IsPlayerInWater\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16064) : warning 225: unreachable code
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16064) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16064) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16069) : error 030: compound statement not closed at the end of file (started at line 15970)
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
11 Errors.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #9 Dátum: 2012. Október 18. - 12:16:44 »
0 Show voters
IsPlayerInWater, IsPlayerAiming: ezt a 2 függvényt létre kell hoznod...
 
if(dialogid == 20323 && response)

 
ez a sor elé kell 2 } ( zárás ) mivel az 1. if-et és a switch-et nem zártad le !
 
warning 217: loose indentation[/quote]
ez csak egy figyelmeztetés hogy nem megfelelõen TAB-oltál de egyáltalán nem fog hibát okozni ha ezt írja...ha zavar akkor ezt írd a mód elejére:
 
#pragma tabsize 0

 
ha ezek meg vannak várom a további hibát és kódot ( és jelöld meg azokat a sorokat amikre a hibát jelzi... //-el a végére pl a sorszám vagy valami )
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #10 Dátum: 2012. Október 18. - 12:41:18 »
0 Show voters

IsPlayerInWater, IsPlayerAiming: ezt a 2 függvényt létre kell hoznod...
De ezzel eddig nem volt,gond most hogy beraktam ezt a dialogot úgy jelentkezet ez a gond :/
Még mindig ugyan azok a hibákat írja :/
[/quote]

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #11 Dátum: 2012. Október 18. - 13:22:13 »
0 Show voters
akkor itt magasabb körökben vannak a hibák...
másold be azokat a sorokat amire az IsPlayerInWater-es errort írja meg másold be a függvényt is
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #12 Dátum: 2012. Október 18. - 13:39:00 »
0 Show voters
15256:
 
   if((IsPlayerInAnyVehicle(playerid)) || (IsPlayerInWater(playerid))) return 1;

 
15259:
 
   if(IsPlayerAiming(playerid)) {

 
15268:
 
   if(IsPlayerAiming(playerid))

 
15278:
 
   if(IsPlayerAiming(playerid))

 
16059:
 
stock IsPlayerInWater(playerid) {

 
16064:
 
stock IsPlayerAiming(playerid) {

 
16069:
 
Ilyen sor már nincs

 
Egyben az egész függvény
 
   RemovePlayerAttachedObject(playerid, 0);
if((IsPlayerInAnyVehicle(playerid)) || (IsPlayerInWater(playerid))) return 1;
switch (GetPlayerWeapon(playerid)) {
case 23: {
if(IsPlayerAiming(playerid)) {
if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.108249, 0.030232, 0.118051, 1.468254, 350.512573, 364.284240);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.108249, 0.030232, 0.118051, 1.468254, 349.862579, 364.784240);
} else {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.078248, 0.027239, 0.113051, -11.131746, 350.602722, 362.384216);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.078248, 0.027239, 0.113051, -11.131746, 350.602722, 362.384216);
}
}
case 30: {
if(IsPlayerAiming(playerid))
{
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.628249, -0.027766, 0.078052, -6.621746, 352.552642, 355.084289);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.628249, -0.027766, 0.078052, -1.621746, 356.202667, 355.084289);
} else {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.663249, -0.02976, 0.080051, -11.131746, 358.302734, 353.384216);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.663249, -0.02976, 0.080051, -11.131746, 358.302734, 353.384216);
}
}
case 31: {
if(IsPlayerAiming(playerid)) {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.528249, -0.020266, 0.068052, -6.621746, 352.552642, 355.084289);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.528249, -0.020266, 0.068052, -1.621746, 356.202667, 355.084289);
} else {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.503249, -0.02376, 0.065051, -11.131746, 357.302734, 354.484222);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.503249, -0.02376, 0.065051, -11.131746, 357.302734, 354.484222);
}
}
}

 
És a végén stock:
 
stock IsPlayerInWater(playerid) {
new anim = GetPlayerAnimationIndex(playerid);
if (((anim >=  1538) && (anim <= 1542)) || (anim == 1544) || (anim == 1250) || (anim == 1062)) return 1;
     return 0;
}
stock IsPlayerAiming(playerid) {
new anim = GetPlayerAnimationIndex(playerid);
if (((anim >= 1160) && (anim <= 1163)) || (anim == 1167) || (anim == 1365) || (anim == 1643) || (anim == 1453) || (anim == 220)) return 1;
return 0;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #13 Dátum: 2012. Október 18. - 13:45:03 »
+1 Show voters
és melyik esemény ( callback ) alatt van ez a kód amit bemásoltál?
és ha kiszeded ezt a dialogos kódot akkor minden mûködik rendesen?
/* */-el kommentezd ki az egész kódot...aztán darabonként rakd vissza...mondjuk 1. az egyik if-et és ha nem jelez hibát akkor a 2. if-et...és így megtudod találni hogy miért is csinálja ezt...de szerintem egy { hiányozhat még valahonnan...amikor régen GFRP-nél hasonló hibát csináltam akkor 23 errort jelzett viszont 1 függvényre...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető BoSS

  • 816
    • Profil megtekintése
spawnoláskor elõjön egy dialog ahol lehet...
« Válasz #14 Dátum: 2012. Október 18. - 14:32:54 »
0 Show voters
Idézetet írta: Kovacs_Richard date=1350560703\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28712\" data-ipsquote-contentclass=\"forums_Topic
és melyik esemény ( callback ) alatt van ez a kód amit bemásoltál?
és ha kiszeded ezt a dialogos kódot akkor minden mûködik rendesen?
/* */-el kommentezd ki az egész kódot...aztán darabonként rakd vissza...mondjuk 1. az egyik if-et és ha nem jelez hibát akkor a 2. if-et...és így megtudod találni hogy miért is csinálja ezt...de szerintem egy { hiányozhat még valahonnan...amikor régen GFRP-nél hasonló hibát csináltam akkor 23 errort jelzett viszont 1 függvényre...
 
Sikerült :)
Meg lett a hiba
Rosszul csináltam a dialogoknál a dolgokat,köszönöm a tanácsodat :) ment a + zárok

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal