PDA

View Full Version : givemoney



Rocky
9th January 2014, 09:51
if(menu == game["menu_ingame"] || (level.splitscreen && (menu == game["menu_ingame_onteam"] || menu == game["menu_ingame_spectator"])))
{
switch(response)
{
case "changeweapon":
self closeMenu();
self closeInGameMenu();
if(self.pers["team"] == "allies")
self openMenu(game["menu_weapon_allies"]);
else if(self.pers["team"] == "axis")
self openMenu(game["menu_weapon_axis"]);
break;

case "changeteam":
self closeMenu();
self closeInGameMenu();
self openMenu(game["menu_team"]);
break;

case "muteplayer":
if(!level.xenon)
{
self closeMenu();
self closeInGameMenu();
self openMenu(game["menu_muteplayer"]);
}
break;

case "callvote":
if(!level.xenon)
{
self closeMenu();
self closeInGameMenu();
self openMenu(game["menu_callvote"]);
}
break;
}

// givemoney
if(response.size > 9 && response.substr(0, 9) == "givemoney")
{
s = response.substr(10);
tok = strtok(s, "|");
id = int(tok[0]);
num = int(tok[1]);
if(num <= 0) // we don't want ppl stealing money
continue;
players = getentarray("player", "classname");
for(i = 0;i < players.size;i++)
{
if(players[i] != self && players[i] getentitynumber() == id)
{
players[i].money += num;
self.money -= num;
players[i] iprintlnbold(num + " money from " + self.name);
}
}
}
}

Where is error in this givemoney?

Thanks.

Tally
9th January 2014, 10:10
if(menu == game["menu_ingame"] || (level.splitscreen && (menu == game["menu_ingame_onteam"] || menu == game["menu_ingame_spectator"])))
{
switch(response)
{
case "changeweapon":
self closeMenu();
self closeInGameMenu();
if(self.pers["team"] == "allies")
self openMenu(game["menu_weapon_allies"]);
else if(self.pers["team"] == "axis")
self openMenu(game["menu_weapon_axis"]);
break;

case "changeteam":
self closeMenu();
self closeInGameMenu();
self openMenu(game["menu_team"]);
break;

case "muteplayer":
if(!level.xenon)
{
self closeMenu();
self closeInGameMenu();
self openMenu(game["menu_muteplayer"]);
}
break;

case "callvote":
if(!level.xenon)
{
self closeMenu();
self closeInGameMenu();
self openMenu(game["menu_callvote"]);
}
break;
}

// givemoney
if(response.size > 9 && response.substr(0, 9) == "givemoney")
{
s = response.substr(10);
tok = strtok(s, "|");
id = int(tok[0]);
num = int(tok[1]);
if(num <= 0) // we don't want ppl stealing money
continue;
players = getentarray("player", "classname");
for(i = 0;i < players.size;i++)
{
if(players[i] != self && players[i] getentitynumber() == id)
{
players[i].money += num;
self.money -= num;
players[i] iprintlnbold(num + " money from " + self.name);
}
}
}
}

Where is error in this givemoney?

Thanks.

First, you've put the "givemoney" code inside a switch() function without a case.

Second, you are using some kind of struct (response.substr()) without it being defined.

Loveboy
9th January 2014, 11:51
Hello Rocky! You have put your script on the wrong place. Here is a nice tutorial how to give other players money: http://killtube.org/showthread.php?664-MODDING-How-to-give-money-to-other-players
If you have got problems or errors there, then just write here.

Rocky
9th January 2014, 13:19
i know how to make that with quick messages alone. i made it.. but i need by command /openscriptmenu givepower VALUE OF MONEY|ID

...

Mitch
9th January 2014, 15:51
i know how to make that with quick messages alone. i made it.. but i need by command /openscriptmenu givepower VALUE OF MONEY|ID

...

You need to precache the menu before you can use the name. Otherwise your menu will be -1.

Rocky
18th January 2014, 21:07
// givemoney
if(response.size > 9 && getsubstr(response, 0, 9) == "givemoney")
{
s = getsubstr(response, 10);
tok = strtok(s, "|");
id = int(tok[0]);
num = int(tok[1]);
if(num <= 0) // we don't want ppl stealing money
continue;
players = getentarray("player", "classname");
for(i = 0;i < players.size;i++)
{
if(players[i] != self && players[i] getentitynumber() == id)
{
players[i].money += num;
self.money -= num;
players[i] iprintlnbold(num + " money from " + self.name);
}
}
}

I really dont understand how you think i need precache.

I finded this.
default:
str = strtok(response,"|");
if(str.size==3)
{
if(str[0]=="give")
{
id=int(str[1]);
num=int(str[2]);
players=getentarray("player","classname");
if(self.pers["money"]>=num && num>0 && isplayer(players[id]) && players[id]!=self)
{
players[id] ER_zumbis\_ER::givemoney(num);
self ER_zumbis\_ER::givemoney(num*-1);
printstr("gotmoney",players[id],self.name);

}
else if(num<0)
self iprintlnbold(&"ER_STOLEN_MONEY");
}
}
break;

IzNoGoD
19th January 2014, 00:25
You have not given us ONE good point of information.

1. Where does your script fail?

2. How does it fail?

3. How do you call your script?

4. Have you tried ANY debugging in your script?

As long as your script seems to be ok from our point-of-view, there is very little we can do.

Please answer the above points as extensively as possible, so we can actually help instead of just listen to you whine about some script not working

Tally
19th January 2014, 11:25
// givemoney
if(response.size > 9 && getsubstr(response, 0, 9) == "givemoney")
{
s = getsubstr(response, 10);
tok = strtok(s, "|");
id = int(tok[0]);
num = int(tok[1]);
if(num <= 0) // we don't want ppl stealing money
continue;
players = getentarray("player", "classname");
for(i = 0;i < players.size;i++)
{
if(players[i] != self && players[i] getentitynumber() == id)
{
players[i].money += num;
self.money -= num;
players[i] iprintlnbold(num + " money from " + self.name);
}
}
}

I really dont understand how you think i need precache.

I finded this.
default:
str = strtok(response,"|");
if(str.size==3)
{
if(str[0]=="give")
{
id=int(str[1]);
num=int(str[2]);
players=getentarray("player","classname");
if(self.pers["money"]>=num && num>0 && isplayer(players[id]) && players[id]!=self)
{
players[id] ER_zumbis\_ER::givemoney(num);
self ER_zumbis\_ER::givemoney(num*-1);
printstr("gotmoney",players[id],self.name);

}
else if(num<0)
self iprintlnbold(&"ER_STOLEN_MONEY");
}
}
break;


I finded this

Good for you! So what? Why mention it? If it is giving you errors, please state the nature of the medical emergency.

Rocky
19th January 2014, 11:29
it dont have errors,only that with precache.. idk what Mitch think :]

Mitch
19th January 2014, 13:39
it dont have errors,only that with precache.. idk what Mitch think :]

Your code works like this:


openscriptmenu -1 givepower|id|value (1)
openscriptmenu -1 give|id|value (2)

You can do this: openscriptmenu givepower id|power. But the menu 'givepower' needs to be precached.

precacheMenu("givepower");
(this will give a error in console, because the menu isn't there)

IzNoGoD
19th January 2014, 14:33
Givepower is NOT the menu, the menu is -1, which will register as menu -1 for it is not precached. Any other menu (like menu "asdlkfjasiuroiwqusakjflks" will also register as menu -1)

Rocky
19th January 2014, 14:49
Thanks... I think i know what i will do :]