Szerző Téma: 3DText  (Megtekintve 876 alkalommal)

3DText
« Dátum: 2012. augusztus 06. - 02:34:04 »
0 Show voters
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]
« Utoljára szerkesztve: 2012. augusztus 06. - 07:40:51 írta Benceee »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
3DText
« Válasz #1 Dátum: 2012. augusztus 06. - 03:31:52 »
0 Show voters
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.

3DText
« Válasz #2 Dátum: 2012. augusztus 06. - 04:29:38 »
0 Show voters
Az egész response-t másoljam be?:O

3DText
« Válasz #3 Dátum: 2012. augusztus 06. - 09:15:06 »
0 Show voters
Idézetet írta: anorennia date=1344220178\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"25598\" data-ipsquote-contentclass=\"forums_Topic
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.

3DText
« Válasz #4 Dátum: 2012. augusztus 06. - 09:26:59 »
0 Show voters
Tengerimalac, tudnál nekem segíteni ebben?:O

3DText
« Válasz #5 Dátum: 2012. augusztus 06. - 09:44:20 »
+1 Show voters
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
« Utoljára szerkesztve: 2012. augusztus 06. - 09:54:56 írta TengeriMalac »

3DText
« Válasz #6 Dátum: 2012. augusztus 06. - 10:01:10 »
0 Show voters
Köszönöm a segítséget, mint a plusz :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal