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: tudvari - 2011. szeptember 10. - 21:43:11

Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 10. - 21:43:11
Az lenne a kérdésem hogy valaki definiálni a vehicle modelt?
úgy értem hogy:
[pawn]carid == 66 || carid == 67 || carid == 91 || carid == 92 || carid == 93[/pawn]
Azt szeretném hogy ne a kocsi id-jét,vegye alapul hanem a modeljét.Pl.: zsaru kocsik ne a 68-as stb kocsik legyenek hanem az összes ami 440-es model id-jû (csak példa nem tudom fejbõl az id-jét :D)
Köszönöm elõre is.
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: kadaradam - 2011. szeptember 10. - 22:03:31
Sajnos nem értelek,de ha definálásra gondolsz:
[pawn]#define .....[/pawn]
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zotyabuszos - 2011. szeptember 10. - 22:07:10
Nekem is jól jönne.
A gf-be rendszám alapján sorolja be az autókat (( pl 15-ös kocsitól a 30-asig rendõr )) és ,hogy ne ezeket a rendszámokat vegye a rendszer hanem a kocsi modell ID-jét
Pont ezért nem tudok több kocsit hozzá adni....
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 10. - 22:20:21
http://wiki.sa-mp.com/wiki/GetVehicleModel
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 10. - 22:22:33
áá :D
[pawn]#define kocsimodel GetVehicleModel;[/pawn]
Vagy new-al kell megcsinálni?
Ment a +1
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 10. - 22:27:56
Félre érted nem kell semmit definiálni de ha akarod akkor úgy csinálod nem tudom pontosan hol szeretnél modelid-re valamit alkalmazni de azt így tudod:
[pawn]    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 411) // 411 is the infernus model
    {
        SendClientMessage(playerid, 0xFFFFFFFF, \"Nice Infernus!\");
    }[/pawn]
Vagyis elsõnek meg kell állapítani a játékos melyik sorszámú autóban van (vehicleid) majd ezután megállapítjuk a modelid számát (GetVehicleModel) és ha az 411 jelen esetben infernus akkor kap egy üzenetet.
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 10. - 22:29:01
[pawn]
public IsACopCar(carid)
{
if((carid >= 35) && (carid <= 60) || carid == 66 || carid == 67 || carid == 91 || carid == 92 || carid == 93 || carid == 36)
{
    if(carid == 45 || carid == 46 || carid == 55 || carid == 59) { return 0; }
   return 1;
}
return 0;
}[/pawn]
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zotyabuszos - 2011. szeptember 10. - 22:39:54
Idézetet írta: tudvari date=1315686541\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"11384\" data-ipsquote-contentclass=\"forums_Topic
[pawn]
public IsACopCar(carid)
{
if((carid >= 35) && (carid <= 60) || carid == 66 || carid == 67 || carid == 91 || carid == 92 || carid == 93 || carid == 36)
{
    if(carid == 45 || carid == 46 || carid == 55 || carid == 59) { return 0; }
   return 1;
}
return 0;
}[/pawn]
 
Ezzel te el se tudod képzelni mennyit segítettél nekem  :o :o +++  ;)
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 10. - 22:40:29
Erre rengeteg megoldás van de talán az alap bevált módszert próbálnám leírni, (most nem akarok kitérni itt az egyéb adat tömörített változatokra amik kevesebb memória terület lefoglalása mellett gyorsabban is végrehajtják a feladatot):
Elsõnek kellenek azok a modelid-k amik rendõr jármûvek:
http://wiki.sa-mp.com/wiki/Vehicles:All
[pawn]stock
IsaCopCar(playerid)
{
new
   vehid = GetPlayerVehicleID(playerid); // lekérdezzük hogy a játékos melyik sorszámú autóban van
if(vehid) // Ellõnrízzük hogy ezaz érték nagyobb-e nullánál mert ha nulla akkor a játékos nincs jármûben.
{
   switch(GetVehicleModel(vehid)) //Itt egy if hez hasonló szerkezet csak ez valamivel szebb lényegében a jármû azonosító számából lekérdezzük a modelid-t
   {
      case 427, 497, 528, 596, 597, 598, 599, 601: return true; // A rendõr jármûvek modelidje majd a visszatéréseket megváltoztatod olyanra amelyik neked kell meg a modelidket is írd át, ha van benn olyan aminek nem kellene.
   }
}
return false; // false (0) visszatérési érték ha nem rendõr jármûben van és nem tartózkodik jármûben a játékos.
}[/pawn]
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 10. - 22:55:20
Akkor a régit ki is törölhetem nem de?
És ide jön az is hogy \"Nem vagy rendõr stb?\" Mert akkor azt is törölni kell a mod-ból,mert egyszer már benne van csak másképp. +1
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 10. - 23:16:40
Idézetet írta: tudvari date=1315688120\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"11384\" data-ipsquote-contentclass=\"forums_Topic
Akkor a régit ki is törölhetem nem de?
És ide jön az is hogy \"Nem vagy rendõr stb?\" Mert akkor azt is törölni kell a mod-ból,mert egyszer már benne van csak másképp. +1
 
