View Single Post
Lightokun
Member
Join Date: Oct 2009
Old 08-13-2011 , 06:28   Re: <old>(map.h)<old> <new>problem with chars</new>
Reply With Quote #8

Another problem.
I'm new in C/C++

Someone can help and say me how to copy pointer value to variable without effect that i encountered?

Code:
#include <map.h>
#include <string>
#include <stdlib.h>
#include "amxxmodule.h"

struct Node {
	char *name;
	char *auth;
	char *flags;
	int sid;
	int fid;
	int red;
};

Node node;
std::map<std::string, Node> admin_map;

static cell AMX_NATIVE_CALL admin_list_addadmin(AMX *amx,cell *params)
{
	int length, size;
	
	char *name = MF_GetAmxString(amx, params[1], 0, &length);
	char *auth = MF_GetAmxString(amx, params[2], 1, &length);
	char *flags = MF_GetAmxString(amx, params[3], 2, &length);
	
	MF_Log("Was %s", name);
	
	size = strlen(name);
	char *sname = new char[size+1];
	strcpy(name, sname);
	MF_Log("Became %s", sname);
	MF_Log("");
	
	size = strlen(auth);
	char *sauth = new char[size+1];
	strcpy(auth, sauth);
	
	size = strlen(flags);
	char *sflags = new char[size+1];
	strcpy(flags, sflags);
	
	node.name = sname;
	node.auth = sauth;
	node.flags = sflags;
	node.sid = params[4];
	node.fid = params[6];
	node.red = 0;
	
	admin_map[auth] = node;

	return 1;
}

static cell AMX_NATIVE_CALL admin_list_isadmin(AMX *amx,cell *params)
{
	std::map<std::string, Node>::iterator i;
	
	for(i=admin_map.begin(); i!=admin_map.end(); ++i)
	{
		//MF_Log("Got name %s; auth: %s; flags: %s; sid: %d; fid: %d; red: %d", i->second.name, i->second.auth, i->second.flags, i->second.sid, i->second.fid, i->second.red);
		// 
	}

	//return set_amxstring(amx, params[5], f_flags, params[6]);
	return 1;
}

AMX_NATIVE_INFO wtf_exports[] = 
{
	{ "admin_list_addadmin", admin_list_addadmin },
	{ "admin_list_isadmin", admin_list_isadmin },
	{ NULL, NULL }
};

void OnAmxxAttach()
{
	MF_AddNatives(wtf_exports);
}
Output:
Code:
L 08/13/2011 - 14:23:55: [eAdm] Was .:MoMo_L:.>>
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
L 08/13/2011 - 14:23:55: [eAdm] Was <<ProVideR>>*no_song*[43rus]
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
L 08/13/2011 - 14:23:55: [eAdm] Was Dumba$$
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
L 08/13/2011 - 14:23:55: [eAdm] Was made by mammy^VooDoo^pro100pro
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
L 08/13/2011 - 14:23:55: [eAdm] Was blblbl4a
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
L 08/13/2011 - 14:23:55: [eAdm] Was CaHTa :D
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
L 08/13/2011 - 14:23:55: [eAdm] Was SmOKe
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
L 08/13/2011 - 14:23:55: [eAdm] Was stReet
L 08/13/2011 - 14:23:55: [eAdm] Became
L 08/13/2011 - 14:23:55: [eAdm]
__________________
Lightokun is offline