-
Sziasztok, nekem lenne egy olyan kérdésem, hogy ha berakom OnPlayerPublic alá azt, hogy Create3dtetxtlabel és abba bele, hogy IsPlayerInRangeOfPoint és amikor belemegyek megjelenik egy dialog, és akármire kattintok, visszadob a fõdialogba, ha rámegyek a kilépésre, akkor is ugyan úgy visszadob.. :/ ebben van a hiba?:
public OnPlayerUpdate(playerid)
{
Create3DTextLabel(\"1-es kassza!\", 0x008080FF, 2317.5152, -7.4353, 26.7422, 40, 0, 0);
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, 2317.5152, -7.4353, 26.7422))
{
ShowPlayerDialog(playerid,1125,DIALOG_STYLE_LIST,\"Bank\",\"Pénz behelyezése\\nPénz felvétele\\nEgyenleg\\nÁtutalás\",\"Kiválaszt\",\"Mégsem\");
}
}
Create3DTextLabel(\"2-es kassza!\", 0x008080FF, 2317.5152, -15.4353, 26.7422, 40, 0, 0);
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, 2317.5152, -15.4353, 26.7422))
{
ShowPlayerDialog(playerid,1125,DIALOG_STYLE_LIST,\"Bank\",\"Pénz behelyezése\\nPénz felvétele\\nEgyenleg\\nÁtutalás\",\"Kiválaszt\",\"Mégsem\");
}
}
return 1;
}
[mod]Téma neve, és CODE tegek kitéve.[/mod]
-
Create3DTextLabel(\"2-es kassza!\", 0x008080FF, 2317.5152, -15.4353, 26.7422, 40, 0, 0);
Ezt az OnGameModeInit alá szokás írni.
és az nem OnPlayerPublic hanem OnPlayerUpdate
És akkor helyesen így kell:
OnGameModeInit alá:
Create3DTextLabel(\"1-es kassza!\", 0x008080FF, 2317.5152, -7.4353, 26.7422, 40, 0, 0);
Create3DTextLabel(\"2-es kassza!\", 0x008080FF, 2317.5152, -15.4353, 26.7422, 40, 0, 0);
És Akkor:
public OnPlayerUpdate(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, 2317.5152, -7.4353, 26.7422))
{
ShowPlayerDialog(playerid,1125,DIALOG_STYLE_LIST,\"Bank\",\"Pénz behelyezése\\nPénz felvétele\\nEgyenleg\\nÁtutalás\",\"Kiválaszt\",\"Mégsem\");
}
if(IsPlayerInRangeOfPoint(playerid, 2.0, 2317.5152, -15.4353, 26.7422))
{
ShowPlayerDialog(playerid,1125,DIALOG_STYLE_LIST,\"Bank\",\"Pénz behelyezése\\nPénz felvétele\\nEgyenleg\\nÁtutalás\",\"Kiválaszt\",\"Mégsem\");
}
return 1;
}
És akkor másold be ami az OnDialogResponse alatt van.
-
Az egész response-t másoljam be?:O
-
Az egész response-t másoljam be?:O
Felesleges...
OnPlayerUpdate alatt nagyon terhelni fogja a szervert..
Szerintem használj Streamer Plugint, azon belül a checkpoint részt..
Csinálj egy változót, aminek az értéke 1, hogyha a checkpointban állsz, és 0, ha nem.. Így ha belemész, nem fogja spammelni a dialogot, és tudod normálisan használni.
-
Tengerimalac, tudnál nekem segíteni ebben?:O
-
Hát.. Vannak róla leírások.. De ha elakadsz, akkor igen :)
#include <a_samp>
new bool:PlayerInPoint[MAX_PLAYERS] = false;
public OnFilterScriptInit() {
Create3DTextLabel(\"1-es kassza!\", 0x008080FF, 2317.5152, -7.4353, 26.7422, 40, 0, 0);
Create3DTextLabel(\"2-es kassza!\", 0x008080FF, 2317.5152, -15.4353, 26.7422, 40, 0, 0);
SetTimer(\"CheckPosition\", 1000, true);
return 1;
}
forward CheckPosition();
public CheckPosition() {
for(new i = 0; i < MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i)) continue;
if(IsPlayerInRangeOfPoint(i, 2.0, 2317.5152, -7.4353, 26.7422)) {
if(PlayerInPoint) continue;
PlayerInPoint = true;
ShowPlayerDialog(i,1125,DIALOG_STYLE_LIST,\"Bank\",\"Pénz behelyezése\\nPénz felvétele\\nEgyenleg\\nÁtutalás\",\"Kiválaszt\",\"Mégsem\");
} else if(IsPlayerInRangeOfPoint(i, 2.0, 2317.5152, -15.4353, 26.7422)) {
if(PlayerInPoint) continue;
PlayerInPoint = true;
ShowPlayerDialog(i,1125,DIALOG_STYLE_LIST,\"Bank\",\"Pénz behelyezése\\nPénz felvétele\\nEgyenleg\\nÁtutalás\",\"Kiválaszt\",\"Mégsem\");
} else PlayerInPoint = false;
}
return 1;
}
Remélem mûködik. :D
-
Köszönöm a segítséget, mint a plusz :)