GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: zumzum1 - 2014. október 29. - 22:02:32

Cím: Tűz Random.!
Írta: zumzum1 - 2014. október 29. - 22:02:32
Ahogy a Témából értendő :D Adott helyen [Oltható] Tűz csap fel !
Esetleg egy példát ha tudna valaki. Előre is köszönöm.!
[gmod]Vastag, dőlt, glow taggel ellátott lóbetűk eltávolítva. Látjuk anélkül is![/gmod]
Cím: Tűz Random.!
Írta: PeterBlue - 2014. október 30. - 21:41:40
Vízzel oltható tüzet nem tudsz rakni, hogy rendesen szinkronizálódjon. Csak a közelben levők fogják látni. A random hely meg nem megoldható, max. több, meghatározott helyen lehetséges. Ha el akarod érni, hogy mindneki lássa a tüzet, azt egy objecttel lehet, azt viszont nem lehet oltani, ma.x törölni vagy mozgatni.
Cím: Tűz Random.!
Írta: Dfoglalo - 2014. október 30. - 22:02:28
Idézetet írta: PeterBlue date=1414701700\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51225\" data-ipsquote-contentclass=\"forums_Topic
A random hely meg nem megoldható, max. több, meghatározott helyen lehetséges.
 
Tévedés, a random hely megoldható. Sőt, azt is be lehet programozni, hogy a tengerre ne tegyen véletlenül se. Egyedül a mapolt dolgoknál nem fog működni a random hely és ott az alap mapot fogja nézni. De ha érted a dolgod, fáradtságos munkával a mapolásra is megalkotható, de felesleges azzal szívni.


A tüzet pedig valóban, csak az fogja eloltottnak látni, aki a közelben van, másnál ugyanúgy égni fog, ha oda megy. Azért sem nagyon van tűzoltó szkript elterjedve, mert nem, vagy nagyon nehezen megoldható.
Cím: Tűz Random.!
Írta: Fred[HUN] - 2014. október 30. - 22:42:45
Valahol, egy szerveren melynek F-el kezdődik a neve azon megvan oldva ez a random tűz és oltható :) és hibátlan
Cím: Tűz Random.!
Írta: Dfoglalo - 2014. október 30. - 22:52:50
Nem mondtam, hogy lehetetlen. Valamiféle kis \"nagyjábólságot\" létre lehet hozni, de a tökéletes megoldására már azt mondom, hogy lehetetlen.
Cím: Tűz Random.!
Írta: norbinator09 - 2014. október 31. - 11:06:07
Hát szerintem úgy meg lehet oldani hogy lerakod az objectet(vagy eg olyan ami lángol csak nemtom az ID-jét), és ha valaki a köszelében van és va  tűzoltó készüléke, akkor amikor használja a készüléket
 

if(GetPlayerWeapon(playerid) == WEAPON_FIREEXTINGUISHER && newkeys == KEY_FIRE)

 
Akkor lerak egy olyan hát nemis tudom mi a neve, de a házak oldalán szokott lenni(és jön belőle a füst), na azt lerakod a földBE úgy hogy csak a füst látszódjon(mert a füst az IstenKirályVilágCsászár és átmegy a földön) és 1kis idő múlva eltűnteted a 2 objectet.
Hát kb. így képzelném el(ha megtalálom az objectet akkor megírom)
Cím: Tűz Random.!
Írta: PeterBlue - 2014. október 31. - 11:47:56
Nem rossz ötlet, ez eszembe sem jutott :D
Dfoglalo: Aztazthogykő\'?
Cím: Tűz Random.!
Írta: .random. - 2014. október 31. - 21:19:07
(Unalom nagy úr...)

Ezt összedobtam X perc alatt, nem teszteltem(Szóval lehet egy nagy adag ***** az egész), mert nem indul el a San Andreas (By 64mb-os integrált vidikari), de ha valaki ért hozzá az megcsinálja bugmentesere  :)

 

#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#define MAX_FIRELOCATION 2
forward RandomFire(playerid);
forward FireEx(playerid);
new Float:CurrentFireX, Float:CurrentFireY, Float:CurrentFireZ;
new FireObj[5],
FireTimer;
new Float:FireLocation [MAX_FIRELOCATION][3] = // A \'MAX_FIRELOCATION\' -t állítsd annyira a #define -nél ahány tűz koordinátát megadsz!!
{
{0.0,0.0,2.0},//X,Y,Z
{40.0,0.0,2.0}
};
new ExtingFire[MAX_PLAYERS];
new FireExTimer[MAX_PLAYERS];
new FireCP[MAX_PLAYERS];
public OnFilterScriptInit()
{
print(\"=======[FilterScript Started]=======\");
print(\"Random+Oltható Tűz FilterScript betöltve! by. .RäNĐoM.\");
FireTimer = SetTimer(\"RandomFire\",5*60000,true);//Five minutes
return 1;
}
public OnFilterScriptExit()
{
print(\"=======[FilterScript Exit]=======\");
print(\"Random+Oltható Tűz FilterScript leállt! by. .RäNĐoM.\");
KillTimer(FireTimer);
return 1;
}
public OnPlayerConnect(playerid)
{
ExtingFire[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
ExtingFire[playerid] = 0;
KillTimer(FireExTimer[playerid]);
DisablePlayerCheckpoint(FireCP[playerid]);
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((oldkeys & KEY_FIRE) &&! (newkeys && KEY_FIRE))
{
       if(IsPlayerInRangeOfPoint(playerid, 10.0, CurrentFireX, CurrentFireY, CurrentFireZ) && GetPlayerWeapon(playerid) == WEAPON_FIREEXTINGUISHER)
{
   FireExTimer[playerid] = SetTimerEx(\"FireEx\",60000,false,\"i\",playerid);
   for(new i; i > GetMaxPlayers(); i++) { if(!IsPlayerConnected(i)) continue; if(ExtingFire == 1) return SendClientMessage(playerid,-1,\"{FF0000}Valaki már elkezdte oltani a tüzet!\"),KillTimer(FireExTimer[playerid]),0; }
   ExtingFire[playerid] = 1;
   SendClientMessage(playerid,-1,\"{FF0000}Elkezdted oltani a tüzet!! min. 1 percig kell {FFFFFF}FOLYAMATOSAN {FF0000}oltani, hogy teljesen elaludjon!\");
   DisablePlayerCheckpoint(FireCP[playerid]);
}
}
else
{
if(ExtingFire[playerid] == 1)
{
KillTimer(FireExTimer[playerid]);
ExtingFire[playerid] = 0;
SendClientMessage(playerid,-1,\"{FF0000}Abbahagytad a tűz oltását!\");
}
}
return 1;
}
public RandomFire(playerid)
{
new rand = random(MAX_FIRELOCATION);
FireObj[0] = CreateObject(18688,FireLocation[rand][0],FireLocation[rand][1],FireLocation[rand][2],0.0,0.0,0.0);
FireObj[1] = CreateObject(18688,FireLocation[rand][0]+1,FireLocation[rand][1]+1,FireLocation[rand][2],0.0,0.0,0.0);
FireObj[2] = CreateObject(18688,FireLocation[rand][0]-1,FireLocation[rand][1]-1,FireLocation[rand][2],0.0,0.0,0.0);
FireObj[3] = CreateObject(18688,FireLocation[rand][0]+2,FireLocation[rand][1]+2,FireLocation[rand][2],0.0,0.0,0.0);
FireObj[4] = CreateObject(18688,FireLocation[rand][0]-2,FireLocation[rand][1]-2,FireLocation[rand][2],0.0,0.0,0.0);
CurrentFireX = FireLocation[rand][0];
CurrentFireY = FireLocation[rand][1];
CurrentFireZ = FireLocation[rand][2];
SendClientMessageToAll(-1,\"{FF0000}Kigyúlladt egy tűz!! A pontos helyét láthatod a radaron!! Szerezzél egy poroltót! (/porolto) Ha te oltod el 5000 $ -t kapsz!\");
FireCP[playerid] = SetPlayerCheckpoint(playerid, CurrentFireX, CurrentFireY, CurrentFireZ, 3.0);
return 1;
}
public FireEx(playerid)
{
for(new i = 0; i < 6; i++) { DestroyObject(FireObj); }
GivePlayerMoney(playerid,5000);
ExtingFire[playerid] = 0;
DisablePlayerCheckpoint(FireCP[playerid]);
SendClientMessage(playerid,-1,\"Gratulálok! Sikeresen eloltottad a tüzet!\");
return 1;
}
CMD:porolto(playerid)
{
GivePlayerWeapon(playerid,WEAPON_FIREEXTINGUISHER,10000);
SendClientMessage(playerid,-1,\"{FF0000}Kaptál egy poroltót! Irány a tűz!!\");
return 1;
}

 


Még mielőtt valamelyik IQ fighter ellopná elárulom, hogy nem illik és nem érdemes  ::|