Szerző Téma: Jogosítvány  (Megtekintve 1100 alkalommal)

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Jogosítvány
« Dátum: 2011. augusztus 23. - 16:47:30 »
0 Show voters
Üdv all írtam egy jogosítvány scriptet amibe az a hiba hogy akkor is kiirja amikor kiszálunk a jármûböl meg amikor spawnolunk.
Script:
 
#include <a_samp>
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTGREEN 0x24FF0AB9
new bool:jogsi[MAX_PLAYERS];
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Jogosítvány script betöltve! By: Flash \");
print(\"--------------------------------------\\n\");
return 1;
}
public OnFilterScriptExit()
{
print(\" Jogosítvány script sikeresen leállítva!\");
new playerid;
jogsi[playerid]=false;
return 1;
}
public OnPlayerConnect(playerid)
{
jogsi[playerid]=false;
SendClientMessage(playerid, COLOR_LIGHTGREEN, \"Jogosítványért: /jogsi {6DC5F3}[scriptet írta: Flash]\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
jogsi[playerid]=false;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/jogsi\", cmdtext, true, 10) == 0)
{
   if(jogsi[playerid]==true) return SendClientMessage(playerid, COLOR_LIGHTRED, \"Már van jogosítványod!\");
if(GetPlayerMoney(playerid) >=12000)
{
   jogsi[playerid]=true;
SendClientMessage(playerid, COLOR_LIGHTGREEN, \"Jogosítványt megvetted! Mostantól tiéd a világ! :)\");
GivePlayerMoney(playerid, -12000);
   }
   else
        {
       SendClientMessage(playerid,COLOR_LIGHTRED,\"Nincs elég pénzed! 12000$-ba kerül egy jogosítvány!\");
}
return 1;
}
return 0;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(jogsi[playerid]==true)
{
// Ide amikor van jogosítványa!
}
if(jogsi[playerid]==false)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_LIGHTRED,\"Jogosítvány nélkül nem vezethetsz!\");
}
return 1;
}

 
És azt szeretném ha csak akkor írná ki a hibát amikor beszáll a jármûbe!
Elõre is kösz!

Jogosítvány
« Válasz #1 Dátum: 2011. augusztus 23. - 17:01:17 »
0 Show voters
Nem biztos, hogy igazat mondok, de szerintem OnPlayerStateChange helyett OnPlayerEnterVehicle kell:
[pawn]
#include <a_samp>
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTGREEN 0x24FF0AB9
new bool:jogsi[MAX_PLAYERS];
public OnFilterScriptInit()
{
   print(\"\\n--------------------------------------\");
   print(\" Jogosítvány script betöltve! By: Flash \");
   print(\"--------------------------------------\\n\");
   return 1;
}
public OnFilterScriptExit()
{
   print(\" Jogosítvány script sikeresen leállítva!\");
   new playerid;
   jogsi[playerid]=false;
   return 1;
}
public OnPlayerConnect(playerid)
{
   jogsi[playerid]=false;
   SendClientMessage(playerid, COLOR_LIGHTGREEN, \"Jogosítványért: /jogsi {6DC5F3}[scriptet írta: Flash]\");
   return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
   jogsi[playerid]=false;
   return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/jogsi\", cmdtext, true, 10) == 0)
{
   if(jogsi[playerid]==true) return SendClientMessage(playerid, COLOR_LIGHTRED, \"Már van jogosítványod!\");
   if(GetPlayerMoney(playerid) >=12000)
         {
             jogsi[playerid]=true;
            SendClientMessage(playerid, COLOR_LIGHTGREEN, \"Jogosítványt megvetted! Mostantól tiéd a világ! :)\");
            GivePlayerMoney(playerid, -12000);
   } else {
      SendClientMessage(playerid,COLOR_LIGHTRED,\"Nincs elég pénzed! 12000$-ba kerül egy jogosítvány!\");
   }
   return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(jogsi[playerid]==true)
{
    // Ide amikor van jogosítványa!
}
if(jogsi[playerid]==false)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_LIGHTRED,\"Jogosítvány nélkül nem vezethetsz!\");
}
return 1;
}
[/pawn]
Ha segítettem, jöhet a +! ;)

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Jogosítvány
« Válasz #2 Dátum: 2011. augusztus 23. - 17:20:07 »
0 Show voters
Ezzel az a baj hogy örök antifallam van és ha felszáll jogsi nélkül és ledobja akkor autómatikusan visszateszi! :(

Jogosítvány
« Válasz #3 Dátum: 2011. augusztus 23. - 17:30:43 »
0 Show voters
Szerintem én akkor nem tudok segíteni :(
Azért megnézem, hátha. :)
Ez talán:
[pawn]
#include <a_samp>
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTGREEN 0x24FF0AB9
new bool:jogsi[MAX_PLAYERS];
public OnFilterScriptInit()
{
   print(\"\\n--------------------------------------\");
   print(\" Jogosítvány script betöltve! By: Flash \");
   print(\"--------------------------------------\\n\");
   return 1;
}
public OnFilterScriptExit()
{
   print(\" Jogosítvány script sikeresen leállítva!\");
   new playerid;
   jogsi[playerid]=false;
   return 1;
}
public OnPlayerConnect(playerid)
{
   jogsi[playerid]=false;
   SendClientMessage(playerid, COLOR_LIGHTGREEN, \"Jogosítványért: /jogsi {6DC5F3}[scriptet írta: Flash]\");
   return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
   jogsi[playerid]=false;
   return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/jogsi\", cmdtext, true, 10) == 0)
{
   if(jogsi[playerid]==true) return SendClientMessage(playerid, COLOR_LIGHTRED, \"Már van jogosítványod!\");
   if(GetPlayerMoney(playerid) >=12000)
         {
             jogsi[playerid]=true;
            SendClientMessage(playerid, COLOR_LIGHTGREEN, \"Jogosítványt megvetted! Mostantól tiéd a világ! :)\");
            GivePlayerMoney(playerid, -12000);
   } else {
      SendClientMessage(playerid,COLOR_LIGHTRED,\"Nincs elég pénzed! 12000$-ba kerül egy jogosítvány!\");
   }
   return 1;
}
return 0;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid =  GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid))
{
   if(jogsi[playerid]==true)
   {
           return 1;
   }
   if(jogsi[playerid]==false)
   {
      RemovePlayerFromVehicle(playerid);
      SendClientMessage(playerid,COLOR_LIGHTRED,\"Jogosítvány nélkül nem vezethetsz!\");
   }
   return 1;
}
return 1;
}
[/pawn]
Amúgy lehet hogy meg tudnám oldani, ha az antifall rendszert ismerném..
« Utoljára szerkesztve: 2011. augusztus 23. - 17:34:21 írta Cole »

Jogosítvány
« Válasz #4 Dátum: 2011. augusztus 23. - 21:05:03 »
+1 Show voters
Én nemrég 1 másik gyereknek írtam egy jogosítvány scriptet tessék:
[pawn]CMD:jogositvany(playerid,params[])
{
if(jogsi[playerid] == false)
{
if(GetPlayerMoney(playerid) >= 5000)
{
jogsi[playerid] = true;
SendClientMessage(playerid,SZÍN,\"Sikeresen vettél egy jogosítványt!\");
GivePlayerMoney(playerid,-5000);
}
else
{
SendClientMessage(playerid,SZÍN,\"Nincs 5000 dollárod!\");
}
}
else{
if(jogsi[playerid] == true)
{
SendClientMessage(playerid,SZÍN,\"Már van jogosítványod!\");
}
 }
return 1;
}
public OnPlayerStateChange ( playerid, newstate ) {
    if ( newstate == PLAYER_STATE_DRIVER ) {
        if (jogsi[playerid] ==false) {
            RemovePlayerFromVehicle( playerid );
            SendClientMessage ( playerid, SZÍN, \"nincs jogsid\" );
        }
    }
    return 1;
}
}[/pawn]
Amikor teszteltem tökéletesen mûködött, ha nincs jogsid nem vezethetsz semmilyen kocsit, ha van jogsid akkor vezethetsz akármilyet.
Ehhez ZCMD kelleni fog, és itt csak 5ezerért lehet megvenni de ezt értelem szerûen áttudod írni.
A te scriptedet nem nagyon néztem meg de mintha sok lenne benne a fölösleges dolog.
Például a OnPlayerStateChange -nál fölösleges ez a rész:
[pawn]if(jogsi[playerid]==true)
   {
    // Ide amikor van jogosítványa!
   }[/pawn]
Az antifallos dolgot meg ki lehet küszöbölni, szóval ha azt is leírod hogy néz ki akkor talán megtudom csinálni hogy ne tegye vissza.
Ja és ne sajnáld a +-ot  :D ;D
« Utoljára szerkesztve: 2011. augusztus 23. - 21:34:15 írta Keszeg »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Jogosítvány
« Válasz #5 Dátum: 2011. augusztus 24. - 08:00:49 »
0 Show voters
Köszönöm nektek! Zárok :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal