Sziasztok.Bemutatom az eggyik scriptem ami ma készült el tegnap kezdtem el este.10percet dolgoztam rajta este ezért mára készült el.Játszottam a Counter Strike 1.6-al ott egy de_dust2_xmas pályán játszottunk és eszembe jutott hogy elõre kéne készülni a karácsonyra scripteléssel
hát el is készitettem itt van télapó az tud ajándékozni VIP-et és a playerek is tudnak egymásnak ajándékozni
remélem jól sikerült hibátlanul de lehet van valami hiba benne mert egyedül teszteltem és egyedül nem tudom észrevenni a hibát olyan jól
.Remélem tetszik.
VIP-nek még csak eggyetlen parancs van de azt ti úgyis bõvititek ha felhasználjátok.És még valami bele irtam a hóesés scriptet az nem az én munkám lusta adta azt a scriptet.1.1-s verzióba javitom az észrevett hibákat meg teszek bele dialogos ajándékokat amit a télapó ad másoknak
Pawno:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <dini>
#include <streamer>
new szFile[ 40 + 1 ];
#define COLOR_RED 0xff0000AA
#define MAX_SLOTS 30
#define MAX_SNOW_OBJECTS 20
#define UPDATE_INTERVAL 750
#if MAX_SLOTS == -1
#error Change MAX_SLOTS to the max players of your server! (At line 6)
#endif
#define ploop(%0) for(new %0 = 0; %0 < MAX_SLOTS; %0++) if(IsPlayerConnected(%0))
#define CB:%0(%1) forward %0(%1); public %0(%1)
new bool:snowOn[MAX_SLOTS char],
snowObject[MAX_SLOTS][MAX_SNOW_OBJECTS],
updateTimer[MAX_SLOTS char]
;
public OnFilterScriptExit()
{
ploop(i)
{
if(snowOn{i})
{
for(new j = 0; j < MAX_SNOW_OBJECTS; j++) DestroyDynamicObject(snowObject[j]);
KillTimer(updateTimer{i});
}
}
return 1;
}
public OnPlayerConnect( playerid )
{
format( szFile, sizeof( szFile ), \"VIP/%s.ini\", szName( playerid ) );
{
if( dini_Exists( szFile ) )
{
SetPVarInt( playerid, \"iVIP\", dini_Int( szFile, \"VIP\" ) );
}
else
{
SetPVarInt( playerid, \"iVIP\", 0 );
dini_Create( szFile );
}
}
format( szFile, sizeof( szFile ), \"VIP/%s.ini\", szName( playerid ) );
{
if( dini_Exists( szFile ) )
{
SetPVarInt( playerid, \"iTelapo\", dini_Int( szFile, \"Telapo\" ) );
}
else
{
SetPVarInt( playerid, \"iTelapo\", 0 );
dini_Create( szFile );
}
}
return 1;
}
public OnPlayerDisconnect(playerid)
{
if(snowOn{playerid})
{
for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid]);
snowOn{playerid} = false;
KillTimer(updateTimer{playerid});
}
format( szFile, sizeof( szFile ), \"VIP/%s.ini\", szName( playerid ) );
{
dini_IntSet( szFile, \"VIP\", GetPVarInt( playerid, \"VIP\" ) );
}
format( szFile, sizeof( szFile ), \"VIP/%s.ini\", szName( playerid ) );
{
dini_IntSet( szFile, \"VIP\", GetPVarInt( playerid, \"iTelapo\" ) );
}
return 1;
}
new ajandek[MAX_PLAYERS];
new kotszer[MAX_PLAYERS];
CMD:ajandekvesz(playerid,params[])
{
if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, -1, \"Nincs elég pénzed!\");
SendClientMessage(playerid,COLOR_RED,\"Te vettél egy ajándék dobozt\");
ajandek[playerid]++;
GivePlayerMoney(playerid,5000);
return 1;
}
CMD:ajandekoz( playerid, params[] )
{
new iPlayer;
if(ajandek[playerid] == 0) return SendClientMessage(playerid,COLOR_RED,\"Nincs ajándék dobozod!\");
if( sscanf( params, \"ui\", iPlayer) ) return SendClientMessage( playerid, 0xFF0000AA, \"Használat: /ajandekoz [iD/Név]\" );
if( iPlayer == INVALID_PLAYER_ID ) return SendClientMessage( playerid, 0xFF0000AA, \"HIBA: Érvénytelen ID/Név.\" );
SendClientMessage(playerid,COLOR_RED,\"Ajándékoztál ez szép dolog\");
ajandek[playerid]--;
ajandek[iPlayer]++;
SendClientMessage(iPlayer,COLOR_RED,\"Te kaptál egy ajándékot de titok hogy kitõl\");
return 1;
}
stock szName( playerid )
{
static s_szName[ MAX_PLAYER_NAME + 1 ];
GetPlayerName( playerid, s_szName, MAX_PLAYER_NAME );
return s_szName;
}
CMD:telapoajandekoz( playerid, params[] )
{
if( GetPVarInt( playerid, \"iTelapo\" ) == 1 || IsPlayerAdmin( playerid ) )return SendClientMessage(playerid,COLOR_RED,\"Nem vagy télapó\");
new iPlayer,
iVIP;
if( sscanf( params, \"ui\", iPlayer, iVIP ) ) return SendClientMessage( playerid, 0xFF0000AA, \"Használat: /setrank <Játékos ID/Név> <Szint>\" );
if( iPlayer == INVALID_PLAYER_ID ) return SendClientMessage( playerid, 0xFF0000AA, \"HIBA: Érvénytelen ID/Név.\" );
if( ( 0 < iVIP > 3 ) ) return SendClientMessage( playerid, 0xFF0000AA, \"HIBA: A szint csak 0-3 között lehet.\" );
SetPVarInt( iPlayer, \"iVIP\", iVIP );
SendClientMessage(iPlayer,COLOR_RED,\"Te neked a télapó ajándékozott egy VIP-et\");
return 1;
}
CMD:telapo( playerid, params[] )
{
if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,COLOR_RED,\"Nem vagy rcon\");
{
new iPlayer,
iTelapo;
if( sscanf( params, \"ui\", iPlayer, iTelapo ) ) return SendClientMessage( playerid, 0xFF0000AA, \"Használat: /telapo <Játékos ID/Név> <Szint>\" );
if( iPlayer == INVALID_PLAYER_ID ) return SendClientMessage( playerid, 0xFF0000AA, \"HIBA: Érvénytelen ID/Név.\" );
if( ( 0 < iTelapo > 3 ) ) return SendClientMessage( playerid, 0xFF0000AA, \"HIBA: A szint csak 0-3 között lehet.\" );
SetPVarInt( iPlayer, \"iTelapo\", iTelapo );
}
return 1;
}
CMD:kinyit(playerid,params[])
{
if(ajandek[playerid] == 0) return SendClientMessage(playerid,COLOR_RED,\"Nincs ajándék dobozod\");
{
switch(random(5))
{
case 0:
{
SendClientMessage(playerid,COLOR_RED,\"5000Ft volt a csomagban\");
GivePlayerMoney(playerid,5000);
ajandek[playerid]--;
}
case 1:
{
SendClientMessage(playerid,COLOR_RED,\"Sawnoff Shotgun 500 volt a csomagban 500 tölténnyel\");
GivePlayerWeapon(playerid,26,5000);
ajandek[playerid]--;
}
case 2:
{
SendClientMessage(playerid,COLOR_RED,\"Egy vibrátor volt a csomagban jó szórakozást vele\");
GivePlayerWeapon(playerid,12,5000);
ajandek[playerid]--;
}
case 3:
{
SendClientMessage(playerid,COLOR_RED,\"Egy fényképezõ gép volt a csomagban turázásra jó lessz \");
GivePlayerWeapon(playerid,43,5000);
ajandek[playerid]--;
}
case 4:
{
SendClientMessage(playerid,COLOR_RED,\"Egy csomag kötszer volt a csomagban ez még bármikor jól jöhet\");
kotszer[playerid]++;
}
}
}
return 1;
}
CMD:gyogyit(playerid,params[])
{
if(kotszer[playerid] == 0) return SendClientMessage(playerid,-1,\"Nincs kötszered!\");
SendClientMessage(playerid,COLOR_RED,\"Rendben mostmár nem vagy megsérülve\");
SetPlayerHealth(playerid,100);
return 1;
}
CMD:ajandekok(playerid,params[])
{
new cstr[MAX_PLAYERS];
format(cstr,sizeof(cstr),\"Ajándék: %d/db\",ajandek[playerid]);
SendClientMessage(playerid,COLOR_RED,cstr);
return 1;
}
CMD:money(playerid,params[])
{
GivePlayerMoney(playerid,100000);
return 1;
}
CB:UpdateSnow(playerid)
{
if(!snowOn{playerid}) return 0;
new Float:pPos[3];
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
for(new i = 0; i < MAX_SNOW_OBJECTS; i++) SetDynamicObjectPos(snowObject[playerid], pPos[0] + random(25), pPos[1] + random(25), pPos[2] - 5);
return 1;
}
stock CreateSnow(playerid)
{
if(snowOn{playerid}) return 0;
new Float:pPos[3];
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
for(new i = 0; i < MAX_SNOW_OBJECTS; i++) snowObject[playerid] = CreateDynamicObject(18864, pPos[0] + random(25), pPos[1] + random (25), pPos[2] - 5, random(100), random(100), random(100), -1, -1, playerid);
snowOn{playerid} = true;
updateTimer{playerid} = SetTimerEx(\"UpdateSnow\", UPDATE_INTERVAL, true, \"i\", playerid);
return 1;
}
stock DeleteSnow(playerid)
{
if(!snowOn{playerid}) return 0;
for(new i = 0; i < MAX_SNOW_OBJECTS; i++) DestroyDynamicObject(snowObject[playerid]);
KillTimer(updateTimer{playerid});
snowOn{playerid} = false;
return 1;
}
CMD:hoeses(playerid, params[])
{
if(snowOn{playerid})
{
DeleteSnow(playerid);
SendClientMessage(playerid, 0x00FF00AA, \"* Hóesést leállítottad!\");
}
else
{
CreateSnow(playerid);
SendClientMessage(playerid, 0x00FF00AA, \"Hóesés elindítva! Boldog karácsonyt és kellemes ünnepeket! \");
}
return 1;
}
CMD:allhoeses(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
ploop(i)
{
if(snowOn{i}) continue;
CreateSnow(i);
}
return 1;
}
CMD:allsnowoff(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
ploop(i)
{
if(!snowOn{i}) continue;
DeleteSnow(i);
}
return 1;
}
CMD:heal(playerid,params[])
{
if(1 <= GetPVarInt( playerid, \"iVIP\" ) <= 3)return SendClientMessage(playerid,COLOR_RED,\"Nem vagy VIP\");
{
SetPlayerHealth(playerid,100);
SendClientMessage(playerid,COLOR_RED,\"Feltöltötted az életed\");
}
return 1;
}