GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => Szkript kérések => SA-MP: Szerverfejlesztés => RP/RPG kérések => A témát indította: Radikal - 2014. november 29. - 22:29:10

Cím: Dialog
Írta: Radikal - 2014. november 29. - 22:29:10
Üdvözletem kedves fórumozó tásak !
 

Szeretnék segítséget kérni tőletek,tegnap nyittam egy témát ugyaúgy dialog!És tanultam is belőle,ezért köszönet jár,de !

Szeretnék még egy dolgok kérdezni,ami nagyon érdekel a dialog !

Hogyan lehetne parancshoz kötni?!


Elmagyarázom egy kicsit részletesebben hogy megértsétek!Nos,példáül a járműv indításához,lámpák felkapcsolásához és


csomi stb nyitásához,
nekejen a játékosnak 10x parancsot beírnija,ígyhát meglehetne oldani textdrawba!

Méghozzá ha nyom pl.. egy
M betűt kijön neki a textdraw ahol lennének a parancsok,és ellég lene kiválasztani valameiket!

Példáül :. lenyomod a
M betűt,mingyá az első \" Motor \" és ha 1x kattolsz rá akkor beindítya,de ha másodszor akkor leál!

Remélem elégé erthető voltam,és sajnálom,csak próbálok segítséget keresni a dialog tanulásához!
Cím: Dialog
Írta: Chrispapa - 2014. november 29. - 22:31:32
Ez sokkal egyszerűbb dialoggal
Cím: Dialog
Írta: Radikal - 2014. november 29. - 22:34:09

Köszönöm a figyelmesztetést kedves Chrispapa!

Javítotam!


Dialogra gondoltam,csakhát véletlen rosszt írtam

 
!
Cím: Dialog
Írta: .random. - 2014. november 29. - 23:07:21
Remélem innentől menni fog a többi :)

Ha valamit nem értessz akkor ... :google2:


Ott fent van minden :D

 

#define FILTERSCRIPT
#include <a_samp>
#define DIALOG_VEHICLE 123 // Itt definiálod a dialog ID -jét, vigyázz, nehogy a dialogid-k összekeveredjenek!! (összekeveredjenek == ugyanaz a dialogid 2 teljesen más dialognak)
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnGameModeInit() // Ez akkor fog lefutni amikor a szerver elindul
{
ManualVehicleEngineAndLights(); // Ez arra kell, hogyha beszáll valaki a kocsiba nem fogja a motort beindítani a mód, és nem fogja a lámpákat felkapcsolni, csak akkor, ha azt a játékos beindítja/felkapcsolja
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) // Ez akkor fut le, ha a játékos lenyom valamilyen gombot
{
if(PRESSED(KEY_YES)) // Ha ez a gomb a \'KEY_YES\' vagyis alapértelmezetten az \'Y\'
{
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) // És benne ül egy járműben, a vezető helyén
{
ShowPlayerDialog(playerid,DIALOG_VEHICLE,DIALOG_STYLE_LIST,\"Járműkezelő\",\"Beindít\\nLeállít\\nCsomagtarto Nyit\\nCsomagtarto Zár\",\"Kiválaszt\",\"Mégsem\");
//Előhozzuk ezt a dialogot, aminek az érdemi része a OnDialogResponse() nál található
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_VEHICLE) // Ha a diaogid egyenlő DIALOG_VEHICLE (Vagyis azzal amivel a járműveket kezeled)
{
if(!response) return 1;
if(listitem == 0) // Ha a Beindítra vagyis az elsőre kattint akkor ez fut le
{
new engine,lights,alarm,doors,bonnet,boot,objective; // Ezekkel hozod létre azokat a változókat amiket a funkció használ fel
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective); // Ez a függvény lekéri a jármű paramétereit
SetVehicleParamsEx(GetPlayerVehicleID(playerid),true,lights,alarm,doors,bonnet,boot,objective); // Ez pedig átváltoztatja, tehát Motort ki be kapcsolja, Lámpát fel le kapcsolja stb.
SendClientMessage(playerid, -1, \"Beindítottad a motort!\");
}
else if(listitem == 1) // De ha a Leállítra kattint rá, akkor ez fut le
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),false,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid, -1, \"Leállítottad a motort!\");
}
else if(listitem == 2) // És így továbbb
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,true,objective);
SendClientMessage(playerid, -1, \"Kinyitottad a csomagtartót!\");
}
else if(listitem == 3)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,false,objective);
SendClientMessage(playerid, -1, \"Bezártad a csomagtartót!\");
}
}
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) // Ha a játékos beszáll egy járműbe
{
if(ispassenger == 0) // És ha a vezető helyére ül
{
SendClientMessage(playerid,-1,\"Beszáltál egy járműbe! Ahoz, hogy elindítsd, nyomd meg az \'Y\' -t!\"); // Tájékoztatjuk arról, hogy hogyan indíthatja be
}
return 1;
}
Cím: Dialog
Írta: Radikal - 2014. november 30. - 00:30:22
Kedves .RäNÐoM. Köszönöm a segítséged!
 
De viszont,van még egy gond,tovább tudnám is,de a mód zcmd-ben van írva,és még van néhány parancs ( /motorhaztetőnyit /zat ) és ezzek zcmd-ben vannak írva!
 
CMD:motorhazteto(playerid,params[])
{
    new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInAnyVehicle(playerid))
{
if(vehicleid < 47 || vehicleid > 50)
{
   if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
   {
      if(vInfo[vehicleid][MOTORHAZTETO] == 0)
      {
          new engine,lights,alarm,doors,bonnet,boot,objective;
         GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
         SetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,1,boot,objective);
         SendClientMessage(playerid, NARANCS, \"Kinyitottad a motorháztetőt!\");
         vInfo[vehicleid][MOTORHAZTETO] = 1;
      }
      else
      {
          new engine,lights,alarm,doors,bonnet,boot,objective;
         GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
         SetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,0,boot,objective);
         SendClientMessage(playerid, NARANCS, \"Becsuktad a motorháztetőt!\");
         vInfo[vehicleid][MOTORHAZTETO] = 0;
      }
   }
}
}
return 1;
}

 
És igazából eszt fogalmam sincs hogykéne asamp-ba átrakni  :no:
 
Tudnál ezzel is segíteni ?! Ha ez nemlenne tőled túlnagy kérés ?
Cím: Dialog
Írta: Dfoglalo - 2014. november 30. - 01:04:05
Megjegyzés: a SAMP-ban nem lehet az M billentyűt érzékelni az alap klienssel.
[gmod]AdPex, kérlek ügyelj jobban a helyesírásodra és a fogalmazásmódodra! Minden hozzászólásodban sok a helyesírási hiba és sokszor nem túl megfogalmazottak a mondataid. Ennek akár egyszer még te is kárát láthatod; nem fogják megérteni azt, amit írsz. Esetleg használd a böngésződ helyesírás ellenőrzőjét![/gmod]
Annál a parancsnál pedig a CMD-s sort egyszerűen kicseréled egy strcmp-s elágazásra, mivel nem használ a parancs egyéb paramétereket, már ha az alap OnPlayerCommandText-et használod.