Jump to content
  • 0

pomoc Problém po spawne


TeeZee

Dotaz

Popis problému:

Ahojte, všetko mi funguje, ak sa napojím na server, vyskoči mi registrácia, potom mi vyskoči tento dialog.

Všetko, proste ide, ako má, no ale keď umrem, tak sa mi to všetko zruši. Nedá sa mi zbraň, nedá sa mi skin ani nič.

Neviete, (teda určite viete) kde je chyba ?

Je to bez errorov a warningov.

 

Chyby/varování kompilátoru a při běhu:

Žiadne chyby ani warningy

 

Kód:

 

[spoiler][code=auto:0]
new see[MAX_PLAYERS];

enum GANGZ {
GROVE = 1,
BALLAS = 2
}

new gang[MAX_PLAYERS][GANGZ];

public OnPlayerSpawn(playerid)
{
if (see[playerid] != 1) return ShowPlayerDialog(playerid,DIALOG_GANGS,DIALOG_STYLE_LIST,"Vyber si Gang, za ktorý budeš hrať","Grove\nBallas","","");
return 1;
}


if(dialogid == DIALOG_GANGS)
{
if(response == 1)
{
if(listitem == 0)
{
gang[playerid][GROVE] = 1;
see[playerid] = 1; // Premená na začiatku
SetPlayerTeam(playerid,1);
SetPlayerColor(playerid, 0x003300FF);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 999);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 999);
SetPlayerSkin(playerid,106);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,22,100); // 9mm
GivePlayerWeapon(playerid,32,250); // TEC-9
GivePlayerWeapon(playerid,26,50); // Sawny
GivePlayerWeapon(playerid,46,1); // Padák
GivePlayerWeapon(playerid,4,1); // Nôž
}
else if(listitem == 1)
{
gang[playerid][BALLAS] = 1;
see[playerid] = 1; // Premená na začiatku
SetPlayerTeam(playerid,2);
SetPlayerColor(playerid, 0x660099FF);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 999);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 999);
SetPlayerSkin(playerid,102);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,22,100); // 9mm
GivePlayerWeapon(playerid,28,250); // UZI
GivePlayerWeapon(playerid,26,50); // Sawny
GivePlayerWeapon(playerid,46,1); // Padák
GivePlayerWeapon(playerid,4,1); // Nôž
}
}
}[/code]
[/spoiler]

 

 

 

Dodatečné poznámky:

--

Link to comment
Share on other sites

9 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Globální moderátor

Tak si musíš uvědomit co tam děláš:

 

public OnPlayerSpawn(playerid)
{
if (see[playerid] != 1) return ShowPlayerDialog(playerid,DIALOG_GANGS,DIALOG_STYLE_LIST,"Vyber si Gang, za ktorý budeš hrať","Grove\nBallas","","");
return 1;
}

 

 

a pak v dialogu: see[playerid] = 1; // Premená na začiatku

 

 

Víš co to dělá?

Link to comment
Share on other sites

  • 0

Jenže ty hráči dáváš zbraně při vybraní položky z dialogu. Při dalším spawnu se mu už dialog nezobrazí, a proto si nemůže vybrat položku a dostat zbraně.

Link to comment
Share on other sites

  • 0
  • Globální moderátor

No tak musíš udělat detekci při spawnu v jakém gangu je, a to je přesně důvod proč jsem ti poradil, aby si gang rozlišoval v jedné proměnné...

 

teď budeš muset zjišťovat jestli gang[playerid][bALLAS] je jednička nebo GROVE 

Link to comment
Share on other sites

  • 0

Možno to robím moc komplikovane, ale nie som až taký dobrý v pawne. Jednoznačne takto mi to ide ->

 

public OnPlayerSpawn(playerid)
{
if (see[playerid] != 1) return ShowPlayerDialog(playerid,DIALOG_GANGS,DIALOG_STYLE_LIST,"Vyber si Gang, za ktorý budeš hrať","Grove\nBallas","","");
if (gang[playerid][GROVE] == 1) return ShowPlayerDialog(playerid,DIALOG_GANGS1,DIALOG_STYLE_LIST,"Klikni na svôj gang","Grove","","");
if (gang[playerid][BALLAS] == 1) return ShowPlayerDialog(playerid,DIALOG_GANGS2,DIALOG_STYLE_LIST,"Klikni na Svôj Gang","Ballas","","");
    return 1;
}

 

 