Így van kitörölheted, mivel a régi módszereddel te megadtad azokat a jármû sorszámokat amik rendõr jármûvek a szerveren, így nem módosíthatod õket meg kell tartanod az eredeti sorrendet, ennél a változatnál meg teljesen mindegy milyen sorrendben vannak a jármûvek, mindig az adott játékos állapotától függ (jármû elfoglalás) a mûködése.
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 10. - 23:20:47
Köszönöm mégegyszer,ennek alapjára már megtudom csinálni a többit is.
+1 mégegyszer
de van egy kis probléma.mentõsöknek is van helikopterük de az csak 1 sima maverick.Akkor gondolom a veh id-jét kell megnéznem.De hogy?
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 11. - 13:57:41
A maverick-nek is van modelid-je ugyanúgy lehet rá hivatkozni.  487
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 11. - 15:13:18
nem érted.Van rendõrségnek külön polie maverickje,de kórháznak nincs így piros,fehér mavericket kell csinálni.De hogy ha annak a modelid-jét írom be akkor az összes maverick mentõs lesz.
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: D í e s e £ - 2011. szeptember 11. - 15:30:35

forward RendorKocsi(carid);
public RendorKocsi(carid)
{
     new model = GetVehicleModel(carid);
     if(model == 427 || model == 490 || model == 523 || model == 596 || model == 597 || model == 598 || model == 599);
     {
           return 1;
     }
      return 0;
}

 
Igazából végig sem olvastam az elöttem posztolókat,erre van szükséged?
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 11. - 15:39:46

D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(1800) : error 036: empty statement
D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(1804) : warning 225: unreachable code

 
1800
[pawn]if(model == 427 || model == 490 || model == 523 || model == 596 || model == 597 || model == 598 || model == 599);[/pawn]
1804
return 0-s
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: D í e s e £ - 2011. szeptember 11. - 15:52:20
forward RendorKocsi(carid);
public RendorKocsi(carid)
{
     new model = GetVehicleModel(carid);
     if(model == 427 || model == 490 || model == 523 || model == 596 || model == 597 || model == 598 || model == 599)
     {
           return 1;
     }
     return 0;
}

 
A javított verzió,siettem,ezért az elöbbit elírtam
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 11. - 17:02:34
Azt az egy jármûvet megjelõlöd egy változóval és azt az egyet kihagyod az ellenõrzésbõl.
[pawn]new mento; // A mód tetejére global változóként.[/pawn]
majd az OnGameModeInit alatt megkeresed azt a jármûvet amelyik a mentõsöké.
mento = AddStaticVehicle(......
és ezt a változót beilleszted valamelyik kódba hogy kihagyja az egész folyamatból.
[pawn]stock
IsaCopCar(playerid)
{
new
   vehid = GetPlayerVehicleID(playerid); // lekérdezzük hogy a játékos melyik sorszámú autóban van
if(vehid == mento) return false;
if(vehid) // Ellõnrízzük hogy ezaz érték nagyobb-e nullánál mert ha nulla akkor a játékos nincs jármûben.
{
   switch(GetVehicleModel(vehid)) //Itt egy if hez hasonló szerkezet csak ez valamivel szebb lényegében a jármû azonosító számából lekérdezzük a modelid-t
   {
      case 427, 497, 528, 596, 597, 598, 599, 601: return true; // A rendõr jármûvek modelidje majd a visszatéréseket megváltoztatod olyanra amelyik neked kell meg a modelidket is írd át, ha van benn olyan aminek nem kellene.
   }
}
return false; // false (0) visszatérési érték ha nem rendõr jármûben van és nem tartózkodik jármûben a játékos.
}[/pawn]
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 11. - 20:05:42
Köszi mentek a +1-ek.
[pawn]
public IsAnAmbulance(carid)
{
    new vehid = GetPlayerVehicleID(playerid);
if(vehid == mento) return false;
return 0;
}[/pawn]
undefined symbol playerid
valaki ?:D
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Norby - 2011. szeptember 11. - 20:09:45
Idézetet írta: tudvari date=1315764342\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"11384\" data-ipsquote-contentclass=\"forums_Topic
Köszi mentek a +1-ek.
[pawn]
public IsAnAmbulance(carid)
{
    new vehid = GetPlayerVehicleID(playerid);
if(vehid == mento) return false;
return 0;
}[/pawn]
undefined symbol playerid
valaki ?:D
 
GetPlayerVehicleID(playerid);
nincs definálva a Playerid :)
ezt ird át a GM be :
 
forward IsAnAmbulance(carid);

 
Erre :
 
forward IsAnAmbulance(carid,playerid);

 
És ezt is változtasd :
 
public IsAnAmbulance(carid)

 
Erre :
 
public IsAnAmbulance(carid,playerid)

 
Elméletileg jó lesz :)
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 11. - 20:30:38

