Aggiungere Voti Personalizzati Alla Manu Admin Mod
Qui spiegheremo come creare un voto personalizzato nella manu admin mod, qui sotto un piccolo esempio
Per fare ciò andremo a lavorare sul file voting.php presente nella cartella plugins della nostra Manu Admin Mod
ATTENZIONE: Su server gamehosting tali file sono bloccati e richiedono di essere allegati ad un ticket per upparli.
Premessa: Non sono riuscito a creare un nuovo voto ma solo a sostituire uno già esistente, nel mio caso ho sostituito il voteban e il votekick.
Proveremo a creare un votescarso.
Apriamo il nostro file voting.php con notepad e cerchiamo class Vote_Ban da quel punto sostituire il tutto con il seguente codice:
class Vote_Ban extends Vote {
private $playerHasQuit = false;
protected function parameterCheck() {
if (empty($this->parameters[0])) {
throw new Vote_Exception($this->mod->getLngString("voteSpecifyPlayer"));
}
$search = implode(" ", $this->parameters);
$this->parameters = $this->mod->findPlayerGuid($search);
if (!$this->parameters) {
throw new Vote_Exception($this->mod->getLngString("playerNotFound", array("<SEARCH>"), array($search)));
}
if ($this->players[$this->parameters]->isProtected()) {
throw new Vote_Exception($this->mod->getLngString("cantEffectProtectedscarso"));
}
}
public function start() {
$say = $this->mod->getLngString("voteStarted") . " " . $this->mod->getLngString("votescarso", "<PLAYER>", $this->players[$this->parameters]->getName()) . " " . $this->mod->getLngString("voteYesNo");
$this->mod->rconSay($say);
}
public function cancel() {
if ($this->playerHasQuit) {
$say = $this->mod->getLngString("voteCanceled") . " " . $this->mod->getLngString("votePlayerLeft");
}
else {
$say = $this->mod->getLngString("voteCanceled") . " " . $this->mod->getLngString("voteKick", "<PLAYER>", $this->players[$this->parameters]->getName());
}
$this->mod->rconSay($say);
}
public function pass() {
$this->mod->rconSay($this->mod->getLngString("votePassed") . " " . $this->mod->getLngString("scarso", "<PLAYER>", $this->players[$this->parameters]->getName()) . " " . $this->mod->getLngString("voteYesNo3", array("<YES>", "<NO>"), array($this->yes, $this->no)));
}
public function failed() {
$say = $this->mod->getLngString("voteFailed") . " " . $this->mod->getLngString("noscarso", "<PLAYER>", $this->players[$this->parameters]->getName()) . " " . $this->mod->getLngString("voteYesNo3", array("<YES>", "<NO>"), array($this->yes, $this->no));
$this->mod->rconSay($say);
}
public function announce () {
$say = $this->mod->getLngString("voteInProgress") . " " . $this->mod->getLngString("votescarso", "<PLAYER>", $this->players[$this->parameters]->getName()) . " " . $this->mod->getLngString("voteYesNo2", array("<YES>", "<NO>"), array($this->yes, $this->no));
$this->mod->rconSay($say);
}
public function playerQuit ($guid) {
if ($guid == $this->parameters) {
$this->selfcanceled = true;
$this->playerHasQuit = true;
}
}
}
Questo codice permetterà al player di iniziare un nuovo voto e una volta scaduto il tempo appariranno due stringhe differenti a seconda del risultato del voto.
Ma ciò non basta, il codice andrà a cercare delle stringhe di testo nel file main.lng presente nella cartella languages/en/ della nostra admin mod
quindi dobbiamo aggiungere tutte le stringhe necessarie al voto, es. la prima stringa che va a cercare è:
($this->mod->getLngString("cantEffectProtectedscarso"));
l'ho chiamata io così ma potete chiamarla come volete purchè nel file main.lng abbia lo stesso nome, questa stringa nel mio file main.lng è:
cantEffectProtectedscarso = "^7Non Puoi Scegliere Se Un Admin Sia Scarso O No. Tutti Gli Admin Sono ^2Scarsoni ^7Nonchè ^6Gay ^7E ^6Bisex^7. ^1<3"
Sta a voi decidere cosa deve apparire a video per sapere quali stringhe vuole il codice basta cercare "getLngString", la parola successiva è la stringa.
...Ok, non avete capito nulla, aggiungete queste stringhe nel file main.lng
cantEffectProtectedscarso = "^7Non Puoi Scegliere Se Un Admin Sia Scarso O No. Tutti Gli Admin Sono ^2Scarsoni ^7Nonchè ^6Gay ^7E ^6Bisex^7. ^1<3"
votescarso = "^7Credi Che ^2<PLAYER> ^7Sia ^2Scarso^7?"
scarso = "^2<PLAYER> ^7E' Risultato ^2Scarsissimo ^7Ed Ora E' In Procinto Di Disinstallare."
noscarso = "^2<PLAYER> ^7Non E' Scarso, Bensì ^2MOLTO-SCARSO."
Ora funzionera solo se scrivete !voteban e non !votescarso quindi aprire il file config.cfg presente nella cartella config della nostra manu admin mod, e nella sezione [aliases] (potete trovarla anche con la funzione cerca) inserire questa stringa:
votescarso = "vote ban"
Nella sezione [voting] potete modificare impostazioni riguardo i voti, vi posto le mie:
[voting]
enabled = 1
duration = 25
interval = 30
annouce = 15
minplayers = 1
maxvotesperplayer = 2
timelimit = 0
ignoremapchange = 0
allowkick = 1
allowban = 1
allowmap = 1
allownextmap = 1
allowsetnextmap = 1
allowgametype = 1
allowhardcore = 0
allowrestart = 1
allowedmaps = "<maps.cfg>"
allowedgametypes = "war,dom,koth,dm,sab,sd"
banduration = 0
Infine per modificare i permessi di chi può eseguire i voti (beh questo è semplice) aprire il file groups.cfg nella cartella config e inserire la stringa vote al gruppo che volete sia permesso il voto. Ad esempio sul nostro server SDK abbiamo impostati i voti eseguibili da tutti quindi il nostro gruppo default (sarebbero i player normali ai cui non è stato assegnato alcun gruppo) ha i seguenti permessi:
[default]
name = "Player"
commands = "yes,no,vote,forgive,tki,stats,fun,help,admintest,time,nextmap,uptime,status,info,me,ff,cmdlist,session,serverstats,resetmystats,skip"
Questo è tutto! Congratulazioni! Avete creato il vostro vote! E se avete solo copiato (nabbi <3) avete creato il votescarso!
Votegay e Votescarso sono protetti da copyright SDK in caso li usereste verrà automaticamente detratto dal vostro conto 150,90€.