Szerző Téma: Don\'t get wet - napelemes minigame (solar) fallout  (Megtekintve 859 alkalommal)

Nem elérhető .:Secur:.

  • 2430
  • GTA Hero
    • Profil megtekintése
Don\'t get wet - napelemes minigame (solar) fallout
« Dátum: 2012. december 13. - 21:54:48 »
0 Show voters
Üdv!
Lenne a fent említett script amit angol fórumról szedett le haverom majd átküldte, a script nem módosított szûz!
Errorozik, nem tudom miért nem vagyok egy nagy scripter, vagy csak figyelmetlen.
Segítsetek! Sürgõs, köszönöm!
http://data.hu/get/5936973/DontGetWet.pwn

Nem elérhető ►ѕтa

  • 2016
  • Newbie
    • Profil megtekintése
Don\'t get wet - napelemes minigame (solar) fallout
« Válasz #1 Dátum: 2012. december 13. - 22:07:43 »
0 Show voters
És mi a hiba?

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
Don\'t get wet - napelemes minigame (solar) fallout
« Válasz #2 Dátum: 2012. december 13. - 22:12:04 »
0 Show voters
Nekem nem ír hibát. Valószínûleg hiányzik egy függvénykönyvtár.

Don\'t get wet - napelemes minigame (solar) fallout
« Válasz #3 Dátum: 2012. december 13. - 22:32:17 »
+1 Show voters
Másold ki és próbáld lefordítani.
 
/*                                           ________________________________
           __,__                 (                                                           )
    .--.  .-\"     \"-.  .--.        ( Monky fix, good now, happy be!)
   / .. \\/  .-. .-.  \\/ .. \\       (       Keep the credits!           )
   | |  \'|  /   Y   \\  |\'  | |    /     (                                                       )
   | \\   \\  \\ 0 | 0 /  /   / |   /   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   \\ \'- ,\\.-\"`` ``\"-./, -\' /   /
    `\'-\' /_   ^ ^   _\\ \'-\'`   /
    .--\'|  \\._ _ _./  |\'--.
   /`    \\   \\.-.  /   /    `\\
  /       \'._/  |-\' _.\'       \\
 /          ;  /--~\'   |       \\
/        .\'\\|.-\\--.     \\       \\
   /   .\'-. /.-.;\\  |\\|\'~\'-.|\\       \\
   \\       `-./`|_\\_/ `     `\\\'.      \\
\'.      ;     ___)        \'.`;    /
  \'-.,_ ;     ___)          \\/   /
   \\   ``\'------\'\\       \\   `  /
   \'.    \\       \'.      |   ;/_
  ___>     \'.       \\_ _ _/   ,  \'--.
.\'   \'.   .-~~~~~-. /     |--\'`~~-.  \\
   // / .---\'/  .-~~-._/ / / /---..__.\'  /
  ((_(_/    /  /      (_(_(_(---.__    .\'
      | |     _              `~~`
      | |     \\\'.
       \\ \'....\' |
        \'.,___.\'
      #Name: [FilterScript]Don\'t Get Wet
#Author: iMonk3y
#Release Date: 31/01/2011
#Credits:
            ¤ zcmd                  - Zeex      (http://forum.sa-mp.com/showthread.php?t=91354)
            ¤ foreach       - Y_Less    (http://forum.sa-mp.com/showthread.php?t=92679)
*/
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#include <foreach>
#define isodd(%1) \\
((%1) & 0x01)
#define iseven(%1) \\
(!isodd((%1)))
#define ALL_PLAYERS     200     //Define number of players on your server
#define MAX_SLOTS               54      //Don\'t change this
#define PRIZE_MONEY     10000
#define LIME            0x88AA62FF
#define WHITE           0xFFFFFFAA
#define RULE            0xFBDF89AA
#define ORANGE          0xDB881AAA
#define COL_LIME    \\
\"{88AA62}\"
#define COL_WHITE       \\
\"{FFFFFF}\"
#define COL_RULE        \\
\"{FBDF89}\"
#define COL_ORANGE      \\
\"{DB881A}\"
forward SpeedUp( object, Float:x, Float:y, Float:z);
forward RespawnPlayer( player );
forward MinigameWinner( player );
forward MinigameCountdown( );
forward MinigameUpdate( );
forward EndMinigame( );
new bool:Minigamer_[ALL_PLAYERS char];
new bool:VIEW_FROM_ABOVE;
new inProgress, uTimer;
new Objects_[2][MAX_SLOTS];
new pWeaponData[ALL_PLAYERS][13];
new pSavedAmmo[ALL_PLAYERS][13];
new Float:pCoords[ALL_PLAYERS][3];
new pInterior[ALL_PLAYERS];
new Iterator:_Minigamer<MAX_SLOTS>;
new Iterator:_Objects<MAX_SLOTS>;
new pReadyText[4][64] =
{
\"~n~ ~n~ ~n~ ~y~stand by...\",
\"~n~ ~n~ ~n~ ~y~get Ready!\",
\"~n~ ~n~ ~n~ ~y~are you ready?\",
\"~n~ ~n~ ~n~ ~y~ready to get wet?\"
};
new pFellOffText[5][28] =
{
\"~n~ ~r~hosed\",
\"~n~ ~r~all wet\",
\"~n~ ~r~no swimming\",
\"~n~ ~r~you\'re drowning!\",
\"~n~ ~r~water... baaad!\"
};
new Float:gCoords[MAX_SLOTS][3] =
{      
{ -5309.198120,-199.052383,22.593704 },
{ -5309.198120,-195.786071,22.593704 },
{ -5309.198120,-192.510620,22.593704 },
{ -5309.198120,-189.250564,22.593704 },
{ -5309.198120,-185.987960,22.593704 },
{ -5309.198120,-182.727081,22.593704 },
{ -5309.198120,-179.463394,22.593704 },
{ -5309.198120,-176.205261,22.593704 },
{ -5304.841796,-176.205261,22.593704 },
{ -5304.841796,-179.468795,22.593704 },
{ -5304.841796,-182.737884,22.593704 },
{ -5304.841796,-185.989654,22.593704 },
{ -5304.841796,-189.259185,22.593704 },
{ -5304.841796,-192.518615,22.593704 },
{ -5304.841796,-195.785491,22.593704 },
{ -5304.841796,-199.054733,22.593704 },
{ -5300.489990,-199.054733,22.593704 },
{ -5300.489990,-195.782165,22.593704 },
{ -5300.489990,-192.531250,22.593704 },
{ -5300.489990,-189.274765,22.593704 },
{ -5300.489990,-186.003005,22.593704 },
{ -5300.489990,-182.735229,22.593704 },
{ -5300.489990,-179.471069,22.593704 },
{ -5300.489990,-176.208007,22.593704 },
{ -5296.138061,-176.208007,22.593704 },
{ -5296.138061,-179.479248,22.593704 },
{ -5296.138061,-182.744735,22.593704 },
{ -5296.138061,-186.002944,22.593704 },
{ -5296.138061,-189.274505,22.593704 },
{ -5296.138061,-192.533691,22.593704 },
{ -5296.138061,-195.788970,22.593704 },
{ -5296.138061,-199.048782,22.593704 },
{ -5291.776000,-199.050140,22.593704 },
{ -5291.776000,-195.790634,22.593704 },
{ -5291.776000,-192.542922,22.593704 },
{ -5291.776000,-189.277542,22.593704 },
{ -5291.776000,-186.013275,22.593704 },
{ -5291.776000,-182.742355,22.593704 },
{ -5291.776000,-179.475021,22.593704 },
{ -5291.776000,-176.215805,22.593704 },
{ -5287.432250,-176.215805,22.593704 },
{ -5287.432250,-179.485168,22.593704 },
{ -5287.432250,-182.739608,22.593704 },
{ -5287.432250,-186.016723,22.593704 },
{ -5287.432250,-189.277816,22.593704 },
{ -5287.432250,-192.539001,22.593704 },
{ -5287.432250,-195.796325,22.593704 },
{ -5287.432250,-199.053771,22.593704 },
{ -5287.431274,-202.320648,22.593704 },
{ -5291.781616,-202.320648,22.593704 },
{ -5296.136718,-202.320648,22.593704 },
{ -5300.493652,-202.320648,22.593704 },
{ -5304.848876,-202.320648,22.593704 },
{ -5309.201660,-202.320648,22.593704 }
};
public OnFilterScriptInit( )
{
return 1;
}
public OnFilterScriptExit( )
{
if( inProgress > 0 ) EndMinigame( );
return 1;
}
public OnPlayerDisconnect( playerid, reason )
{
new str[128];
if( Minigamer_{ playerid } == true )
{
if( inProgress > 1 )
{
   format( str, sizeof( str ), \"* %s \"COL_RULE\"has dropped out of \"COL_ORANGE\"Don\'t Get Wet\"COL_RULE\" minigame, \"COL_LIME\"rank %d\", PlayerName( playerid ), Iter_Count(_Minigamer) );
   SendClientMessageToAll( LIME, str );
   Iter_Remove(_Minigamer, playerid );
   Minigamer_{ playerid } = false;
   if( Iter_Count(_Minigamer) < 2 )
   {
      foreach(_Minigamer, i ) MinigameWinner( i );
   }
}
else
{
   Iter_Remove(_Minigamer, playerid );
   Minigamer_{ playerid } = false;
}
}
return 1;
}
public OnPlayerDeath( playerid, killerid, reason )
{
new str[128];
if( Minigamer_{ playerid } == true )
{
if( inProgress > 1 )
{
   format( str, sizeof( str ), \"* %s \"COL_RULE\"has dropped out of \"COL_ORANGE\"Don\'t Get Wet\"COL_RULE\" minigame, \"COL_LIME\"rank %d\", PlayerName( playerid ), Iter_Count(_Minigamer) );
   SendClientMessageToAll( LIME, str );
   Iter_Remove(_Minigamer, playerid );
   Minigamer_{ playerid } = false;
   if( Iter_Count(_Minigamer) < 2 )
   {
      foreach(_Minigamer, i ) MinigameWinner( i );
   }
}
else
{
   SendClientMessage( playerid, LIME, \"Your sign up for \"COL_ORANGE\"Don\'t Get Wet\"COL_LIME\" minigame has been cancelled.\" );
   Iter_Remove(_Minigamer, playerid );
   Minigamer_{ playerid } = false;
}
}
return 1;
}
CMD:getwet( playerid, params[] )
{
if( GetPlayerState( playerid ) == PLAYER_STATE_WASTED )
      return SendClientMessage( playerid, LIME, \"Command is temporary disabled because you\'re wasted.\" );
else if( Minigamer_{ playerid } != false )
      return SendClientMessage( playerid, LIME, \"You have already signed up for \"COL_ORANGE\"Don\'t Get Wet\"COL_LIME\" minigame.\" );
else if( inProgress > 1 )
      return SendClientMessage( playerid, ORANGE, \"Don\'t Get Wet \"COL_LIME\"minigame is currently in progress, please wait.\" );
else if( Iter_Count(_Minigamer) > MAX_SLOTS-1 )
      return SendClientMessage( playerid, ORANGE,\"Don\'t Get Wet \"COL_LIME\"minigame is already full. Please wait untill it ends.\" );
if( inProgress < 1 )
{
if( strcmp( params, \"1\", true ) == 0 )
   VIEW_FROM_ABOVE = true;
else if( strcmp( params, \"2\", true ) == 0 )
   VIEW_FROM_ABOVE = false;
else return SendClientMessage( playerid, WHITE, \"Use: /getwet [1 or 2]\" );
new str[128];
Minigamer_{ playerid } = true;
Iter_Add(_Minigamer, playerid );
format( str, sizeof( str ), \"Don\'t Get Wet v.%i.0 \"COL_RULE\"minigame will start in 20 seconds. Type \"COL_ORANGE\"/getwet \"COL_RULE\"to join!\", strval(params) );
SendClientMessageToAll( ORANGE, str );
SetTimer( \"MinigameCountdown\", 20000, 0 );
for( new i; i < MAX_SLOTS; i++ )
{
   //The object (window) is only visible from one side
   Objects_[0] = CreateObject( 1649, gCoords[0], gCoords[1], gCoords[2], -90.000000, 0.000000, 0.000000, 150.0 );
   if(!VIEW_FROM_ABOVE) //In case /getwet 2, we need to multiply number of objects and turn them around so players would be able to see them from below
   Objects_[1] = CreateObject( 1649, gCoords[0], gCoords[1], gCoords[2], -270.000000, 0.000000, 0.000000, 150.0 );
   Iter_Add(_Objects, i );
}
inProgress = 1;
}
else
{
Minigamer_{ playerid } = true;
Iter_Add(_Minigamer, playerid );
SendClientMessage( playerid, RULE,\"You have signed up for \"COL_ORANGE\"Don\'t Get Wet \"COL_RULE\"minigame.\" );
}
return 1;
}
public MinigameCountdown( )
{
if( Iter_Count(_Minigamer) < 2 ) //End minigame if there aren\'t enough sign ups
{
SendClientMessageToAll( LIME,\"There wasn\'t enough players to start \"COL_ORANGE\"Don\'t Get Wet\"COL_LIME\" minigame.\" );
foreach(_Minigamer, i) Minigamer_{ i } = false;
return EndMinigame( );
}
if( inProgress != 2 )
{
new spot;
foreach(_Minigamer, i )
{
   GetPlayerPos( i, pCoords[0], pCoords[1], pCoords[2]);
   pInterior = GetPlayerInterior( i );
   for( new a; a < 13; a++ )
   {
      GetPlayerWeaponData( i, a, pWeaponData[a], pSavedAmmo[a] );
   }
   ResetPlayerWeapons( i );
   SetPlayerInterior( i, 0 );
   spot = Iter_Random(_Objects);
   GameTextForPlayer( i, pReadyText[ random( sizeof( pReadyText ) ) ], 2050, 3 );
   Iter_Remove(_Objects, spot );
   SetPlayerCameraPos( i, -5298.4814,-218.4391,42.1386);
   SetPlayerCameraLookAt( i, -5298.1616,-189.6903,23.6564);
   TogglePlayerControllable( i, false );
   SetPlayerPos( i, gCoords[spot][0], gCoords[spot][1], gCoords[spot][2] +0.5 );
}
Iter_Clear(_Objects);
for( new i; i < MAX_SLOTS; i++ ) Iter_Add(_Objects, i );
SetTimer( \"MinigameCountdown\", 2000, 0 );
inProgress = 2;
}
else
{
foreach(_Minigamer, i )
{
   if(!VIEW_FROM_ABOVE) SetCameraBehindPlayer( i );
   PlayerPlaySound( i, 1057, 0.0, 0.0, 0.0 );
   TogglePlayerControllable( i, true );
}
uTimer = SetTimer( \"MinigameUpdate\", 2500, 1 );
}
return 1;
}
public MinigameUpdate( )
{
if( Iter_Count(_Minigamer) < 1 ) return EndMinigame( );
   
new str[128], Float:playerx, Float:playery, Float:playerz[ALL_PLAYERS];
foreach(_Minigamer, i )
{
GetPlayerPos( i, playerx, playery, playerz );
if( playerz < 2.0 ) //Checks if player is in the water
{
   format( str, sizeof( str ), \"* %s \"COL_RULE\"has dropped out of \"COL_ORANGE\"Don\'t Get Wet\"COL_RULE\" minigame, \"COL_LIME\"rank %d\", PlayerName( i ), Iter_Count(_Minigamer) );
   SendClientMessageToAll( LIME, str );
   GameTextForPlayer( i, pFellOffText[ random( sizeof( pFellOffText ) ) ], 2500, 3 );
   Iter_Remove(_Minigamer, i );
   Minigamer_{ i } = false;
   RespawnPlayer( i );
}
}
if( Iter_Count(_Minigamer) < 2 )
{
foreach(_Minigamer, i ) MinigameWinner( i );
}
new objectid, Float:ObjectX, Float:ObjectY, Float:ObjectZ;
if(!VIEW_FROM_ABOVE)
{
foreach(_Objects, i )
{
   if( isodd( random( 10 ) ) )
   {
      GetObjectPos( Objects_[0], ObjectX, ObjectY, ObjectZ );
      MoveObject( Objects_[0], ObjectX, ObjectY, ObjectZ -1.5, 0.2 );
      MoveObject( Objects_[1], ObjectX, ObjectY, ObjectZ -1.5, 0.2 );
   }
   else
   {
      GetObjectPos( Objects_[0], ObjectX, ObjectY, ObjectZ );
      MoveObject( Objects_[0], ObjectX, ObjectY, ObjectZ +1.5, 0.2 );
      MoveObject( Objects_[1], ObjectX, ObjectY, ObjectZ +1.5, 0.2 );
   }
}
}
objectid = Iter_Random(_Objects);
GetObjectPos( Objects_[0][objectid], ObjectX, ObjectY, ObjectZ );
SetTimerEx(\"SpeedUp\", 500, 0, \"ifff\", objectid, ObjectX, ObjectY, ObjectZ);
MoveObject( Objects_[0][objectid], ObjectX, ObjectY, ObjectZ -5, 1 );
if(!VIEW_FROM_ABOVE)
MoveObject( Objects_[1][objectid], ObjectX, ObjectY, ObjectZ -5, 1 );
Iter_Remove(_Objects, objectid );
return 1;
}
public SpeedUp( object, Float:x, Float:y, Float:z )
{
MoveObject( Objects_[0][object], x, y, z -150, 20 );
if(!VIEW_FROM_ABOVE)
MoveObject( Objects_[1][object], x, y, z -150, 20 );
foreach(_Minigamer, i ) PlayerPlaySound( i, 1039, 0.0, 0.0, 0.0 );
}
public EndMinigame( )
{
for( new i; i < MAX_SLOTS; i++ )
{
DestroyObject( Objects_[0] );
if(!VIEW_FROM_ABOVE)
DestroyObject( Objects_[1] );
}
inProgress = 0;
Iter_Clear(_Objects);
Iter_Clear(_Minigamer);
KillTimer( uTimer );
return 1;
}
public MinigameWinner( player )
{
new str[128];
format( str, sizeof( str ), \"* %s \"COL_RULE\"has won \"COL_ORANGE\"Don\'t Get Wet \"COL_RULE\"minigame!\", PlayerName( player ) );
SendClientMessageToAll( LIME, str );
GivePlayerMoney( player, PRIZE_MONEY );
Minigamer_{ player } = false;
Iter_Remove(_Minigamer, player );
SetTimerEx( \"RespawnPlayer\", 1400, 0, \"i\", player );
SetTimer( \"EndMinigame\", 1700, 0);
}
public RespawnPlayer ( player )
{
for( new i = 12; i > -1; i-- )
{
GivePlayerWeapon( player, pWeaponData[player], pSavedAmmo[player] );
}
SetPlayerPos( player, pCoords[player][0], pCoords[player][1], pCoords[player][2] );
SetPlayerInterior( player, pInterior[player] );
SetCameraBehindPlayer( player );
}
stock PlayerName( playerid )
{
new Name[MAX_PLAYER_NAME];
GetPlayerName( playerid, Name, sizeof( Name ) );
return Name;
}

 
EDIT: Egy apró hiba javítva.
« Utoljára szerkesztve: 2012. december 14. - 16:36:07 írta ɐʞzssǝlosz »

Nem elérhető .:Secur:.

  • 2430
  • GTA Hero
    • Profil megtekintése
Don\'t get wet - napelemes minigame (solar) fallout
« Válasz #4 Dátum: 2012. december 13. - 22:35:03 »
0 Show voters
Hát semmi baja, valamit javítottál  :o

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal