AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Array Problem (https://forums.alliedmods.net/showthread.php?t=129370)

mottzi 06-12-2010 07:49

Array Problem
 
Hello.

I did a array:

PHP Code:

new class[32

When you choose the first item in my menu, 1 item in the array shout be 1.

PHP Code:

    switch(keyid)
    {
        case 
1:
        {
               
set_user_gravity(id0.5)
               class[
id] = 1
               client_print
(idprint_chat"[FM] You are a Sonic now!");
               
menu_destroy(menu_class);
               return 
PLUGIN_HANDLED;
        }
    } 

so, i registerd a event, that is called when a new round beginns. In this event i wrote:
PHP Code:

 public event_new_round(id)
 
    {
        
client_print(idprint_chat"%i <- Shout be 1 cause i set it to 1", class[id])
        return 
PLUGIN_CONTINUE


BUT I GOT ALWAYS 0 instead 1 :(

can you tell me why?

Devil259 06-12-2010 07:52

Re: Array Problem
 
Maybe it is case 0: instead of case 1: , no ?

mottzi 06-12-2010 07:56

Re: Array Problem
 
No, that cant be.

Something has to be wrong with:

%i, class[id]

drekes 06-12-2010 08:02

Re: Array Problem
 
new class[33]

mottzi 06-12-2010 08:09

Re: Array Problem
 
dont work :(


here is my full code:
PHP Code:


#include <amxmodx>
#include <amxmisc>
#include <fun>


#define PLUGIN "FutureMod"
#define VERSION "1.1"
#define AUTHOR "Mottzi"

      
new class[33]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say /class""change_class")
    
register_clcmd("say_team /class""change_class")
    
register_event("HLTV""event_new_round""a""1=0""2=0")  

}

 public 
change_class(id)
 {
    if (!
is_user_alive(id) == 1)
    {
        new 
menu_class menu_create("\r: Choose a class!""change_class_menu");
       
        
menu_additem(menu_class"\wSonic""1"0);
        
        
menu_setprop(menu_classMPROP_EXITMEXIT_ALL);
        
        
menu_display(idmenu_class0);
    }
    else
    {
        
client_print(idprint_chat"Only dead peaple can change their class!")
    }
   

   
 }

 public 
change_class_menu(idmenu_classitem)
 {

    
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu_class);
        return 
PLUGIN_HANDLED;
    }

    
    new 
data[6], iName[64];
    new 
accesscallback;

    
menu_item_getinfo(menu_classitemaccessdata,5iName63callback);

    
    new 
key str_to_num(data);
   
    switch(
keyid)
    {
        case 
1:
        {
               
set_user_gravity(id0.5)
       class[
id] = 0
            client_print
(idprint_chat"[FM] You are a Sonic now!");
            
menu_destroy(menu_class);
       

            return 
PLUGIN_HANDLED;
        }
    }

    
menu_destroy(menu_class);
    return 
PLUGIN_HANDLED;
 }

 public 
event_new_round(id)
 
    {
        
client_print(idprint_chat"%i lool", class[id])
        new 
players[32], inum
        get_players
(playersinum)
        for(new 
0inumi++;) 
        {
        
client_print(idprint_chat"%i lool", class[id])
        if(class[
id] == )
        {
            
set_user_health(id150)
            
set_user_gravity(id0.5)
        }
        }
        return 
PLUGIN_CONTINUE



drekes 06-12-2010 08:11

Re: Array Problem
 
you can't use id in event_new_round, you have to loop through all the players

Edit: try this:
PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <fun>


#define PLUGIN "FutureMod"
#define VERSION "1.1"
#define AUTHOR "Mottzi"

new class[33]

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say /class""change_class")
    
register_clcmd("say_team /class""change_class")
    
register_event("HLTV""event_new_round""a""1=0""2=0")  
}

public 
change_class(id)
{
    if (!
is_user_alive(id))
    {
        new 
menu_class menu_create("\r: Choose a class!""change_class_menu");
       
        
menu_additem(menu_class"\wSonic""1"0);
        
        
menu_setprop(menu_classMPROP_EXITMEXIT_ALL);
        
        
menu_display(idmenu_class0);
    }
    
    else
    {
        
client_print(idprint_chat"Only dead peaple can change their class!")
    }
   

   
 }

 public 
change_class_menu(idmenu_classitem)
 {

    
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu_class);
        return 
PLUGIN_HANDLED;
    }

    
    new 
data[6], iName[64];
    new 
accesscallback;

    
menu_item_getinfo(menu_classitemaccessdata,5iName63callback);

    
    new 
key str_to_num(data);
   
    switch(
keyid)
    {
        case 
1:
        {
            
set_user_gravity(id0.5)
            class[
id] = 0
            client_print
(idprint_chat"[FM] You are a Sonic now!");
            
menu_destroy(menu_class);
       

            return 
PLUGIN_HANDLED;
        }
    }

    
menu_destroy(menu_class);
    return 
PLUGIN_HANDLED;
 }

public 
event_new_round()
{
    new 
players[32], inumid
    get_players
(playersinum)
    
    for(new 
0inumi++) 
    {
        
id players[i]
        
        if(class[
id] == 1)
        {
            
set_user_health(id150)
            
set_user_gravity(id0.5)
        }
        
        
client_print(idprint_chat"%i lool", class[id])
    }
    return 
PLUGIN_CONTINUE



mottzi 06-12-2010 08:20

Re: Array Problem
 
can you tell me how?

drekes 06-12-2010 08:21

Re: Array Problem
 
Quote:

Originally Posted by mottzi (Post 1206614)
can you tell me how?

Look post above

mottzi 06-12-2010 08:33

Re: Array Problem
 
Thank u very much.

class[id] returns 1 now.

But why i dont get gravity and 150 hp???


if(class[id] == 1)
{
set_user_health(id, 150)
set_user_gravity(id, 0.5)
}

drekes 06-12-2010 08:37

Re: Array Problem
 
my guess would be that you have error logs in event round start because the player in not alive or something, check the logs and enable debug.


All times are GMT -4. The time now is 14:43.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.