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: Dukma123 - 2012. október 22. - 13:36:55

Cím: 1 kocsi 1 ember
Írta: Dukma123 - 2012. október 22. - 13:36:55
Hello!
Van 1 ilyenem!
 
   public OnGameModeInit()
{
Dukma= AddStaticVehicle(490,423.3662,2489.3489,16.6132,88.2370,86,0);
Dukma2= AddStaticVehicle(520,332.9124,2538.4272,17.5228,179.1386,86,86);
Dukma3= AddStaticVehicle(579,422.4904,2484.5503,16.4090,90.4397,86,86);
Dukma4= AddStaticVehicle(492,423.1748,2480.5828,16.2681,90.4548,86,86);
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate) {
    new PlayerName[24];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    if(newstate == PLAYER_STATE_DRIVER) {
        new Vehicle = GetPlayerVehicleID(playerid);
        if(Vehicle == Dukma) {
            if(strcmp(PlayerName,\"Freds_Dukma\",true)){ // ellenõrizzük, hogy a játékos neve az-e
                RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
                SendClientMessage(playerid, 0x33AA33AA, \"Freds_Dukma tulajdona!\"); //amikor ki dobja ha nem az õvé
           }
    if(newstate == PLAYER_STATE_DRIVER) {
        if(Vehicle == Dukma) {
            if(strcmp(PlayerName,\"Freds_Dukma\",true)){ // ellenõrizzük, hogy a játékos neve az-e
                RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
                SendClientMessage(playerid, 0x33AA33AA, \"Freds_Dukma tulajdona!\"); //amikor ki dobja ha nem az õvé
           }
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    if(newstate == PLAYER_STATE_DRIVER) {
        if(Vehicle == Dukma) {
            if(strcmp(PlayerName,\"Freds_Dukma\",true)){ // ellenõrizzük, hogy a játékos neve az-e
                RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
                SendClientMessage(playerid, 0x33AA33AA, \"Freds_Dukma tulajdona!\"); //amikor ki dobja ha nem az õvé
           }
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    if(newstate == PLAYER_STATE_DRIVER) {
        if(Vehicle == Dukma) {
            if(strcmp(PlayerName,\"Freds_Dukma\",true)){ // ellenõrizzük, hogy a játékos neve az-e
                RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
                SendClientMessage(playerid, 0x33AA33AA, \"Freds_Dukma tulajdona!\"); //amikor ki dobja ha nem az õvé
           }
        }
    }
    return 1;
}
return 0;
}
}
}
}
}
}

 
ebbõl csak az elsõ mûködik vagyis a sima dukma kocsi az fbi azt nem tudják vinni a többit tudják!
PLS Help!
Cím: 1 kocsi 1 ember
Írta: Johnies00 - 2012. október 22. - 14:19:37
Mód elejére:
 

new Dukma;
new Dukma2;
new Dukma3;
new Dukma4;

 
OnGameModeInit/OnFilterScriptInit alá:
 

Dukma = CreateVehicle(490,423.3662,2489.3489,16.6132,88.2370,86,0,-1);
Dukma2 = CreateVehicle(520,332.9124,2538.4272,17.5228,179.1386,86,86,-1);
Dukma3 = CreateVehicle(579,422.4904,2484.5503,16.4090,90.4397,86,86,-1);
Dukma4 = CreateVehicle(492,423.1748,2480.5828,16.2681,90.4548,86,86,-1);

 


És végül:

 

public OnPlayerStateChange(playerid, newstate, oldstate)
{
new PlayerName[24]; // Létrehozzuk a PlayerName változót amiben tároljuk a nevünket
new vehicle = GetPlayerVehicleID(playerid); // a vehicle -t egyenlõvé tesszük a GetPlayerVehicleID(playerid); fgv.-el
GetPlayerName(playerid, PlayerName, 24); // Lekérjük a nevünket
if(newstate == PLAYER_STATE_DRIVER) // Ha vezetõ ülésre ülsz
{
    if(vehicle == Dukma) // ha az a jármû amiben ülsz megegyezik a Dukma 1 jármûvel
    {
        if(!strcmp(PlayerName, \"Freds_Dukma\", true)) // ha a te neved nem Freds_Dukma
        {
            SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\"); // üzenet
            RemovePlayerFromVehicle(playerid); // kidob a kocsiból
   }
}
else if(vehicle == Dukma2)
{
   if(!strcmp(PlayerName, \"Freds_Dukma\", true))
   {
                SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\");
           RemovePlayerFromVehicle(playerid);
   }
}
else if(vehicle == Dukma3)
{
   if(!strcmp(PlayerName, \"Freds_Dukma\", true))
   {
                SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\");
           RemovePlayerFromVehicle(playerid);
   }
}
else if(vehicle == Dukma4)
{
   if(!strcmp(PlayerName, \"Freds_Dukma\", true))
   {
                SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\");
           RemovePlayerFromVehicle(playerid);
   }
}
}
return 1;
}

 
U.I.: Bocs az indentáció miatt eléggé ratyi a PAWN Kód beágyazás
Cím: 1 kocsi 1 ember
Írta: Kovacs_Richard - 2012. október 22. - 20:01:07
Idézetet írta: Johnies00 date=1350908377\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28877\" data-ipsquote-contentclass=\"forums_Topic
U.I.: Bocs az indentáció miatt eléggé ratyi a PAWN Kód beágyazás
 
nem csak az azonosítás miatt ratyi :) elég felesleges az else if ág ha minden feltétel ugyanazt a kódot futtatja le...
 
if(vehicle == Dukma || vehicle == Dukma2 || vehicle == Dukma3 || vehicle == Dukma4)
{
if(!strcmp(PlayerName, \"Freds_Dukma\", true))
{
SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\");
RemovePlayerFromVehicle(playerid);
}
}
Cím: 1 kocsi 1 ember
Írta: Johnies00 - 2012. október 22. - 21:52:43
Én a Kód Beágyazására gondoltam  ;)
Cím: 1 kocsi 1 ember
Írta: Dukma123 - 2012. október 22. - 21:53:04
Idézetet írta: Kovacs_Richard date=1350928867\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28877\" data-ipsquote-contentclass=\"forums_Topic


U.I.: Bocs az indentáció miatt eléggé ratyi a PAWN Kód beágyazás
 
nem csak az azonosítás miatt ratyi :) elég felesleges az else if ág ha minden feltétel ugyanazt a kódot futtatja le...
 
if(vehicle == Dukma || vehicle == Dukma2 || vehicle == Dukma3 || vehicle == Dukma4)
{
if(!strcmp(PlayerName, \"Freds_Dukma\", true))
{
SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\");
RemovePlayerFromVehicle(playerid);
}
}

 

[/quote]
ez alá kell?
 
public OnPlayerStateChange(playerid, newstate, oldstate)
{
Cím: 1 kocsi 1 ember
Írta: Johnies00 - 2012. október 22. - 21:56:38
Igen, de a változók maradjanak a helyükön  :D
Cím: 1 kocsi 1 ember
Írta: Dukma123 - 2012. október 22. - 21:58:11
Akkor ezt kell lezárni?
 
public OnPlayerStateChange(playerid, newstate, oldstate)
{
        new PlayerName[24]; // Létrehozzuk a PlayerName változót amiben tároljuk a nevünket
        new vehicle = GetPlayerVehicleID(playerid); // a vehicle -t egyenlõvé tesszük a GetPlayerVehicleID(playerid); fgv.-el
        GetPlayerName(playerid, PlayerName, 24); // Lekérjük a nevünket
        if(newstate == PLAYER_STATE_DRIVER) // Ha vezetõ ülésre ülsz
        {
if(vehicle == Dukma || vehicle == Dukma2 || vehicle == Dukma3 || vehicle == Dukma4)
{
if(!strcmp(PlayerName, \"Freds_Dukma\", true))
{
SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\");
RemovePlayerFromVehicle(playerid);
}
Cím: 1 kocsi 1 ember
Írta: Johnies00 - 2012. október 22. - 22:01:22

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new PlayerName[24];
    new vehicle = GetPlayerVehicleID(playerid);
    GetPlayerName(playerid, PlayerName, 24);
    if(newstate == PLAYER_STATE_DRIVER)
    {
        if(vehicle == Dukma || vehicle == Dukma2 || vehicle == Dukma3 || vehicle == Dukma4)
        {
            if(!strcmp(PlayerName, \"Freds_Dukma\", true))
            {
                SendClientMessage(playerid, -1, \"Nem viheted el ezt a jármûvet!\");
                RemovePlayerFromVehicle(playerid);
            }
        }
    }
    return 1;
}

 
Így mûködni fog.
Cím: 1 kocsi 1 ember
Írta: Dukma123 - 2012. október 22. - 22:09:23
nem jó mert a kocsit tudom vinni más névvel
Cím: 1 kocsi 1 ember
Írta: Kovacs_Richard - 2012. október 22. - 22:29:26
bocs a kódot amit adtatok nem néztem át...most csak az az 1 játékost nem tudja vinni az összes többi tudja :D
 
if(!strcmp(PlayerName, \"Freds_Dukma\", true))

 
innen töröld ki a zárójelet...
if(strcmp(PlayerName, \"Freds_Dukma\", true))
Cím: 1 kocsi 1 ember
Írta: Dukma123 - 2012. október 23. - 09:13:30
ez kellet a helyére:
 
if(strcmp(PlayerName,\"Freds_Dukma\",true))

 
De mególdódott köszi!