top of page

​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€.

 





 



[SDK] CLAN WEBSITE

bottom of page