ProHoster > Blog > Pulega > O loʻo matou tusia le faʻatusatusaga mo Dota 2014
O loʻo matou tusia le faʻatusatusaga mo Dota 2014
Talofa tagata uma.
O lenei tautotogo na ou tau atu ai i se poloketi lea na aʻoaʻoina ai e tama le faʻaogaina o le Dota 2 server version 2014 ma, e tusa ai, taʻalo i luga. O au o se tagata fiafia tele i lenei taaloga, ma e le mafai ona ou misia lenei avanoa tulaga ese e faatofu ai aʻu i loʻu laitiiti.
Sa ou lupe loloto, ma na tupu na ou tusia se Discord bot lea e nafa ma toetoe lava o galuega uma e le o lagolagoina i le lomiga tuai o le taaloga, e pei o le matchmaking.
A'o le'i faia uma fa'afouga fa'atasi ma le bot, na faia ma le lima le lobby. Na matou aoina tali e 10 i se feʻau ma faʻapipiʻi lima se server, pe faʻafeiloaʻi se lobby i le lotoifale.
O loʻu natura o se tagata fai polokalame e le mafai ona tatalia le tele o galuega tusilima, ma i le po na ou tusia ai le ata sili ona faigofie o le bot, lea e otometi lava ona siitia le server pe a 10 tagata.
Na vave ona ou filifili e tusi i nodejs, aua ou te le fiafia tele i le Python, ma ou te lagona le sili atu le toʻa i lenei siosiomaga.
O loʻu aafiaga muamua lea i le tusiaina o se bot mo Discord, ae na foliga mai e matua faigofie lava. O le npm module discord.js aloaia e maua ai se fesoʻotaʻiga faigofie mo le galue i feʻau, aoina o tali, ma isi.
Fa'asalaga: O fa'ata'ita'iga fa'ailoga uma e "i le taimi nei", o lona uiga ua latou uia le tele o fa'asologa o le toe tusitusi i le po.
O le faʻavae o le faʻatusatusaina o se "queue" lea e tuʻu ai tagata taʻalo e fia taʻalo i totonu ma aveese pe a latou le manaʻo pe maua se taʻaloga.
O le uiga lea o le uiga o se "tagata taalo". I le taimi muamua sa na o se tagata faʻaoga id i Discord, ae o loʻo i ai fuafuaga e faʻalauiloa / suʻe mo taʻaloga mai le saite, ae muamua mea muamua.
Ma o le laina fa'aoga lenei. O iinei, nai lo le "tagata taaalo," o se faʻamatalaga i le tulaga o se "vaega" e faʻaaogaina. Mo se tagata taalo e toatasi, o le vaega e aofia ai ia lava, ma mo tagata taaalo i se vaega, i le faasologa, o tagata taaalo uma i le vaega.
Na ou filifili e faʻaoga mea na tutupu e fesuiai faʻamatalaga. Na fetaui mo mataupu - i luga o le mea na tupu "se taaloga mo le 10 tagata na maua", e mafai ona e auina atu le feʻau talafeagai i le au taʻaalo i feʻau tumaoti, ma faʻatino le faʻavae pisinisi pisinisi - faʻalauiloa se galuega e siaki le saunia, saunia le lobby. mo le tatalaina, ma isi.
Mo IOC ou te faʻaaogaina InversifyJS. Ua ou maua se aafiaga manaia i le galue ai i lenei faletusi. vave ma faigofie!
E tele a matou laina i luga o la matou 'auʻaunaga - ua matou faʻaopoopoina le 1x1, masani / faʻatatau, ma se lua o aga masani. O le mea lea, o loʻo i ai se Singleton RoomService o loʻo taoto i le va o le tagata faʻaoga ma le suʻega taʻaloga.
constructor(
@inject(GameServers) private gameServers: GameServers,
@inject(MatchStatsService) private stats: MatchStatsService,
@inject(PartyService) private partyService: PartyService
) {
super();
this.initQueue(MatchmakingMode.RANKED);
this.initQueue(MatchmakingMode.UNRANKED);
this.initQueue(MatchmakingMode.SOLOMID);
this.initQueue(MatchmakingMode.DIRETIDE);
this.initQueue(MatchmakingMode.GREEVILING);
this.partyService.addListener(
"party-update",
(event: PartyUpdatedEvent) => {
this.queues.forEach((q) => {
if (has(q.queue, (t) => t.is(event.party))) {
// if queue has this party, we re-add party
this.leaveQueue(event.qp, q.mode)
this.enterQueue(event.qp, q.mode)
}
});
}
);
this.partyService.addListener(
"party-removed",
(event: PartyUpdatedEvent) => {
this.queues.forEach((q) => {
if (has(q.queue, (t) => t.is(event.party))) {
// if queue has this party, we re-add party
q.remove(event.party)
}
});
}
);
}
(Fa'ailoga saimini e tu'u mai ai se manatu po'o a foliga o fa'agasologa)
O iinei ou te amataina ai le laina mo taʻaloga taʻaloga taʻitasi, ma faʻalogo foi mo suiga i "vaega" ina ia mafai ai ona fetuunai laina ma aloese mai nisi o feeseeseaiga.
O lea, ua lelei, na ou faʻaofiina fasi code e leai se mea e faʻatatau i le autu, ma o lea tatou te agai saʻo atu i le faʻatusa.
Seʻi o tatou iloiloina le tulaga:
1) E manaʻo le tagata faʻaoga e taʻalo.
2) Ina ia amata le sailiga, na te faʻaaogaina Gateway=Discord, o lona uiga, tuʻuina se tali i le feʻau:
3) O lenei faitotoa e alu i RoomService ma fai mai "O se tagata faʻaoga mai feeseeseaiga e manaʻo e ulufale i le laina, faiga: taʻaloga e le faʻamaonia."
4) RoomService talia le talosaga a le faitotoa ma tulei le tagata faʻaoga (sili atu saʻo, le vaega faʻaoga) i le laina manaʻomia.
5) E siaki le laina i taimi uma e lava tagata taaalo e taaalo ai. Afai e mafai, faʻaalia se mea na tupu:
6) RoomService e manino lava e faʻalogo fiafia i laina uma i le faʻatalitali atu i lenei mea. Matou te mauaina se lisi o tagata taaalo e fai ma faʻaoga, fausia se "potu" mai ia i latou, ma, ioe, tuʻuina atu se mea na tupu:
queue.addListener("room-found", (event: RoomFoundEvent) => {
console.log(
`Room found mode: [${mode}]. Time to get free room for these guys`
);
const room = this.getFreeRoom(mode);
room.fill(event.players);
this.onRoomFormed(room);
});
7) O lea na matou oʻo ai i le pule "sili ona maualuga" - o le vasega Bot. I se tulaga lautele, na te feagai ma le fesoʻotaʻiga i le va o faitotoʻa (e le mafai ona ou malamalama i le manaia o foliga i le gagana Rusia) ma le pisinisi faʻatatau o le fetaui. O lo'o fa'alogoina e le bot le mea na tupu ma fa'atonu le DiscordGateway e lafo se siaki sauni i tagata uma.
8) Afai e teena e se tasi pe le taliaina le taaloga i totonu ole 3 minute, ona matou le toe faafoi atu lea i le laina. Matou te toe faafoi tagata uma i le laina ma faatali seia toe 10 tagata. Afai ua talia uma e le au taaalo le taaloga, ona amata lea o le vaega manaia.
Fa'atonuga fa'aumau
O a matou ta'aloga o lo'o talimalo ile VDS ma le Windows server 2012. Mai lenei mea e mafai ona tatou faia ni fa'ai'uga:
E leai se ta'avale i luga, lea na lavea ai lo'u fatu
Matou te sefe i le lisi
O le galuega o le faʻatinoina o se faʻagasologa ile VDS mai le VPS ile Linux. Sa ou tusia se server faigofie i Flask. Ioe, ou te le fiafia i le Python, ae o le a se mea e mafai ona e faia? E sili atu le vave ma sili atu ona faigofie le tusiaina o lenei server i luga.
E fa'atino galuega e 3:
Amataina se 'auʻaunaga ma se faʻatulagaga - filifilia o se faʻafanua, numera o tagata taʻalo e amata le taʻaloga, ma se seti o plugins. O le a ou le tusi e uiga i plugins i le taimi nei - o se tala ese lena i lita o kofe i le po fefiloi ma loimata ma lauulu masaesae.
Taofi/toe fa'afouina le 'au'aunaga i le tulaga o feso'ota'iga le manuia, lea e na'o le lima lava e mafai ona matou taulimaina.
E faigofie mea uma iinei, faʻataʻitaʻiga code e le talafeagai. 100 laina tusitusiga
O lea la, ina ua faʻapotopoto tagata 10 ma talia le taʻaloga, na faʻalauiloa le server ma sa naunau tagata uma e taʻalo, o se fesoʻotaʻiga e faʻafesoʻotaʻi i le taʻaloga na lafoina i feʻau tumaoti.
I le kilikiina o le soʻotaga, e fesoʻotaʻi le tagata taʻalo i le taʻaloga taʻaloga, ona oʻo lea. A maeʻa le ~ 25 minute, faʻamalo le "potu" ma tagata taʻalo.
Ou te faatoese atu muamua mo le le mautonu o le tusiga, ou te leʻi tusia iinei mo se taimi umi, ma e tele naua code e faʻamaonia ai vaega taua. Noodles, i se faapuupuuga.
Afai ou te vaʻaia le fiafia i le autu, o le ai ai se vaega lona lua - o le a aofia ai loʻu faʻamaʻi faʻatasi ma plugins mo srcds (Source dedicated server), ma, masalo, o se faiga faʻavae ma mini-dotabuff, o se nofoaga ma fuainumera taʻaloga.