D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(1603) : warning 202: number of arguments does not match definition
D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(3776) : warning 202: number of arguments does not match definition
D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(13876) : warning 202: number of arguments does not match definition

 
1603
[pawn]if (IsAnAmbulance(vehicleid) && !ispassenger)[/pawn]
3776
[pawn]else if(IsAnAmbulance(newcar))[/pawn]
13876
[pawn]if (IsAnAmbulance(playambu) && playambu == giveambu)[/pawn]
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 11. - 20:59:30
Most ne keverd az azonosító sorszámokat vehicleid playerid mert az elõzõ az jármû sorszámozást takar míg az utóbbi az játékos sorszámozást jelöl.
Most a funkciót annak alapján írod meg amelyiket használni akarod ha a vehicleid sorszámozást használod akkor több helyen így kellene használnod:
[pawn]stock IsAnAmbulance(vehicleid) return vehicleid == mento; // Egyetlen egy jármûért amúgy felesleges egy ilyent létrehozni, de tapasztalat szerzésnek nem rossz az ilyen se.[/pawn]
majd ahol használod pl.:
[pawn]public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(IsAnAmbulance(vehicleid))
    {[/pawn]
van vehicleid paraméter a callback funkcióban ott azt használod ahol meg nincs:
pl.:
[pawn]public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(IsAnAmbulance(GetPlayerVehicleID(playerid)))
    {[/pawn]
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 11. - 21:09:14
Ezt nem értem :D
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 11. - 23:51:57
Idézetet írta: tudvari date=1315768154\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"11384\" data-ipsquote-contentclass=\"forums_Topic
Ezt nem értem :D
 
Pedig ennél érthetõbben nem lehet leírni olvasd el többször próbálgasd szkriptben, mást nem tudok javasolni.
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: tudvari - 2011. szeptember 12. - 18:21:03
Nos szerettem volna megoldani azt hogy bizonyos kocsik amik elõtt ott van hogy \"mento =\" azok mentõskocsinak számítsanak és ne tudjon beleszállni normál player.De ezeket a warnokat kaptam.
Ez a fõ kód,és ebben van az 1601-es sor.
[pawn]
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
   if (IsACopCar(vehicleid) && !ispassenger)
   {
      if(PlayerInfo[playerid][pLeader]==1||PlayerInfo[playerid][pLeader]==2||PlayerInfo[playerid][pLeader]==3) {}
       else
      RemovePlayerFromVehicle(playerid);
      SendClientMessage(playerid, COLOR_RED, \"Nem vagy a  tagja!\");
   }
   if (IsAnAmbulance(vehicleid) && !ispassenger) //1601
   {
       if(PlayerInfo[playerid][pMember]==4||PlayerInfo[playerid][pLeader]==4) { }
       else
      RemovePlayerFromVehicle(playerid);
       SendClientMessage(playerid, COLOR_RED, \"Nem vagy a mentõszolgálat tagja!\");
   }
   return 1;
}[/pawn]
Warnok:
 

D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(1601) : warning 202: number of arguments does not match definition
D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(3773) : warning 202: number of arguments does not match definition
D:\\SZERVER\\gamemodes\\legujabbkorhaz.pwn(13880) : warning 202: number of arguments does not match definition

 
[pawn]else if(IsAnAmbulance(newcar)) //3773[/pawn]
[pawn]if (IsAnAmbulance(playambu) && playambu == giveambu) //13880[/pawn]
Elõre is köszönöm minden hozzászóló segítségét.
[mod]Ne nyiss feleslegesen még egy témát ez ügyben, tökéletesen megfelel a régi is erre a célra ha ebben írsz új hozzá szólást az is elõre fog kerülni. Témák össze vonva.[/mod]
Cím: Rohamkocsi csak mentõsöknek ->number of arguments does not match definition
Írta: Zsolesszka - 2011. szeptember 13. - 07:28:53
\"number of arguments does not match definition\"
(nem szó szerinti fordítás!)
Azt jelenti hogy a használt függvény paraméterinek száma nem egyezik meg a tényleges függvény paramétereivel.
[pawn]IsAnAmbulance(param1, param2, param3)[/pawn]
Itt 3 paramétere van az adott függvénynek így mikor használod ott is 3-mat kell megadni.
Ez nem minden esetben így van, vannak egyéb megoldások, de ezzel most nem akarlak össze zavarni.
[pawn]if(IsAnAmbulance( 4, 6, playerid))[/pawn]
És mint a hozzászólásodban olvastam
 
amik elõtt ott van hogy \"mento =\"[/quote]
Már eleve rosszul alkalmazod a mento kifejezés/változó csak egy darab jármû azonosító számát tudja tárolni jelen formájában és nem az összesét.
Ahhoz hogy te több jármû vehicleid értékét tudd tárolni több változót vagy ennek a változónak kell adni egy plusz dimenziós/array értéket.
[pawn]new mento, mento1, mento2, mento3;
mento = AddStaticVehicle(...
mento1 = AddStaticVehicle(...
mento2 = AddStaticVehicle(...
mento3 = AddStaticVehicle(...[/pawn]
Vagy másképp:
[pawn]
new mento[4];
mento[0] = AddStaticVehicle(...
mento[1] = AddStaticVehicle(...
mento[2] = AddStaticVehicle(...
mento[3] = AddStaticVehicle(...[/pawn]