-
Hali
spawnoláskor elõjön egy dialog ahol lehet,fegyvereket venni.
Ez minden halál után elõjön,ez készen is van!
beraktam a dailogot az OnPlayerSpawn alá.
Mûködik normálisan!
De nekem úgy kéne,hogy van szeromon Két Csapat-
És azt szeretném hogy két különbözõ dialog jön fel!
Tehát,hogy másokat tudjanak vásárolni!
Ezt hogy tudom meg oldani?
Elõre is köszönöm a helpet!
-
Mint bárhol máshol ahol megkülönbözteted ki melyik csapathoz tartozik.
Erre a gTeam nevû változót alkalmazzák a legtöbben meg ez a legelterjedtebb, de bármi más is lehet.
OnPlayerSpawn(playerid) alá:
if(gTeam[playerid] == BLUE) ShowPlayerDialog(playerid, WEAPON_BLUETEAM, blabla...
else if(gTeam[playerid] == RED) ShowPlayerDialog(playerid, WEAPON_REDTEAM, blabla...
És persze kell OnDialogResponse alá kettõ darab lehetõség is: if(dialogid == WEAPON_BLUETEAM) if(dialogid == WEAPON_REDTEAM)
-
Beraktam ezeket a hibákat írja :/
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : warning 215: expression has no effect
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : error 001: expected token: \";\", but found \")\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15431) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Erre mutat rá.
if(PlayerTeam[playerid] == TEAM_BLUE) ShowPlayerDialog(playerid, WEAPON_TERRORISTATEAM, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
else if(PlayerTeam[playerid] == TEAM_RED) ShowPlayerDialog(playerid, WEAPON_KATONATEAM, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárlás\", \"Mostnem\");
-
Torold ki onnan a WEAPON_TERRORISTATEAM-et probald meg ugy.
(Nem biztos)
De annak mar van funkcioja.
Definiald be ezt:
DIALOG10000
-
Torold ki onnan a WEAPON_TERRORISTATEAM-et probald meg ugy.
(Nem biztos)
De annak nincs semmi funkcioja.
Nem,nem azzal van a gond az a dialog neve,meg itt valami eírás gond van,csak nem találom meg valami
vesszõ vagy zárójel :/
-
Nem hiszem, hogy eliras
expression has no effect
-
Így van a Dialognál
if(dialogid == WEAPON_TERRORISTATEAM)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 4,1);
GivePlayerMoney(playerid, -450);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
}
case 1:
{
if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 29,150);
GivePlayerMoney(playerid, -4000);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy MP5-t\");
}
case 2:
{
if(GetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 33,100);
GivePlayerMoney(playerid, -6500);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Country Rifle-t\");
}
if(dialogid == WEAPON_KATONATEAM)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 4,1);
GivePlayerMoney(playerid, -450);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
}
case 1:
{
if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 32,150);
GivePlayerMoney(playerid, -4000);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Tec9-t\");
}
case 2:
{
if(GetPlayerMoney(playerid) < 7500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 26,100);
GivePlayerMoney(playerid, -7500);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Sawnoff Shotgun-t\");
}
return 1;
}
-
http://wiki.sa-mp.com/wiki/ShowPlayerDialog
a dialog style kimaradt !
-
OnPlayerSpawn
if(PlayerTeam[playerid] == TEAM_TERRORISTA) ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
else if(PlayerTeam[playerid] == TEAM_KATONA) ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárlás\", \"Mostnem\");
OnDialogResponse
if(dialogid == 20322 && response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 4,1);
GivePlayerMoney(playerid, -450);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
}
case 1:
{
if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 29,150);
GivePlayerMoney(playerid, -4000);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy MP5-t\");
ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
}
case 2:
{
if(GetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 33,100);
GivePlayerMoney(playerid, -6500);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Country Rifle-t\");
ShowPlayerDialog(playerid, 20322, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nMP5 (4000$)\\nCountry Rifle (6500$)\", \"Vásárol\", \"Mostnem\");
}
if(dialogid == 20323 && response)
{
switch(listitem)
{
case 0:
{
if(GetPlayerMoney(playerid) < 450) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 4,1);
GivePlayerMoney(playerid, -450);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy kést! \");
ShowPlayerDialog(playerid, 20323, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárol\", \"Mostnem\");
}
case 1:
{
if(GetPlayerMoney(playerid) < 4000) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 32,150);
GivePlayerMoney(playerid, -4000);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Tec9-t\");
ShowPlayerDialog(playerid, 20323, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárol\", \"Mostnem\");
}
case 2:
{
if(GetPlayerMoney(playerid) < 7500) return SendClientMessage(playerid, COLOR_RED, \"HIBA:Nincs elég pénzed.\");
GivePlayerWeapon(playerid, 26,100);
GivePlayerMoney(playerid, -7500);
SendClientMessage(playerid, COLOR_YELLOW, \"Vettél egy Sawnoff Shotgun-t\");
ShowPlayerDialog(playerid, 20323, DIALOG_STYLE_LIST, \"Fegyver Vásárlás\", \"Kés (450$)\\nTec9 (4000$)\\nSawnoff Shotgun (7500$)\", \"Vásárol\", \"Mostnem\");
}
}
}
return 1;
}
Hibák amiket jelez
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15256) : error 017: undefined symbol \"IsPlayerInWater\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15259) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15268) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(15278) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16026) : error 002: only a single statement (or expression) can follow each \"case\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16026 -- 16027) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16059) : warning 217: loose indentation
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16059) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16059) : error 017: undefined symbol \"IsPlayerInWater\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16064) : warning 225: unreachable code
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16064) : error 029: invalid expression, assumed zero
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16064) : error 017: undefined symbol \"IsPlayerAiming\"
C:\\Documents and Settings\\Rendszergazda\\Asztal\\GTAAAA\\TeamWars\\tm.pwn(16069) : error 030: compound statement not closed at the end of file (started at line 15970)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
11 Errors.
-
IsPlayerInWater, IsPlayerAiming: ezt a 2 függvényt létre kell hoznod...
if(dialogid == 20323 && response)
ez a sor elé kell 2 } ( zárás ) mivel az 1. if-et és a switch-et nem zártad le !
warning 217: loose indentation[/quote]
ez csak egy figyelmeztetés hogy nem megfelelõen TAB-oltál de egyáltalán nem fog hibát okozni ha ezt írja...ha zavar akkor ezt írd a mód elejére:
#pragma tabsize 0
ha ezek meg vannak várom a további hibát és kódot ( és jelöld meg azokat a sorokat amikre a hibát jelzi... //-el a végére pl a sorszám vagy valami )
-
IsPlayerInWater, IsPlayerAiming: ezt a 2 függvényt létre kell hoznod...
De ezzel eddig nem volt,gond most hogy beraktam ezt a dialogot úgy jelentkezet ez a gond :/
Még mindig ugyan azok a hibákat írja :/
[/quote]
-
akkor itt magasabb körökben vannak a hibák...
másold be azokat a sorokat amire az IsPlayerInWater-es errort írja meg másold be a függvényt is
-
15256:
if((IsPlayerInAnyVehicle(playerid)) || (IsPlayerInWater(playerid))) return 1;
15259:
if(IsPlayerAiming(playerid)) {
15268:
if(IsPlayerAiming(playerid))
15278:
if(IsPlayerAiming(playerid))
16059:
stock IsPlayerInWater(playerid) {
16064:
stock IsPlayerAiming(playerid) {
16069:
Ilyen sor már nincs
Egyben az egész függvény
RemovePlayerAttachedObject(playerid, 0);
if((IsPlayerInAnyVehicle(playerid)) || (IsPlayerInWater(playerid))) return 1;
switch (GetPlayerWeapon(playerid)) {
case 23: {
if(IsPlayerAiming(playerid)) {
if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.108249, 0.030232, 0.118051, 1.468254, 350.512573, 364.284240);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.108249, 0.030232, 0.118051, 1.468254, 349.862579, 364.784240);
} else {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.078248, 0.027239, 0.113051, -11.131746, 350.602722, 362.384216);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.078248, 0.027239, 0.113051, -11.131746, 350.602722, 362.384216);
}
}
case 30: {
if(IsPlayerAiming(playerid))
{
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.628249, -0.027766, 0.078052, -6.621746, 352.552642, 355.084289);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.628249, -0.027766, 0.078052, -1.621746, 356.202667, 355.084289);
} else {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.663249, -0.02976, 0.080051, -11.131746, 358.302734, 353.384216);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.663249, -0.02976, 0.080051, -11.131746, 358.302734, 353.384216);
}
}
case 31: {
if(IsPlayerAiming(playerid)) {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.528249, -0.020266, 0.068052, -6.621746, 352.552642, 355.084289);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.528249, -0.020266, 0.068052, -1.621746, 356.202667, 355.084289);
} else {
if (GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.503249, -0.02376, 0.065051, -11.131746, 357.302734, 354.484222);
else SetPlayerAttachedObject(playerid, 0, 18643, 6, 0.503249, -0.02376, 0.065051, -11.131746, 357.302734, 354.484222);
}
}
}
És a végén stock:
stock IsPlayerInWater(playerid) {
new anim = GetPlayerAnimationIndex(playerid);
if (((anim >= 1538) && (anim <= 1542)) || (anim == 1544) || (anim == 1250) || (anim == 1062)) return 1;
return 0;
}
stock IsPlayerAiming(playerid) {
new anim = GetPlayerAnimationIndex(playerid);
if (((anim >= 1160) && (anim <= 1163)) || (anim == 1167) || (anim == 1365) || (anim == 1643) || (anim == 1453) || (anim == 220)) return 1;
return 0;
}
-
és melyik esemény ( callback ) alatt van ez a kód amit bemásoltál?
és ha kiszeded ezt a dialogos kódot akkor minden mûködik rendesen?
/* */-el kommentezd ki az egész kódot...aztán darabonként rakd vissza...mondjuk 1. az egyik if-et és ha nem jelez hibát akkor a 2. if-et...és így megtudod találni hogy miért is csinálja ezt...de szerintem egy { hiányozhat még valahonnan...amikor régen GFRP-nél hasonló hibát csináltam akkor 23 errort jelzett viszont 1 függvényre...
-
és melyik esemény ( callback ) alatt van ez a kód amit bemásoltál?
és ha kiszeded ezt a dialogos kódot akkor minden mûködik rendesen?
/* */-el kommentezd ki az egész kódot...aztán darabonként rakd vissza...mondjuk 1. az egyik if-et és ha nem jelez hibát akkor a 2. if-et...és így megtudod találni hogy miért is csinálja ezt...de szerintem egy { hiányozhat még valahonnan...amikor régen GFRP-nél hasonló hibát csináltam akkor 23 errort jelzett viszont 1 függvényre...
Sikerült :)
Meg lett a hiba
Rosszul csináltam a dialogoknál a dolgokat,köszönöm a tanácsodat :) ment a + zárok