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: ZyZu. - 2012. július 27. - 00:48:42

Cím: Frakció Kocsi :D
Írta: ZyZu. - 2012. július 27. - 00:48:42
Üdv!
Kerestem a fórumon több szkriptet de sajnos nem találtam olyan leírás vagy szkriprtet a frakció kocsik készítésérõl ezért készítettem egyett egy példával de nem nagyon mûkõdik valaki nem tudná jelezni vagy megcsinálni a problémát? Ezt egy \"kis\" leírás alapján készítettem de nem megyen ! :(
Mi lenne a probléma? Hát mikor beszálok a kocsiba akkor minden jármûre \"Nem vagy Rendõr!\" szöveget add ki valaki meg nézné az egészet..?
 

#include <a_samp>
new gTeam[MAX_PLAYERS];
#define TEAM_RENDOR 0 // Rendõr
#define TEAM_PIZZA 1 //Pizzás
#define TEAM_SZERELO 2 //Szerelõ
#define TEAM_MENTOS 3 //Mentõs
#define TEAM_TAXI 4 //Taxis
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if (RendorJarmu(vehicleid) && gTeam[playerid] == TEAM_RENDOR)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ez a jármûvet csak Rendõr használhatja!\");
}
if (PizzaJarmu(vehicleid) && gTeam[playerid] == TEAM_PIZZA)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Nem vagy Pizza Szállító!!\");
}
if (SzereloJarmu(vehicleid) && gTeam[playerid] == TEAM_SZERELO)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ezt a jármûvet csak Szerelõ használhatja!\");
}
if (MentosJarmu(vehicleid) && gTeam[playerid] == TEAM_MENTOS)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ezt a jármûvet csak Mentõs használhatja!\");
}
if (TaxisJarmu(vehicleid) && gTeam[playerid] == TEAM_TAXI)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ezt a jármûvet csak Taxis használhatja!\");
}
return 1;
}
stock RendorJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 425 || model == 432 || model == 470 || model == 490 || model == 497 || model == 596 || model == 598 || model == 599 || model == 601 || model == 523 || model == 430 || model == 427) return 1;
return 1;
}
stock PizzaJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 448) return 1;
return 1;
}
stock SzereloJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 525) return 1;
return 1;
}
stock MentosJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 416) return 1;
return 1;
}
stock TaxisJarmu(vehid)
{
        new model = GetVehicleModel(vehid);
if(model == 420) return 1;
return 0;
}
Cím: Frakció Kocsi :D
Írta: Flash - 2012. július 27. - 00:56:01
vehicleid == TEAM_RENDOR
pl?
Cím: Frakció Kocsi :D
Írta: ZyZu. - 2012. július 27. - 00:57:37
Micsoda??  ???  ???
Cím: Frakció Kocsi :D
Írta: Kovacs_Bela - 2012. július 27. - 00:58:05
E: DOUBLE FACEPALM.... dafuq... akkor ha: a játékos beszáll egy olyan kocsiba aminek az idje 0 akkor azlegyen xD
flash már álmos vagy xd
onplayerconnectnél:
gTeam[playerid] = -1;
#define TEAM_RENDOR 5 // Rendõr
Cím: Frakció Kocsi :D
Írta: ZyZu. - 2012. július 27. - 01:09:56
Nem jó :(
Más megoldás?  :confused:
Cím: Frakció Kocsi :D
Írta: Zsolesszka - 2012. július 27. - 09:06:21
AZ OnPlayerEnterVehicle nem lesz jó erre a célra, írd meg az OnPlayerStateChange alá õket, igaz ott már ki is kell tenni a játékost a jármûbõl mert ott benne is van a játékos már a jármûben, csak akkor mûködik.
Vagy valami más megoldást kell találni.
A hiba amúgy az egyes jármû típus felismerésben van. stock RendorJarmu, stock Pizza...  stb.:
Ha készítesz egy ilyent ami feltételt szab valaminek ne mind a két eset végét \"return 1;\" -el zárd mivel nem lesz közte semmilyen különbség amivel az \"if\" különbséget tud tenni.
Pl.:
 
stock RendorJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 425 || model == 432 || model == 470 || model == 490 || model == 497 || model == 596 || model == 598 || model == 599 || model == 601 || model == 523 || model == 430 || model == 427) return 1; // Valamelyiknek return 0; kell lennie.
return 1; // vagy ennek return 0; kell lennie.
}

 
Tehát az egyiknek 1-el kell vissza térnie a másiknak nullával, ha mind kettõ egyel tér vissza akkor semmi haszna.
Cím: Frakció Kocsi :D
Írta: DrAkE - 2012. július 27. - 09:33:31
Logikusabb, hogy ha feltöltöd a jármû változóját a játékos csapat értékével, tehát hogy ha a jármû frakció értéke 2, és a játékosé is, akkor használhatja.
Cím: Frakció Kocsi :D
Írta: TengeriMalac - 2012. július 27. - 09:58:30
   if (RendorJarmu(vehicleid) && gTeam[playerid] == TEAM_RENDOR)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ez a jármûvet csak Rendõr használhatja!\");
}

 
Eleve ott van elb4szva, hogy ha rendõr vagy, csak akkor írja ki, hogy nem szállhatsz be mer rendõr vagy, a többit beenegedi.. Ugyanúgy a többinél.
Cím: Frakció Kocsi :D
Írta: Rupert - 2012. július 27. - 12:57:38

