buggy stock, please help
#1

hello all, im getting an in-game error, when i try to talk on /f for example, i get the latest string instead of ranks these are my codes:
Code:
stock GetPDRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Chief of Police";
		case 2: rankname = "Assistant Chief of Police";
		case 3: rankname = "Deputy Chief of Police";
		case 4: rankname = "Lieutenant";
		case 5: rankname = "Captain";
		case 6: rankname = "Commander";
		case 7: rankname = "Police Sergeant II";
		case 8: rankname = "Police Sergeant I";
		case 9: rankname = "Detective III";
		case 10: rankname = "Detective II";
		case 11: rankname = "Detective I";
		case 12: rankname = "LIO/SLO";
		case 13: rankname = "Police Officer III";
		case 14: rankname = "Police Officer II";
		case 15: rankname = "Polife Officer I";
		case 16: rankname = "Academy Student";
		case 17: rankname = "Suspended Officer";
	}
	return 1;
}
stock GetEMSRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Fire Comissioner";
		case 2: rankname = "Deputy Commissioner";
		case 3: rankname = "Bureau Chief";
		case 4: rankname = "Battalion Chief";
		case 5: rankname = "Captain";
		case 6: rankname = "Chief of Medicine";
		case 7: rankname = "Lieutenant";
		case 8: rankname = "Attending Physician";
		case 9: rankname = "Lead Paramedic";
		case 10: rankname = "Paramedic";
		case 11: rankname = "EMT";
		case 12: rankname = "First Responder";
		case 13: rankname = "Firefighter II";
		case 14: rankname = "Firefighter I";
		case 15: rankname = "P. Firefighter";
		case 16: rankname = "Academy Student";
		case 17: rankname = "Suspended Medic";
	}
	return 1;
}
stock GetGOVRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Mayor";
		case 2: rankname = "Deputy Mayor";
		case 3: rankname = "City Controller";
		case 4: rankname = "Municipal Manager";
		case 5: rankname = "Secretary";
		case 6: rankname = "Justice Chief";
		case 7: rankname = "Chief of Licensing";
		case 8: rankname = "Chief of Security";
		case 9: rankname = "Judge";
		case 10: rankname = "Lawyer";
		case 11: rankname = "Welfare Officer";
		case 12: rankname = "Inspector";
		case 13: rankname = "Security Agent";
		case 14: rankname = "Suspended";
	}
	return 1;
}
stock GetNEWSRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Director";
		case 2: rankname = "Vice-Director";
		case 3: rankname = "Assistant Vice-Director";
		case 4: rankname = "Journalist";
		case 5: rankname = "Editor";
		case 6: rankname = "Newspaper Boy";
	}
	return 1;
}
stock GetLSARank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Director";
		case 2: rankname = "Vice-Director";
		case 3: rankname = "Mecanic Profesionist";
		case 4: rankname = "Mecanic Adjunct";
		case 5: rankname = "Mecanic";
		case 6: rankname = "Mecanic in Probe";
		case 7: rankname = "Suspended Mechanic";
	}
	return 1;
}
what is wrong and how i can resolve? thanks
Reply
#2

Return rankname instead of 1.
Reply
#3

