wc3edit.net

United Warcraft 3 map hacking!
It is currently March 29th, 2024, 11:32 am

All times are UTC




Post new topic Reply to topic  [ 12 posts ]  Go to page Previous  1, 2
Author Message
 Post subject: Re: [ED]Eden RPG S2 2.2J
PostPosted: June 10th, 2017, 8:51 pm 
Offline
Junior Member

Joined: December 4th, 2013, 6:09 pm
Posts: 46
Loot from spirits are still not 100% I don't think it's possible to change the loot table from the items. Bosses are possible but loot that drops from the spirit is tough. Plus there is a 2.3C new update.


Top
 Profile  
 
 Post subject: Re: [ED]Eden RPG S2 2.2J
PostPosted: June 12th, 2017, 3:56 pm 
Offline
Newcomer

Joined: May 25th, 2009, 2:02 pm
Posts: 18
I haven't tried this map nor do I feel like it but since this was said:
snowmaster20 wrote:
Loot from spirits are still not 100% I don't think it's possible to change the loot table from the items. Bosses are possible but loot that drops from the spirit is tough. Plus there is a 2.3C new update.
I think I can see the problem. I believe when any raid boss is killed, if you meet the minimum level, it spawns a 1-charge item in the players' warehouse zone. These Items have code behind them to randomly generate items.

For example [I072]Spirit of the Treant. Determinte [I072] is the item being used
Spoiler:
Code:
function Trig_Read_Item_start_Func011C takes nothing returns boolean
return(GetItemTypeId(GetManipulatedItem())=='I072')
endfunction
Part of "function Trig_Read_Item_start_Actions takes nothing returns nothing"
Spoiler:
Code:
if(Trig_Read_Item_start_Func011C())then
if(Trig_Read_Item_start_Func011Func001C())then
call UnitAddItemByIdSwapped('I03M',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,((udg_playerColor[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+(GetPlayerName(GetOwningPlayer(GetTriggerUnit()))+"|r From "))+(udg_Item_TXT+" Obtained!!")))
endif
if(Trig_Read_Item_start_Func011Func002C())then
call UnitAddItemByIdSwapped('I061',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,((udg_playerColor[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+(GetPlayerName(GetOwningPlayer(GetTriggerUnit()))+"|r From "))+(udg_Item_TXT+" Obtained!!")))
endif
if(Trig_Read_Item_start_Func011Func003C())then
call UnitAddItemByIdSwapped('I064',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,((udg_playerColor[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+(GetPlayerName(GetOwningPlayer(GetTriggerUnit()))+"|r From "))+(udg_Item_TXT+" Obtained!!")))
endif
if(Trig_Read_Item_start_Func011Func004C())then
call UnitAddItemByIdSwapped('I063',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,((udg_playerColor[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+(GetPlayerName(GetOwningPlayer(GetTriggerUnit()))+"|r From "))+(udg_Item_TXT+" Obtained!!")))
endif
if(Trig_Read_Item_start_Func011Func005C())then
call UnitAddItemByIdSwapped('I065',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,((udg_playerColor[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+(GetPlayerName(GetOwningPlayer(GetTriggerUnit()))+"|r From "))+(udg_Item_TXT+" Obtained!!")))
endif
if(Trig_Read_Item_start_Func011Func006C())then
call UnitAddItemByIdSwapped('I062',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call DisplayTextToForce(bj_FORCE_ALL_PLAYERS,((udg_playerColor[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))]+(GetPlayerName(GetOwningPlayer(GetTriggerUnit()))+"|r From "))+(udg_Item_TXT+" Obtained!!")))
endif
endif

The 2nd section is the portion that would need to be altered heavily. If you notice, the subsections of this section all have an check with another function which is a random %chance-to-drop such as:
Spoiler:
Code:
function Trig_Read_Item_start_Func011Func001C takes nothing returns boolean
return(GetRandomReal(0,100.)<=5.5)
endfunction


For me who has knowledge of coding, the easiest way to modify this would be to simply modify the whole function. I don't know if all charged-item drops are from this function but let's hope they are. There's also excess text that announces to the world that you acquired the item but if multiple were to go off at once, it would be obvious that the map was cheated so i deleted this text. As far as I'm aware, only 1 item can spawn when using the charged items so it would be impossible to hide that this is a cheated map. Here is my modification of the function made with Notepad. I didn't test it so there may be a mistake that I overlooked but otherwise I believe it should work.
Spoiler:
Code:
function Trig_Read_Item_start_Actions takes nothing returns nothing
if(Trig_Read_Item_start_Func001C())then
call UnitAddItemByIdSwapped('I03A',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I03D',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I034',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I041',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I03I',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I04Y',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func003C())then
call UnitAddItemByIdSwapped('I03Z',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I03J',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I05Y',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I046',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I03P',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func005C())then
call UnitAddItemByIdSwapped('I06F',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06G',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06I',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I0BD',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I0B6',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06J',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func007C())then
call UnitAddItemByIdSwapped('I04E',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06X',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06Z',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06V',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06T',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I051',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I070',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func009C())then
call UnitAddItemByIdSwapped('I067',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I069',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I06A',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I066',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I068',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func011C())then
call UnitAddItemByIdSwapped('I03M',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I061',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I064',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I063',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I065',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I062',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func013C())then
call UnitAddItemByIdSwapped('I04C',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I04H',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I04D',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I07C',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I077',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func015C())then
call UnitAddItemByIdSwapped('I07F',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I07K',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I07G',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I045',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I07O',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I07M',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
if(Trig_Read_Item_start_Func016C())then
call UnitAddItemByIdSwapped('I080',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I07X',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I082',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I081',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
call UnitAddItemByIdSwapped('I087',udg_hero[(1+GetPlayerId(GetOwningPlayer(GetTriggerUnit())))])
set udg_Item_TXT=GetItemName(bj_lastCreatedItem)
call SetItemPlayer(bj_lastCreatedItem,GetOwningPlayer(GetTriggerUnit()),true)
endif
set udg_Item_TXT=""
endfunction

I believe this kind of modification is a lot of work to expect which could be solved by a cheat pack like JJCP and effort from the requester. Use JJCP to set the item's charges to 0 and then spam click it till you get the items/materials you need/want.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 12 posts ]  Go to page Previous  1, 2

All times are UTC


Who is online

Users browsing this forum: Bing [Bot] and 54 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group

phpBB SEO


Privacy Policy Statement
Impressum (German)