#include <a_samp>
new gTeam[MAX_PLAYERS];
#define TEAM_RENDOR 0 // Rendõr
#define TEAM_PIZZA 1 //Pizzás
#define TEAM_SZERELO 2 //Szerelõ
#define TEAM_MENTOS 3 //Mentõs
#define TEAM_TAXI 4 //Taxis
public OnPlayerStateChange(playerid, newstate, oldstate)
{
        new vehicleid;
        vehicleid = GetPlayerVehicleId(playerid);
        if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
        {
if (RendorJarmu(vehicleid) && gTeam[playerid] != TEAM_RENDOR)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ez a jármûvet csak Rendõr használhatja!\");
}
if (PizzaJarmu(vehicleid) && gTeam[playerid] != TEAM_PIZZA)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Nem vagy Pizza Szállító!!\");
}
if (SzereloJarmu(vehicleid) && gTeam[playerid] != TEAM_SZERELO)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ezt a jármûvet csak Szerelõ használhatja!\");
}
if (MentosJarmu(vehicleid) && gTeam[playerid] != TEAM_MENTOS)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ezt a jármûvet csak Mentõs használhatja!\");
}
if (TaxisJarmu(vehicleid) && gTeam[playerid] != TEAM_TAXI)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, 0xFF1717FF, \"Ezt a jármûvet csak Taxis használhatja!\");
}
        }
return 1;
}
stock RendorJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 425 || model == 432 || model == 470 || model == 490 || model == 497 || model == 596 || model == 598 || model == 599 || model == 601 || model == 523 || model == 430 || model == 427) return 1;
return 1;
}
stock PizzaJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 448) return 1;
return 1;
}
stock SzereloJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 525) return 1;
return 1;
}
stock MentosJarmu(vehid)
{
    new model = GetVehicleModel(vehid);
if(model == 416) return 1;
return 1;
}
stock TaxisJarmu(vehid)
{
        new model = GetVehicleModel(vehid);
if(model == 420) return 1;
return 0;
}
Cím: Frakció Kocsi :D
Írta: ZyZu. - 2012. július 27. - 13:04:35
Error: error 017: undefined symbol \"vehicleid\"  :-[
Cím: Frakció Kocsi :D
Írta: Rupert - 2012. július 27. - 13:15:59
Idézetet írta: ZyZu date=1343387075\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"25066\" data-ipsquote-contentclass=\"forums_Topic
Error: error 017: undefined symbol \"vehicleid\"  :-[
 
Javítva.