if(dialogid == DIALOG_GANGS1)
{
if(response == 1)
{
if(listitem == 0)
{
gang[playerid][GROVE] = 1;
see[playerid] = 1; // Premená na začiatku
SetPlayerTeam(playerid,1);
SetPlayerColor(playerid, 0x003300FF);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 999);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 999);
SetPlayerSkin(playerid,106);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,22,100); // 9mm
GivePlayerWeapon(playerid,32,250); // TEC-9
GivePlayerWeapon(playerid,26,50); // Sawny
GivePlayerWeapon(playerid,46,1); // Padák
GivePlayerWeapon(playerid,4,1); // Nôž
}
}
}
if(dialogid == DIALOG_GANGS2)
{
if(response == 1)
{
if(listitem == 0)
{
gang[playerid][BALLAS] = 1;
see[playerid] = 1; // Premená na začiatku
SetPlayerTeam(playerid,2);
SetPlayerColor(playerid, 0x660099FF);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 999);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 999);
SetPlayerSkin(playerid,102);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,22,100); // 9mm
GivePlayerWeapon(playerid,28,250); // UZI
GivePlayerWeapon(playerid,26,50); // Sawny
GivePlayerWeapon(playerid,46,1); // Padák
GivePlayerWeapon(playerid,4,1); // Nôž
}
}
}

 

 

Link to comment
Share on other sites

  • 0

 

Možno to robím moc komplikovane, ale nie som až taký dobrý v pawne. Jednoznačne takto mi to ide ->

 

public OnPlayerSpawn(playerid)
{
if (see[playerid] != 1) return ShowPlayerDialog(playerid,DIALOG_GANGS,DIALOG_STYLE_LIST,"Vyber si Gang, za ktorý budeš hrať","Grove\nBallas","","");
if (gang[playerid][GROVE] == 1) return ShowPlayerDialog(playerid,DIALOG_GANGS1,DIALOG_STYLE_LIST,"Klikni na svôj gang","Grove","","");
if (gang[playerid][BALLAS] == 1) return ShowPlayerDialog(playerid,DIALOG_GANGS2,DIALOG_STYLE_LIST,"Klikni na Svôj Gang","Ballas","","");
    return 1;
}

 

 

if(dialogid == DIALOG_GANGS1)
{
if(response == 1)
{
if(listitem == 0)
{
gang[playerid][GROVE] = 1;
see[playerid] = 1; // Premená na začiatku
SetPlayerTeam(playerid,1);
SetPlayerColor(playerid, 0x003300FF);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 999);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 999);
SetPlayerSkin(playerid,106);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,22,100); // 9mm
GivePlayerWeapon(playerid,32,250); // TEC-9
GivePlayerWeapon(playerid,26,50); // Sawny
GivePlayerWeapon(playerid,46,1); // Padák
GivePlayerWeapon(playerid,4,1); // Nôž
}
}
}
if(dialogid == DIALOG_GANGS2)
{
if(response == 1)
{
if(listitem == 0)
{
gang[playerid][BALLAS] = 1;
see[playerid] = 1; // Premená na začiatku
SetPlayerTeam(playerid,2);
SetPlayerColor(playerid, 0x660099FF);
SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 999);
SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 999);
SetPlayerSkin(playerid,102);
SetPlayerHealth(playerid,100);
SetPlayerArmour(playerid,100);
GivePlayerWeapon(playerid,22,100); // 9mm
GivePlayerWeapon(playerid,28,250); // UZI
GivePlayerWeapon(playerid,26,50); // Sawny
GivePlayerWeapon(playerid,46,1); // Padák
GivePlayerWeapon(playerid,4,1); // Nôž
}
}
}

 

 

 

Jako fungovat ti to bude, ale nepříjde ti divný, aby si hráč vždy když se spawne musel něco vybírat v tabulce? To je celkem blbost. Stačí tam hodit podmínku, která ti to bude kontrolovat a rozdělovat ty zbraně podle gangu.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...