Quote:
Originally Posted by iLearner
View Post
Return rankname instead of 1.
returning rankname means 26 errors+
Code:
stock GetPDRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Chief of Police";
		case 2: rankname = "Assistant Chief of Police";
		case 3: rankname = "Deputy Chief of Police";
		case 4: rankname = "Lieutenant";
		case 5: rankname = "Captain";
		case 6: rankname = "Commander";
		case 7: rankname = "Police Sergeant II";
		case 8: rankname = "Police Sergeant I";
		case 9: rankname = "Detective III";
		case 10: rankname = "Detective II";
		case 11: rankname = "Detective I";
		case 12: rankname = "LIO/SLO";
		case 13: rankname = "Police Officer III";
		case 14: rankname = "Police Officer II";
		case 15: rankname = "Polife Officer I";
		case 16: rankname = "Academy Student";
		case 17: rankname = "Suspended Officer";
	}
	return rankname;
}
stock GetEMSRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Fire Comissioner";
		case 2: rankname = "Deputy Commissioner";
		case 3: rankname = "Bureau Chief";
		case 4: rankname = "Battalion Chief";
		case 5: rankname = "Captain";
		case 6: rankname = "Chief of Medicine";
		case 7: rankname = "Lieutenant";
		case 8: rankname = "Attending Physician";
		case 9: rankname = "Lead Paramedic";
		case 10: rankname = "Paramedic";
		case 11: rankname = "EMT";
		case 12: rankname = "First Responder";
		case 13: rankname = "Firefighter II";
		case 14: rankname = "Firefighter I";
		case 15: rankname = "P. Firefighter";
		case 16: rankname = "Academy Student";
		case 17: rankname = "Suspended Medic";
	}
	return rankname;
}
stock GetGOVRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Mayor";
		case 2: rankname = "Deputy Mayor";
		case 3: rankname = "City Controller";
		case 4: rankname = "Municipal Manager";
		case 5: rankname = "Secretary";
		case 6: rankname = "Justice Chief";
		case 7: rankname = "Chief of Licensing";
		case 8: rankname = "Chief of Security";
		case 9: rankname = "Judge";
		case 10: rankname = "Lawyer";
		case 11: rankname = "Welfare Officer";
		case 12: rankname = "Inspector";
		case 13: rankname = "Security Agent";
		case 14: rankname = "Suspended";
	}
	return rankname;
}
stock GetNEWSRank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Director";
		case 2: rankname = "Vice-Director";
		case 3: rankname = "Assistant Vice-Director";
		case 4: rankname = "Journalist";
		case 5: rankname = "Editor";
		case 6: rankname = "Newspaper Boy";
	}
	return rankname;
}
stock GetLSARank(playerid)
{
	new ranks = PlayerInfo[playerid][pRank];
	new rankname[37];
	switch(ranks)
	{
		case 1: rankname = "Director";
		case 2: rankname = "Vice-Director";
		case 3: rankname = "Mecanic Profesionist";
		case 4: rankname = "Mecanic Adjunct";
		case 5: rankname = "Mecanic";
		case 6: rankname = "Mecanic in Probe";
		case 7: rankname = "Suspended Mechanic";
	}
	return rankname;
}
Reply
#4

Do you understand that that stock will always return 1!? Instead of what he calculated through switch case
Reply
#5

Quote:
Originally Posted by iLearner
View Post
Do you understand that that stock will always return 1!? Instead of what he calculated through switch case
I leaved you up my code , that now is buggy and got undefined symbols of all the script because is a missing something
maybe will work your solution but now gives errors
Reply
#6

Post the new code and errors.
Reply
#7

Quote:
Originally Posted by iLearner
View Post
Post the new code and errors.
up are the code of factions and now i will leave you in pastebin the full one:
Code:
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(256) : error 017: undefined symbol "AntiDeAMX"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(328) : error 017: undefined symbol "LoadTextdraws"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(332) : error 017: undefined symbol "LoadHouses"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1288) : error 017: undefined symbol "ResetPlayerVariables"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1289) : error 017: undefined symbol "ClearScreen"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1302) : error 017: undefined symbol "DB_Escape"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1304) : error 017: undefined symbol "ShowPlayerDialogEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1305) : error 017: undefined symbol "ShowPlayerDialogEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1334) : error 017: undefined symbol "GivePlayerScore"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1340) : error 017: undefined symbol "SavePlayerAccount"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1370) : error 017: undefined symbol "PreloadAnimLib"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1402) : error 017: undefined symbol "GetPlayerNameEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1403) : error 017: undefined symbol "ProxDetector"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1414) : error 017: undefined symbol "IsKeyJustDown"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1418) : error 017: undefined symbol "StopLoopingAnim"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1438) : error 017: undefined symbol "SendClientMessageEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1441) : error 017: undefined symbol "IsValidPassword"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1443) : error 017: undefined symbol "SendClientMessageEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1444) : error 017: undefined symbol "ShowPlayerDialogEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1448) : error 017: undefined symbol "SendClientMessageEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1449) : error 017: undefined symbol "ShowPlayerDialogEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1452) : error 017: undefined symbol "DB_Escape"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1465) : error 017: undefined symbol "SendClientMessageEx"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1469) : error 017: undefined symbol "DB_Escape"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1474) : error 017: undefined symbol "LoadPlayerAccount"
C:\Users\mugur\Desktop\Server roleplay\gamemodes\gamemode.pwn(1474) : error 017: undefined symbol "SendClientMessageEx"

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


26 Errors.
http://pastebin.com/xa3gaXfC
Reply
#8

I'll test the code myself and let you know.
Reply
#9

