Hi Graalians,
I am Joe (leader of Les Frenchies on iEra), and today I wanna share my scripting skills.
I script in many langages like HTML/CSS, PHP/SQL, C++, JAVA and actually I am working on Android Apps.
I also learnt few years ago how to script in GS2 which haven't been hard due to my knowledge in others scripting langages.
Today, I just wanna share my Staff/Player Commands script.
So you need to add to Staff the Staff Commands weapon and by default to player, the Player Commands weapon.
Here is the Staff Commands weapon: -Staff/StaffCmd
This weapon include few commands: /warp playerId, /summon playerId, /freeze playerId, /unfreeze playerId, /gag playerId, /ungag playerId, /ani ganiName, setap apNumber, /reconnect, /tag gangName, sethat hatName, and also if you press "C" you get your coords.
PHP Code:
// Scripted by Joe
function onActionServerSide(cmdSend, tokens)
{
if(cmdSend.starts("/summon") || cmdSend.starts("/warp") || cmdSend.starts("/freeze") || cmdSend.starts("/unfreeze") || cmdSend.starts("/gag") || cmdSend.starts("/ungag"))
{
for(temp.pl : allplayers){
if(tokens == temp.pl.substring(0,tokens.length())|| tokens == temp.pl.nick.substring(0,tokens.length()))
{
if (temp.pl.level!=NULL)
{
this.fnd=temp.pl;
temp.foundplayer.add(temp.pl);
}
}
}
if (temp.foundplayer.size()==1){
if (cmdSend.starts("/summon")){
this.fnd.setlevel2(player.level,player.x,player.y);
this.fnd.unfreezeplayer();
updateboard(0,0,64,64);
this.fnd.chat="Summoned!";
}
if (cmdSend.starts("/warp")){
setlevel2(this.fnd.level,this.fnd.x,this.fnd.y);
player.chat="Warped!";
}
if (cmdSend.starts("/freeze")){
this.fnd.setlevel2(player.level,player.x,player.y);
this.fnd.freezeplayer2();
updateboard(0,0,64,64);
this.fnd.chat="I'm Frozen!";
}
if (cmdSend.starts("/unfreeze")){
this.fnd.setlevel2(player.level,player.x,player.y);
this.fnd.unfreezeplayer();
updateboard(0,0,64,64);
this.fnd.chat="I'm unfrozen!";
}
if (cmdSend.starts("/gag")){
if(this.fnd.clientr.player_gagged != null){
player.chat="This player already gagged!";
return;
}
this.fnd.chat = "*Gagged*";
this.fnd.clientr.player_gagged=timevar2+(params[2]*60);
this.fnd.addweapon("-Players/PlayersCmd");
}
if (cmdSend.starts("/ungag")){
if(this.fnd.clientr.player_gagged == null){
player.chat="This player isn't gagged!";
return;
}
player.chat = "done.";
this.fnd.chat = "*Ungagged by *" @ player.nick;
this.fnd.clientr.player_gagged=0;
this.fnd.addweapon("-Players/PlayersCmd");
}
}
else if(temp.playerfound.size==0){
player.chat="No Players Found!";
}
else{ player.chat="More than one player found! Check your PM for options.";
player.sendPM(temp.foundplayer.size() SPC "players were found:" NL temp.foundplayer NL "" NL "" NL "Tip: Be sure to type in the player's name/account as specific as possible in order to find them easier!");
}
}
if(cmdSend.starts("setap"))
{
player.ap = tokens[1];
}
if (params[0] == "guildself")
{
if(isStaffGuild(params[1]))
{
if(params[1] == player.clientr.staffGuild)
{
player.guild = params[1];
}
else
{
player.chat = "You aren't allowed to set that tag!";
}
}
else
{
player.guild = params[1];
}
}
}
function isStaffGuild(Plguild)
{
temp.guildstaff = serveroptions.staffguilds.tokenize(",");
temp.guildstaff = temp.guildstaff.upper();
temp.Plguild = Plguild.upper();
if(temp.Plguild in temp.guildstaff){
if(temp.Plguild != "Admin")
{
return true;
}
}
}
//#CLIENTSIDE
function onPlayerChats(){
if(player.chat.starts("/warp"))
{
cmdSend = player.chat;
tokens=player.chat.substring(6);
triggerserver("weapon",this.name,cmdSend,tokens);
}
if(player.chat.starts("/summon"))
{
cmdSend = player.chat;
tokens=player.chat.substring(8);
triggerserver("weapon",this.name,cmdSend,tokens);
}
if(player.chat.starts("/freeze"))
{
cmdSend = player.chat;
tokens=player.chat.substring(8);
triggerserver("weapon",this.name,cmdSend,tokens);
}
if(player.chat.starts("/unfreeze"))
{
cmdSend = player.chat;
tokens=player.chat.substring(10);
triggerserver("weapon",this.name,cmdSend,tokens);
}
if(player.chat.starts("/gag"))
{
cmdSend = player.chat;
tokens=player.chat.tokenize();
if(tokens[2]<1||tokens[2]>30)return;
triggerserver("weapon",this.name,cmdSend,tokens[1],tokens[2]);
}
if(player.chat.starts("/ungag"))
{
cmdSend = player.chat;
tokens=player.chat.tokenize();
triggerserver("weapon",this.name,cmdSend,tokens[1]);
}
if (player.chat.starts("/ani")) {
tokens = player.chat.tokenize();
setani(tokens[1],tokens[2]);
}
if (player.chat.starts("setap")) {
cmdSend = player.chat;
tokens = player.chat.tokenize();
triggerserver("weapon",this.name,cmdSend,tokens);
}
if(player.chat == "/reconnect") {
ServerWarp(ServerName);
}
if (player.chat.starts("/tag ")) {
triggerserver("weapon", this.name, "guildself", player.chat.substring(5, -1));
}
if (player.chat.starts("sethat")) {
player.attr[1] = player.chat.substring(7);
}
}
function onKeyPressed(code,key)
{
if(key == "c" || key == "C"){
player.chat = player.level SPC "," SPC player.x SPC player.y;
}
}
And here is the Player Commands weapon: -Players/PlayersCmd
It includes: /reconnect, showlag and if you press "A" you grab.
PHP Code:
function onActionServerSide(cmd)
{
if(cmd == "showlag"){
getPing();
}
if(cmd == "checkGag"){
if (player.clientr.player_gagged > timevar2) {
temp.msg = formattimestring("Timers Remain Gagged: %M Min's %S Sec's",player.clientr.player_gagged - timevar2);
player.chat=temp.msg;
return;
}
player.clientr.player_gagged = 0;
}
}
function getPing() {
temp.obj = player.sendping();
this.catchevent(obj, "onReceivePing", "onGPingReply");
}
function onGPingReply(obj, plyr, time) {
plyr.chat = int(time * 1000) @ "ms";
}
//#CLIENTSIDE
function onKeyPressed(code,key)
{
if(key == "a" || key == "A"){
setAni("grab", NULL);
}
}
function onPlayerChats() {
if(player.chat == "/reconnect") {
ServerWarp(ServerName);
player.chat = "";
}
if(player.chat == "showlag"){
triggerserver("weapon", this.name, "showlag");
}
if (clientr.player_gagged != null) {
player.chat = "*Gagged*";
triggerserver("weapon", this.name, "checkGag", "");
return true;
}
}
Well, I hope you understood everything but if you have any questions about that script or just about scripting, don't hesitate to ask, I'll do my best to help you.
See you Graalians!