GTA Közösség - A magyar GTA fórum
San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: dexi - 2011. november 12. - 08:43:12
-
Hali, TDM modomba szeretném beletenni azt hogy ha belemegyek a pickupba kiírja a dialogot hogy megveszem-e vagy sem. Ez sikerült sõt még a fegyvert is odaadja és a pénzt is levonja meg minden zsír..
Csak 2 dolgot szeretnék megtudni:
Hogy tudom megoldani hogy ne csak egy pickupnál legyen dialog szóval ha odamegyek az AK-hoz és kihozza a dialogot hogy megveszem akkor csak az AK-t adja oda.
Másik: Hogy tudom megoldani hogy ha az illetõnél kevesebb mint 1000$ van akkor ne tudja megvenni.(Szóval ne menyjen minuszba, csak szimplán ne tudja megvenni.)
A pwn-be szereplõ dolgok:
Sor elejére:
[pawn]new ak;
new shot;
new dezi;
new country;
new ak1;
new shot1;
new dezi1;
new country1;[/pawn]
[pawn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid == ak1)
{
if(response)
{
GivePlayerWeapon(playerid, 25, 500);
GivePlayerMoney(playerid, -1000);}
}else{//ellentétben
SendClientMessage(playerid, RED, \"Kiléptél a dialogból vásárlás nélkül.\");
}[/pawn]
Ezt szeretném megoldani mindegyikre. Szóval shot1-re dezi1-re és country1-re is.
[pawn]public OnPlayerPickUpPickup( playerid, pickupid )
{
if( pickupid == ak )
{
ShowPlayerDialog(playerid,ak1,DIALOG_STYLE_MSGBOX,\"{00ff00}Fegyver vétel\",\"Megszeretnéd venni a fegyvert?\\nEladni nem lehet!\",\"Megveszem\",\"Mégsem\");
return 1;
}
else if( pickupid == shot )
{
ShowPlayerDialog(playerid,shot1,DIALOG_STYLE_MSGBOX,\"{00ff00}Fegyver vétel\",\"Megszeretnéd venni a fegyvert?\\nEladni nem lehet!\",\"Megveszem\",\"Mégsem\");
return 1;
}
else if( pickupid == country )
{
ShowPlayerDialog(playerid,country1,DIALOG_STYLE_MSGBOX,\"{00ff00}Fegyver vétel\",\"Megszeretnéd venni a fegyvert?\\nEladni nem lehet!\",\"Megveszem\",\"Mégsem\");
return 1;
}
else if( pickupid == dezi )
{
ShowPlayerDialog(playerid,dezi1,DIALOG_STYLE_MSGBOX,\"{00ff00}Fegyver vétel\",\"Megszeretnéd venni a fegyvert?\\nEladni nem lehet!\",\"Megveszem\",\"Mégsem\");
return 1;
}
return 1;
}
[/pawn]
És ugye a Pickup készítés, de azt most fölösleges bemásolnom.
-
A változóknak nem adtál meg értéket. A kezdõérték mindig 0 és e miatt ütköznek a dialógusok.
Én inkább definicióban adnám meg az értékeket mert az fix.
-
Letudnád írni légyszi hogy mit hova írjak?
-
[pawn]
new ak;
new shot;
new dezi;
new country;
#define ak1 1
#define shot1 2
#define dezi1 3
#define country 4
[/pawn]
-
[pawn]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid == ak1)
{
if(response)
{
GivePlayerWeapon(playerid, 25, 500);
GivePlayerMoney(playerid, -1000);}
}else{//ellentétben
SendClientMessage(playerid, RED, \"Kiléptél a dialogból vásárlás nélkül.\");}
if(dialogid == shot1)
{
if(response)
{
GivePlayerWeapon(playerid, 30, 500);
GivePlayerMoney(playerid, -1000);}
}else{//ellentétben
SendClientMessage(playerid, RED, \"Kiléptél a dialogból vásárlás nélkül.\");
}
}
[/pawn]
NA mostmeg ezzel vannak gondjaim...://
-
Az sorelcsúszáson kívül más hibát én nem látok. Mi a baj ezekkel?
-
Nem hozza be a dialogot hiába megyek rá a pickupra... viszont ha rámegyek arra amit sikerült betennem odaadja a fegyvert és Kiírja hogy kiléptem a dialogból vásárlás nélkül.
-
Nem hozza be a dialogot hiába megyek rá a pickupra... viszont ha rámegyek arra amit sikerült betennem odaadja a fegyvert és Kiírja hogy kiléptem a dialogból vásárlás nélkül.
Mivel mind ugyan azt a logikai elvet használja ezért, hogy egyik nem megy másik megy igen érdekes hiba forrás. Próbáld a betûméretes elkülönítést, tehát nyomtatott betûvel a definíciókat.
Mivel a dialog stílusát nem adtad meg ezért nem tudom, hogy az else most melyik gombra fut le vagy te, hogy szeretnéd. Kérlek annak a forrását is tüntesd fel addig segíteni nem tudok.
-
Az else a Mégsem gombra \"lép érvénybe\" ha minden igaz.
Dupla hozzászólás automatikusan összefûzve. ( 2011. november 12. - 10:41:08 )
Gentlemen, tudod rá a megoldást? ^-^