You have to return rankname instead 1
And those errors are not for this script
I think you didn't close a script or more
Reply
#10

It's a function, not a stock, don't use the keyword stock, the keyword stock is used to silence that function, stock is used in includes, not gamemodes/ filterscripts.
Instead of making a function like this, simply make an array, and make a little function that returns the rank name from the array.
Also, the errors and warnings are coming up because of something different, encourage and promote 'productive' code writing. Check lines above 260.
Your code:
PHP Code:
stock GetPDRank(playerid)
{
    new 
ranks PlayerInfo[playerid][pRank];
    new 
rankname[37];
    switch(
ranks)
    {
        case 
1rankname "Chief of Police";
        case 
2rankname "Assistant Chief of Police";
        case 
3rankname "Deputy Chief of Police";
        case 
4rankname "Lieutenant";
        case 
5rankname "Captain";
        case 
6rankname "Commander";
        case 
7rankname "Police Sergeant II";
        case 
8rankname "Police Sergeant I";
        case 
9rankname "Detective III";
        case 
10rankname "Detective II";
        case 
11rankname "Detective I";
        case 
12rankname "LIO/SLO";
        case 
13rankname "Police Officer III";
        case 
14rankname "Police Officer II";
        case 
15rankname "Polife Officer I";
        case 
16rankname "Academy Student";
        case 
17rankname "Suspended Officer";
    }
    return 
rankname;

My code:
PHP Code:
enum e_fGovernment
{
    
RankName[37]
};
new const 
fGovernment[][e_fGovernment] =
{
    
"-"// enums and arrays start from 0, rank 0 is nothing
    
"Mayor"// rank 1
    
"Deputy Mayor" // rank 2 and so on...
};
GetGovRank(playerid) return fGovernment[PlayerInfo[playerid][pRank]][RankName]; 
My code is secured as I am using constant array, faster and better.
Reply
#11

So that I am getting errors, of undefined symbol that means i lost a bracket or something. can anyone find the prob?i cant see it yet
Reply
#12

bump
Reply
#13

2 closed brackets are missing - the mistake is here:
Code:
CMD:duty(playerid, params[])
{
    new string[128], playern[MAX_PLAYER_NAME], str[128];
    new factid = PlayerInfo[playerid][pMember];
    GetPlayerName(playerid, playern, MAX_PLAYER_NAME);
    if (factid == 0 || factid > 5)
    {
        SendClientMessage(playerid, -1, "Factiunea ta nu dispune de aceasta comanda / nu faci parte dintr-o factiune!");
        return 1;
    }
    else if (factid == 1)
    {
        SendClientMessage(playerid, -1, "troll");
    }
    else if (factid == 2)
    {
        if (IsPlayerInRangeOfPoint(playerid, 50.00, 1171.0372, -1305.8285, -44.0648))
        {
            if (PlayerInfo[playerid][pDuty] == 0)
            {
                PlayerInfo[playerid][pDuty] = 1;
                format(str, sizeof(str), "{f07a7a}HQ: %s %s este acum disponibil!", GetEMSRank(playerid), playern);
                SendFactionMessage(-1, 2, str);
                format(string, sizeof(string), "* %s isi ia echipamentul din dulap.", GetPlayerNameEx(playerid));
                ProxDetector(20.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
            }
            else if (PlayerInfo[playerid][pDuty] == 1)
            {
                PlayerInfo[playerid][pDuty] = 0;
                format(str, sizeof(str), "{f07a7a}HQ: %s %s este acum indisponibil!", GetEMSRank(playerid), playern);
                SendFactionMessage(-1, 2, str);
                format(string, sizeof(string), "* %s isi lasa echipamentul din dulap.", GetPlayerNameEx(playerid));
                ProxDetector(5.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
            }
        }
    }
    else if (factid == 4)
    {
        if (IsPlayerInRangeOfPoint(playerid, 10.00, 256.0068, 1778.0643, 701.0859))
        {
            if (PlayerInfo[playerid][pDuty])
                return 1;
        }
        CMD: repair(playerid, params[])
        {
            if (PlayerInfo[playerid][pMember] != 5) return SCM(playerid, -1, "Nu esti in LSA.");
            if (!IsPlayerInAnyVehicle(playerid)) return SCM(playerid, -1, "Nu esti intr-o masina.");
            new vehicleid = GetPlayerVehicleID(playerid);
            RepairVehicle(vehicleid);
            return 1;
        }
Scroll down to see the marked (in red) code.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)