Szerző Téma: Kérdések, segítség  (Megtekintve 799 alkalommal)

Kérdések, segítség
« Dátum: 2011. augusztus 23. - 15:59:04 »
0 Show voters
Sziasztok!  :)
Segítség
Csinálgatok munkákat a GM-emhez.
Jelenleg a rendõr munkánál tartok. Elakadtam.
Itt a rendõr munka:
[pawn]
// GM elején:
new bool: Rendorszolgalat[MAX_PLAYERS];
forward rendortimer1(playerid);
forward rendortimer(playerid);
/*------------------------Rendõr----------------------------
------------------Legutolsó fejlesztés: 0.6-----------------
*/
CMD:rendorszolgalat(playerid, params[])
{
if(Rendorszolgalat[playerid] == false)
    {
   if(IsPlayerInRangeOfPoint(playerid, 3, 1184.9739,-1331.4349,13.5751))
   {
          SendClientMessage(playerid, COLOR_WHITE, \"Szolgálatba álltál!\");
          SetPlayerSkin(playerid, 280);
          Rendorszolgalat[playerid] = true;
          return cmd_elfogadm(playerid, params);
   } else {
      SendClientMessage(playerid, COLOR_GRAD1, \"Nem vagy a Los Santosi Rendõrállomáson!\");
   }
} else {
    SendClientMessage(playerid, COLOR_WHITE, \"Kiléptél szolgálatból!\");
    SetPlayerSkin(playerid, 2);
    Rendorszolgalat[playerid] = false;
}
return 1;
}
CMD:elfogadr(playerid, params[])
{
    SetPlayerRaceCheckpoint(playerid, 2, 1384.3163,-1585.7670,13.3685, 1344.2418,-1493.5779,13.3828, 3.0);
    SendClientMessage(playerid, COLOR_WHITE, \"Bûnözõ bemérve! Kapd el õt!\");
    gPlayerRendorCPStatus[playerid] = 1;
    return 1;
}
public rendortimer(playerid)
{
new string[32];
    SetPlayerScore(playerid, GetPlayerScore(playerid) +3);
    gPlayerRendorCPStatus[playerid] = 2;
format(string, sizeof string, \"Bûnözõ elkapva! Fizetésed megkaptad.\");
SendClientMessage(playerid, COLOR_LIGHTBLUE1, string);
    DisablePlayerRaceCheckpoint(playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE1, \"Következõ bûnözõért: /elfogadr\");
gPlayerRendorCPStatus[playerid] = 0;
    return 1;
}
public rendortimer1(playerid)
{
ApplyAnimation(playerid,\"MEDIC\",\"CPR\",4.0,0,1,1,0,5000,1);
SetTimer(\"rendortimer\", 5000, false);
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
switch(gPlayerRendorCPStatus1[playerid])
{
   case 0: return 1;
   case 1: SetTimer(\"rendortimer1\", 100, false);
   case 2: GivePlayerMoney(playerid, 200+random(500));
}
return 1;
}
//----------------------------------------------------------
[/pawn]
Azt szeretném, hogy miután a player belépett a RaceCP-be, azután kidobja a következõt.
Kicsit nehéz elmagyarázni, de azért remélem megértitek.
Az elsõ CP-t random válassza ki.
Példa:
Kiválasztja a rendorelkap3-at, és ha belementél a 3-1-be, kidobja a 3-2-t, és így tovább...
Koordináták:
[pawn]AddPlayerClass(1,1384.3163,-1585.7670,13.3685,55.4499,0,0,0,0,0,0); // rendorelkap1-1
AddPlayerClass(1,1344.2418,-1493.5779,13.3828,334.3601,0,0,0,0,0,0); // rendorelkap1-2
AddPlayerClass(1,1360.3907,-1156.5646,23.6479,3.4167,0,0,0,0,0,0); // rendorelkap1-3
AddPlayerClass(1,1442.1011,-1036.7670,23.6563,92.0140,0,0,0,0,0,0); // rendorelkap1-4
AddPlayerClass(1,1479.0361,-1130.8684,23.9063,186.8755,0,0,0,0,0,0); // rendorelkap1-5
AddPlayerClass(1,1524.8662,-1175.8322,24.0602,263.9337,0,0,0,0,0,0); // rendorelkap1-6
AddPlayerClass(1,1526.7859,-1701.1495,13.3828,219.0302,0,0,0,0,0,0); // rendorelkap1-
AddPlayerClass(1,1526.7859,-1701.1495,13.3828,219.0302,0,0,0,0,0,0); // rendorelkap2-1
AddPlayerClass(1,1567.0139,-1833.0005,13.3828,181.3051,0,0,0,0,0,0); // rendorelkap2-2
AddPlayerClass(1,1781.6865,-2177.4253,13.5547,286.2393,0,0,0,0,0,0); // rendorelkap2-3
AddPlayerClass(1,1466.1666,-1589.1423,13.3828,95.0981,0,0,0,0,0,0); // rendorelkap3-1
AddPlayerClass(1,1213.4065,-1569.5275,13.3906,95.5288,0,0,0,0,0,0); // rendorelkap3-2
AddPlayerClass(1,1147.8207,-1681.4006,13.7813,193.6288,0,0,0,0,0,0); // rendorelkap3-3
AddPlayerClass(1,1032.6096,-1784.3025,13.5779,180.8170,0,0,0,0,0,0); // rendorelkap3-4
AddPlayerClass(1,848.6943,-1767.4598,13.3860,96.2704,0,0,0,0,0,0); // rendorelkap3-5
AddPlayerClass(1,747.3788,-1752.7117,13.0409,76.3818,0,0,0,0,0,0); // rendorelkap3-6[/pawn]
Ezek a koordináták. És a 3 útvonalból válasszon egyet random, és egymás után dobálja a CP-ket.
Remélem meg lehet érteni amit írok.. :)
Kérés
Azt hogy lehet megoldani, hogy ha kiszáll az ember a kocsiból, akkor a spawnhelye ott legyen, ahol kiszállt az ember? (RP szervereken /leparkol-hoz hasonlóra gondolok)
És ha van egy saját készítésû dialogos kocsivétel rendszerem, akkor mit kell írni PAWN-ban, hogy hozzáadja a GM-hez?
Itt arra gondolok, hogy beírod pl., hogy /kocsivesz, kiválasztom az infernust, akkor  beleírja a gamemodeba, majd lespawnolja a kocsit. (És úgy, hogy FIX kocsiidje legyen.)
Köszönöm a segítséget!
« Utoljára szerkesztve: 2011. augusztus 23. - 21:41:19 írta Cole »

Kérdések, segítség
« Válasz #1 Dátum: 2011. augusztus 24. - 00:29:03 »
0 Show voters
De túl sokat írtál ide nem csoda hogy senki nem válaszol a timerrel meghívott funkció olyan gyorsan lezajlik hogy pislantani sincs idõd.
 
public rendortimer(playerid)
{
new string[32];
    SetPlayerScore(playerid, GetPlayerScore(playerid) +3);
    gPlayerRendorCPStatus[playerid] = 2;
format(string, sizeof string, \"Bûnözõ elkapva! Fizetésed megkaptad.\");
SendClientMessage(playerid, COLOR_LIGHTBLUE1, string);
    DisablePlayerRaceCheckpoint(playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE1, \"Következõ bûnözõért: /elfogadr\");
gPlayerRendorCPStatus[playerid] = 0;
    return 1;
}
[/quote]
Az OnPlayerEnterRaceCheckpoint meg akkor hívódik meg ha belelép a játékos az adott cpbe ha benne tartózkodik nem hívódik meg újra.
A következõ alkalommal akkor hívódik meg ha kilépsz onnan és újra vissza lépsz.
És mivel rohadt gyorsan lezajlik meg nem lépsz ki újra be a cp-be még kétszer, idõd sincs rá, ezért nem mûködik, gondold újra ezek alapján amit leírtam.
Jármû kilépésbõl spawn hely mentés:
OnPlayerStateChange alatta:
Lekérdezed hogy az oldstate érték az PLAYER_STATE_DRIVER-e?
if(oldstate == PLAYER_STATE_CHANGE)
{
    GetPlayerPos(playerid, spawnposx[playerid], .... // global Float típusú változók minden játékosnak külön külön.
Jó egyelõre ennyi, mindjárt elalszok itt a gép elõtt.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal