Szerző Téma: Rendõr munka scrip hiba - halál után nem oda spawnol ahova akarom  (Megtekintve 597 alkalommal)

0 Show voters
Találtam itt egy scriptett: http://sampforum.hu/index.php?topic=4144.msg46809#msg46809
Ami szerintem jó kiindulás alap lehet az én rendõrõs munkámhoz.
Az a gond, hogy munka közben, halál után nem a rendõrállomáson spawnol újra hanem a gamemodomban lévõ helyekre.
Ezt hogy lehetne kijavítani?
Munka chat-et, hogyan lehet belerakni?
És azt hogyan lehet megoldani, hogy amikor kilép a munkából, akkor ne a rendõrõs skin legyen rajta, hanem az ami a munkába lépés elõtt volt?
Bocsánat a sok kérdésért.
 
//______________________________________________________________________________
//                  Taxi Script Készítõje: ALIEN
//                    Dátum:2010. Március. 30.
//                      Mindenjog fenntartva
//______________________________________________________________________________
#include <a_samp>
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define FILTERSCRIPT
#if defined FILTERSCRIPT
#define TEAM_CIVIL 1
#define TEAM_RENDOR 2
forward Money();
forward SavePos(playerid);
new gTeam[MAX_PLAYERS];
new name[MAX_PLAYER_NAME];
new money;
new iPlayerSkin[ MAX_PLAYERS ];
new Float: fPos[ MAX_PLAYERS ][ 4 ];
 
public Money()
{
    for(new i=0; i<MAX_PLAYERS; i++)
    {
         if(gTeam == TEAM_RENDOR)
         {
             GivePlayerMoney(i, 50000);
             SendClientMessage(i, COLOR_WHITE, \"[FIZETÉS]: Meg kaptad a fizetésed. 50000$-t!\");
         }
    }
}
public OnFilterScriptInit()
{
print(\" Munka script Készítette: ALIEN\");
money = SetTimer(\"Money\", 700000, true);// Az értéket átírhatod kedvedre
return 1;
}
public OnFilterScriptExit()
{
    KillTimer(money);
return 1;
}
#endif
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR_GREEN, \"Taxi Script betõltés kész. by ALIEN\");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    new tmp[256];
    new cmd[256];
    new string[256];
    new idx;
   
cmd = strtok(cmdtext, idx);
    tmp = strtok(cmdtext, idx);
 
//                                            MUNKA
if(strcmp(cmd, \"/rendor\", true) == 0)
{
   if(gTeam[playerid] == TEAM_CIVIL)
   {
      GetPlayerName(playerid, name, sizeof (name));
      format(string, sizeof(string), \"Rendõr, %s szolgálatba állt!\", name);
          SendClientMessageToAll(COLOR_GREEN, string);
          gTeam[playerid] = TEAM_RENDOR;
          SetPlayerPos(playerid, 2318.6741,2450.1377,10.8203);
          SetPlayerSkin(playerid, 280);
          GivePlayerWeapon(playerid, 26, 500);
          iPlayerSkin[ playerid ] = GetPlayerSkin( playerid );
   GetPlayerPos( playerid, fPos[ playerid ][ 0 ], fPos[ playerid ][ 1 ], fPos[ playerid ][ 2 ] );
   GetPlayerFacingAngle( playerid, fPos[ playerid ][ 3 ] );
          } else {
            SendClientMessage(playerid, COLOR_RED, \"Már rendõr vagy!\");
          }
          return 1;
}
if(strcmp(cmd, \"/rendorkilep\", true) == 0)
{
   DisablePlayerCheckpoint(playerid);
   SendClientMessage(playerid, COLOR_RED, \"Kiléptél!\");
   SetPlayerSkin( playerid, iPlayerSkin[ playerid ] );
   SetPlayerPos( playerid, fPos[ playerid ][ 0 ], fPos[ playerid ][ 1 ], fPos[ playerid ][ 2 ] );
   SetPlayerFacingAngle( playerid, fPos[ playerid ][ 3 ] );
           if(gTeam[playerid] == TEAM_RENDOR)
            {
               gTeam[playerid] = TEAM_CIVIL;
       } else {
       SendClientMessage(playerid, COLOR_RED, \"Most nincs munkád!\");
    }
          return 1;
}
return 0;
}
 

public OnPlayerRequestClass(playerid, classid)
{
    if(classid == 0 || classid == 1)
    {
        gTeam[playerid] = TEAM_CIVIL;
    }
}
 
public OnPlayerDeath(playerid)
{
gTeam[playerid] = TEAM_RENDOR;
SetPlayerPos(playerid, 2318.6741,2450.1377,10.8203);
GivePlayerWeapon(playerid, 26, 500);
return 1;
}
 
public OnPlayerSpawn(playerid)
{
gTeam[playerid] = TEAM_RENDOR;
GivePlayerWeapon(playerid, 26, 500);
SetPlayerPos(playerid, 2318.6741,2450.1377,10.8203);
    return 1;
}
 
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= \' \'))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > \' \') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

Nem elérhető SnooP

  • 1798
  • SnooP
    • Profil megtekintése
Rendõr munka scrip hiba - halál után nem oda spawnol ahova akarom
« Válasz #1 Dátum: 2012. július 18. - 10:46:57 »
+1 Show voters
Bár én nagyon kezdõ Scripter vagyok, de szerintem itt állits valamit a Skin hiba miatt
 
SetPlayerSkin( playerid, iPlayerSkin[ playerid ] );

 
És ezt pedig :
SetPlayerPos( playerid, fPos[ playerid ][ 0 ], fPos[ playerid ][ 1 ], fPos[ playerid ][ 2 ] );

 
Javítsd át erre, talán :
SetPlayerPos(playerid, 2318.6741,2450.1377,10.8203);

 
Rendõr chat
CMD:rc(playerid, params[])
{
new Szoveg[128];
new Elkuldes[200];
new Rang[50];
new Neve[MAX_PLAYER_NAME];
if(sscanf(params,\"s[128]\", Szoveg))return SendClientMessage(playerid,0x00FF00,\"HIBA: /rc [szöveg]\");
{
if(pInfo[playerid][munka] == 1 && pInfo[playerid][munkarang] >= 1)
{
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
      /*==========================*/
      if(pInfo[playerid][munkarang] == 1) { Rang = \"Újonc\" ; }
      else if(pInfo[playerid][munkarang] == 2) { Rang = \"Tizedes\" ; }
      else if(pInfo[playerid][munkarang] == 3) { Rang = \"Százados\" ; }
      else if(pInfo[playerid][munkarang] == 4) { Rang = \"Ezredes\" ; }
      else if(pInfo[playerid][munkarang] == 5) { Rang = \"Törzsõrmester\" ; }
      /*==========================*/
      GetPlayerName(playerid, Neve, sizeof(Neve));
      format(Elkuldes, sizeof(Elkuldes), \"*%s %s mondja(rádió): %s\", Rang, Neve, Szoveg);
      if(pInfo[munka] == 1 && pInfo[munkarang] >= 1) { SendClientMessage(i, 0x00FF00, Elkuldes); }
   }
}
}
return 1;
}

 
A 3. Fl0riantól volt. Mint  már fent emlitettem, nagyon kezdõ scripter vagyok, ezért lehet amit irok, hülyeség lesz. Várj meg inkább egy utánam hozzászóló jobb scriptert és addig szerintem tanúlmányozgasd ezt http://sampforum.hu/index.php?topic=19273.0. Remélem a topikkal és, ha jó a script segithettem vele  :)
« Utoljára szerkesztve: 2012. július 18. - 10:51:02 írta SnooP »

Rendõr munka scrip hiba - halál után nem oda spawnol ahova akarom
« Válasz #2 Dátum: 2012. július 18. - 12:08:04 »
0 Show voters
Köszi, a segítséget, de ez így nem lesz jó.
Igazából az is elég lenne már ha beírom /rendor és meghal akkor a rendorállomásra rakná, nem oda ahova a gamemodom mód rakná.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal