[Help] ZCMD Dynamic Pickup Creating
#1

Code:
CMD:pickup(playerid, params[])
{
	if(IsPlayerConnected(playerid))
	{
				new Float:x, Float:y, Float:z;
				new message[128];
				new pickupid;
			 	if(sscanf(params, "u", pickupid)) return SendClientMessage(playerid, 0x00FF00AA, "USAGE: /pickup [Pickup ID]");
				format(message, sizeof(message), "AdmCmd: %s has created a minigun pickup", ReturnPlayerName(playerid));
				SendClientMessageToAll(0x00FF00AA, message);
				GetPlayerPos(playerid, x, y, z);
				CreatePickup(pickupid, 1, x, y, z);
	}
	return 1;
}
It just freezes my server, any suggestions?
Reply
#2

pawn Code:
CMD:pickup(playerid, params[])
{
    new Float:x, Float:y, Float:z;
    new message[128];
    new pickupid;
    if(sscanf(params, "i", pickupid)) return SendClientMessage(playerid, 0x00FF00AA, "USAGE: /pickup [Pickup ID]");
    format(message, sizeof(message), "AdmCmd: %s has created a minigun pickup", ReturnPlayerName(playerid));
    SendClientMessageToAll(0x00FF00AA, message);
    GetPlayerPos(playerid, x, y, z);
    CreatePickup(pickupid, 19, x, y, z);
    return 1;
}
Reply
#3

Quote:
Originally Posted by bigcomfycouch
View Post
pawn Code:
CMD:pickup(playerid, params[])
{
    if(IsPlayerConnected(playerid))
    {
                new Float:x, Float:y, Float:z;
                new message[128];
                new pickupid;
                if(sscanf(params, "i", pickupid)) return SendClientMessage(playerid, 0x00FF00AA, "USAGE: /pickup [Pickup ID]");
                format(message, sizeof(message), "AdmCmd: %s has created a minigun pickup", ReturnPlayerName(playerid));
                SendClientMessageToAll(0x00FF00AA, message);
                GetPlayerPos(playerid, x, y, z);
                CreatePickup(pickupid, 19, x, y, z);
    }
    return 1;
}
Thanks, gotta get used to these params :P

Anyways, got any idea about how to "for example" make a name satisfy a pickup id?
Like: /pickup Minigun = /pickup 362
Reply
#4

pawn Code:
new PickupModelNames[][] = {
    {"dildo1", 321},
    {"dildo2", 322},
    {"vibrator1", 323},
    {"vibrator2", 324},
    {"flowers", 325},
    {"knuckles", 331},
    {"golfclub", 333},
    {"nitestick", 334},
    {"knife", 335},
    {"bat", 336},
    {"shovel", 337},
    {"cue", 338},
    {"katana", 339},
    {"chainsaw", 341},
    {"grenade", 342},
    {"teargas", 343},
    {"molotov", 344},
    {"pistol", 346},
    {"sdpistol", 347},
    {"deagle", 348},
    {"shotgun", 349},
    {"sawnoff", 350},
    {"spas12", 351},
    {"uzi", 352},
    {"mp5", 353},
    {"ak47", 355},
    {"m4", 356},
    {"rifle", 357},
    {"sniper", 358},
    {"rocketlauncher", 359},
    {"hsrocketlauncher", 360},
    {"flamethrower", 361},
    {"minigun", 362},
    {"satchel", 363},
    {"detonator", 364},
    {"spraycan", 365},
    {"extinguisher", 366},
    {"camera", 367},
    {"nightvision", 368},
    {"infared", 369},
    {"jetpack", 370},
    {"parachute", 371},
    {"tec9", 372}
};

CMD:pickup(playerid, params[])
{
    new pickup[32], message[128];
    if(sscanf(params, "s[32]", pickup)) return SendClientMessage(playerid, 0x00FF00AA, "USAGE: /pickup [pickup name]");
    new Float:x, Float:y, Float:z;
    for(new i = 0; i < sizeof PickupModelNames; i++)
    {
        if(strcmp(pickup, PickupModelNames[i][0], true) || strlen(pickup) != strlen(PickupModelNames[i][0])) continue;
        format(message, sizeof(message), "AdmCmd: %s has created a %s pickup.", ReturnPlayerName(playerid), PickupModelNames[i][0]);
        SendClientMessageToAll(0x00FF00AA, message);
        GetPlayerPos(playerid, x, y, z);
        CreatePickup(PickupModelNames[i][1], 2, x, y, z);
        return 1;
    }
    return SendClientMessage(playerid, 0xFF0000, "Invalid pickup name");
}
Reply
#5

Umm, I wanna use ZCMD.
Reply
#6

That code has the zcmd command and an array.
Reply
#7

Alright, I guess I'll use it later though. Thanks very much.
Reply
#8

Alright 1 more thing.
How to get this to work?

I want the command to...

return SendClientMessage(playerid, 0x00FF00AA, "Invalid Pickup ID");

when...
if(pickupid < 321||pickupid > 373||pickupid==329||pickupid==332||pickupid==340)


I tried putting both of these in different locations but they always end up giving me the SendClientMessage no matter what.
Reply
#9

pawn Code:
CMD:pickup(playerid, params[])
{
    new pickup[32], message[128];
    if(sscanf(params, "s[32]", pickup)) return SendClientMessage(playerid, 0x00FF00AA, "USAGE: /pickup [pickup name]");
    new Float:x, Float:y, Float:z;
    for(new i = 0; i < sizeof PickupModelNames; i++)
    {
        new p = PickupModelNames[i][1];
        if(strcmp(pickup, PickupModelNames[i][0], true) || strlen(pickup) != strlen(PickupModelNames[i][0])) continue;
        format(message, sizeof(message), "AdmCmd: %s has created a %s pickup.", ReturnPlayerName(playerid), PickupModelNames[i][0]);
        SendClientMessageToAll(0x00FF00AA, message);
        GetPlayerPos(playerid, x, y, z);
        break;
    }
    return p < 321 || p > 373 || p == 329 || p == 332 || p == 340 ?
    SendClientMessage(playerid, 0xFF0000, "Invalid pickup name") : CreatePickup(p, 2, x, y, z);
}
Reply
#10

What if I'm not using pickups name? just ID's
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)