Wysłany: 2015-01-03, 13:16
fensz
Wiek: 44 Na forum: 6025 dni Posty: 25
Nick w MP: Rick_Ross
Witajcie,
Tworzac serwer bazuje na gotowym skrypcie, w kt?rym aby przej?? stref? nale?y wej?? w czerwony checkpoint.
Jak zamieni? go w pickupa (np czaszk?).
Kod (wybaczcie, ze caly, jednak nie wiedzialem co doda?):
Kod: //--- cap zones ///
forward ZoneTimer(playerid);
public ZoneTimer(playerid)
{
foreach (Zones, i) if (UnderAttack[i] && zonetimer[i])
{
zonetimer[i]--;
foreach (Player, j)
{
if (CapturingZone[j] == i)
{
SetPlayerProgressBarValue(j, capturebar[j], 25 - zonetimer[i]);
UpdatePlayerProgressBar(j, capturebar[j]);
}
}
if (!zonetimer[i]) CAPZONECaptured(i);
}
return 1;
}
forward OnPlayerEnterDynamicCP(playerid, checkpointid);
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
foreach (Zones, i) if (checkpointid == CP[i])
{
if(gTeam[playerid] == M) return SCM(playerid, COLOR_RED, "*Samotnik nie moze przejmowac lokacji");
if (checkpointid != CP[i]) continue;
if (tCP[i] == gTeam[playerid]) return SCM(playerid, COLOR_RED,"*Ta strefa jest aktualnie przejeta przez Twoj team!");
ActiveCAPZONE(playerid, i);
}
return 1;
}
forward OnPlayerLeaveDynamicCP(playerid, checkpointid);
public OnPlayerLeaveDynamicCP(playerid, checkpointid)
{
foreach (Zones, i)
{
if (checkpointid != CP[i]) continue;
if (CapturingZone[playerid] == i && !IsPlayerInDynamicCP(playerid, CP[i])) LeavingCAPZONE(playerid, i);
}
return 1;
}
stock ActiveCAPZONE(playerid, zoneid)
{
if (IsPlayerInAnyVehicle(playerid)) return SCM(playerid, COLOR_RED,"Nie mozesz przejmowac bedac w pojezdzie!");
if (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING) return SCM(playerid, COLOR_RED, "You can't capture while spectating!");
new cnt = GetCapturersCount(zoneid);
if(gTeam[playerid] == USA) GangZoneFlashForAll(Zone[zoneid], USA_GZ_COLOR);
else if(gTeam[playerid] == RF) GangZoneFlashForAll(Zone[zoneid], RF_GZ_COLOR);
else if(gTeam[playerid] == AI) GangZoneFlashForAll(Zone[zoneid], AI_GZ_COLOR);
else if(gTeam[playerid] == IU) GangZoneFlashForAll(Zone[zoneid], IU_GZ_COLOR);
else if(gTeam[playerid] == EA) GangZoneFlashForAll(Zone[zoneid], EA_GZ_COLOR);
else if(gTeam[playerid] == AA) GangZoneFlashForAll(Zone[zoneid], AA_GZ_COLOR);
format(gString, SOS, "*%s przejmuje teraz %s!", GetName(playerid), ZoneInfo[zoneid][namee]);
SendClientMessageToAll(GREEN, gString);
switch (cnt)
{
case 0:
{
UnderAttack[zoneid] = true;
CapturingZone[playerid] = zoneid;
capturingteam[zoneid] = gTeam[playerid];
zonetimer[zoneid] = 25;
SCM(playerid, COLOR_WHITE,"Zostan tutaj przez 25 sekund aby przejac lokacje.");
// else if(gTeam[playerid] == LG) GangZoneFlashForAll(Zone[zoneid], LG_GZ_COLOR);
// else if(gTeam[playerid] == GW) GangZoneFlashForAll(Zone[zoneid], GW_GZ_COLOR);
/* switch (tCP[zoneid])
{
case TEAM1:
{
SendClientMessage(playerid, COLOR_WHITE,"This flag is controlled by team 1!");
SendClientMessageToAll(STEALTH_BLUE,"*Capture Zone is under attack!");
}
case TEAM2:
{
SendClientMessage(playerid, COLOR_WHITE,"This flag is controlled by team 2!");
SendClientMessageToAll(STEALTH_BLUE,"*Capture Zone is under attack!");
}
case NONE: SendClientMessage(playerid, COLOR_WHITE,"This flag is not controlled by any team!");
}*/
ShowPlayerProgressBar(playerid, capturebar[playerid]);
SetPlayerProgressBarValue(playerid, capturebar[playerid], 0);
UpdatePlayerProgressBar(playerid, capturebar[playerid]);
}
case 1 .. 4:
{
new string[128];
format(string, sizeof(string), "%s przejmuje teraz %s!", GetName(playerid), ZoneInfo[zoneid][namee]);
foreach (Player, i)
{
if (i == playerid) continue;
if (CapturingZone[i] != zoneid) continue;
if (gTeam[i] == capturingteam[zoneid]) continue;
SCM(i, -1, string);
}
if (capturingteam[zoneid] != gTeam[playerid]) return SCM(playerid, COLOR_RED, "To nie Twoj team teraz przejmuje te lokacje!");
CapturingZone[playerid] = zoneid;
SCM(playerid, COLOR_WHITE, "Dolaczyles do przejmowania lokacji.");
ShowPlayerProgressBar(playerid, capturebar[playerid]);
SetPlayerProgressBarValue(playerid, capturebar[playerid], zonetimer[zoneid]);
UpdatePlayerProgressBar(playerid, capturebar[playerid]);
switch (cnt)
{
case 1: zonetimer[zoneid] = zonetimer[zoneid] / 2;
case 2: zonetimer[zoneid] = (zonetimer[zoneid] / 3) * 2;
case 3: zonetimer[zoneid] = (zonetimer[zoneid] / 4) * 3;
case 4: zonetimer[zoneid] = (zonetimer[zoneid] / 5) * 4;
}
}
default: return SCM(playerid, COLOR_RED, "5 osob aktualnie przejmuje te lokacje!");
}
return 1;
}
stock CAPZONECaptured(zoneid)
{
UnderAttack[zoneid] = false;
zonetimer[zoneid] = 0;
tCP[zoneid] = capturingteam[zoneid];
GangZoneStopFlashForAll(Zone[zoneid]);
switch (capturingteam[zoneid])
{
case USA: GangZoneShowForAll(Zone[zoneid], USA_GZ_COLOR);
case RF: GangZoneShowForAll(Zone[zoneid], RF_GZ_COLOR);
case AI: GangZoneShowForAll(Zone[zoneid], AI_GZ_COLOR);
case IU: GangZoneShowForAll(Zone[zoneid], IU_GZ_COLOR);
case EA: GangZoneShowForAll(Zone[zoneid], EA_GZ_COLOR);
case AA: GangZoneShowForAll(Zone[zoneid], AA_GZ_COLOR);
// case LG: GangZoneShowForAll(Zone[zoneid], LG_GZ_COLOR);
// case GW: GangZoneShowForAll(Zone[zoneid], GW_GZ_COLOR);
}
//gTeam[playerid] = CapturingZone[i];
format(gString, SOS, "%s zostalo przejete!",ZoneInfo[zoneid][namee]);
SendBoxMessage(-1, gString);
foreach (Player, i)
{
if (CapturingZone[i] == zoneid)
{
SendClientMessage(i, COLOR_GREEN,"Przejales te lokacje! Dostajesz +5 EXP oraz 2000$!");
GivePlayerScore(i, 5);
GivePlayerMoney(i, 2000);
CapturingZone[i] = -1;
HidePlayerProgressBar(i, capturebar[i]);
}
}
return 1;
}
stock LeavingCAPZONE(playerid, zoneid)
{
CapturingZone[playerid] = -1;
new cnt = GetCapturersCount(zoneid);
switch (cnt)
{
case 0:
{
UnderAttack[zoneid] = false;
GangZoneStopFlashForAll(Zone[zoneid]);
SendClientMessage(playerid, COLOR_RED,"*Nie udalo Ci sie podbic lokacji!");
zonetimer[zoneid] = 0;
}
case 1 .. 4:
{
SCM(playerid, COLOR_RED, "Opusciles lokacje!");
switch (cnt)
{
case 1: zonetimer[zoneid] = zonetimer[zoneid] * 2;
case 2: zonetimer[zoneid] = (zonetimer[zoneid] * 3) / 2;
case 3: zonetimer[zoneid] = (zonetimer[zoneid] * 4) / 3;
case 4: zonetimer[zoneid] = (zonetimer[zoneid] * 5) / 4;
}
}
}
CapturingZone[playerid] = -1;
HidePlayerProgressBar(playerid, capturebar[playerid]);
return 1;
}
Wysłany: 2015-01-03, 16:06
DeOrro
Wiek: 31 Na forum: 4264 dni Posty: 19
Nick w MP: Uknown
Piwa : 185
Wprowadz id tego obiektu i postaw go na miejscu czerwonego znaku
Wysłany: 2015-01-03, 16:09
fensz
Wiek: 44 Na forum: 6025 dni Posty: 25
Nick w MP: Rick_Ross
"DeOrro" napisał/a :Wprowadz id tego obiektu i postaw go na miejscu czerwonego znaku
To nie takie proste, pickupy umieszcza sie inaczej niz checkpointy
Wysłany: 2015-01-03, 16:32
NoTa
Wiek: 31 Na forum: 5187 dni Posty: 121
Piwa : 2
jak masz zdefiniowane "CP" ?
Wysłany: 2015-01-03, 16:37
fensz
Wiek: 44 Na forum: 6025 dni Posty: 25
Nick w MP: Rick_Ross
"NoTa" napisał/a :jak masz zdefiniowane "CP" ?
Kod: CreateObjects();
for (new i; i < sizeof(ZoneInfo); i++)
{
if (floatcmp(ZoneInfo[i][minPos][0], 0))
{
Iter_Add(Zones, i);
tCP[i] = NONE;
UnderAttack[i] = false;
Zone[i] = GangZoneCreate(ZoneInfo[i][minPos][0], ZoneInfo[i][minPos][1], ZoneInfo[i][maxPos][0], ZoneInfo[i][maxPos][1]);
CP[i] = CreateDynamicCP(ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], 5, -1, -1, -1, 100.0);
}
}
Wysłany: 2015-01-03, 16:47
NoTa
Wiek: 31 Na forum: 5187 dni Posty: 121
Piwa : 2
nie wiem jakich stremer?w u?ywasz ale zamiast
Kod:
daj
Kod:
Wysłany: 2015-01-03, 16:55
fensz
Wiek: 44 Na forum: 6025 dni Posty: 25
Nick w MP: Rick_Ross
Z tego kodu:
Kod: CreateObjects();
for (new i; i < sizeof(ZoneInfo); i++)
{
if (floatcmp(ZoneInfo[i][minPos][0], 0))
{
Iter_Add(Zones, i);
tCP[i] = NONE;
UnderAttack[i] = false;
Zone[i] = GangZoneCreate(ZoneInfo[i][minPos][0], ZoneInfo[i][minPos][1], ZoneInfo[i][maxPos][0], ZoneInfo[i][maxPos][1]);
//CP[i] = CreateDynamicCP(ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], 5, -1, -1, -1, 100.0);
CP[i] - CreateDynamicPickup(1313, 1, ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], -1, -1, -1, 100.0);
}
}
Wyszed? b??d:
Kod: (2029) : warning 215: expression has no effect
Wysłany: 2015-01-03, 17:00
NoTa
Wiek: 31 Na forum: 5187 dni Posty: 121
Piwa : 2
Wysłany: 2015-01-03, 17:18
fensz
Wiek: 44 Na forum: 6025 dni Posty: 25
Nick w MP: Rick_Ross
"NoTa" napisał/a :
Ok ok, ale co? dalej jest nie tak.
Kod: for (new i; i < sizeof(ZoneInfo); i++)
{
if (floatcmp(ZoneInfo[i][minPos][0], 0))
{
Iter_Add(Zones, i);
tCP[i] = NONE;
UnderAttack[i] = false;
Zone[i] = GangZoneCreate(ZoneInfo[i][minPos][0], ZoneInfo[i][minPos][1], ZoneInfo[i][maxPos][0], ZoneInfo[i][maxPos][1]);
// CP[i] = CreateDynamicCP(ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], 5, -1, -1, -1, 100.0);
DP[i] = CreateDynamicPickup(1313, 1, ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], -1, -1, -1, 100.0);
}
}
SetTimer("ZoneTimer", 1000, true);
public OnPlayerPickUpPickup(playerid, pickupid){
if ( pickupid == DP[i] )
{
CP[i] = CreateDynamicCP(ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], 5, -1, -1, -1, 100.0);
}
return 1;
}
Daje mi odrzut
Kod: error 029: invalid expression, assumed zero
error 017: undefined symbol "playerid"
error 017: undefined symbol "pickupid"
error 017: undefined symbol "i"
warning 225: unreachable code
A chodzi mi op to, ?eby dopiero po wej?ciu w pickupa, pojawia? si? checkpoint.
Wysłany: 2015-01-03, 17:29
ToxiC.
Wiek: 28 Na forum: 5246 dni Posty: 3792
Piwa : 8590
Kod:
for (new i; i < sizeof(ZoneInfo); i++)
{
if (floatcmp(ZoneInfo[i][minPos][0], 0))
{
Iter_Add(Zones, i);
tCP[i] = NONE;
UnderAttack[i] = false;
Zone[i] = GangZoneCreate(ZoneInfo[i][minPos][0], ZoneInfo[i][minPos][1], ZoneInfo[i][maxPos][0], ZoneInfo[i][maxPos][1]);
// CP[i] = CreateDynamicCP(ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], 5, -1, -1, -1, 100.0);
DP[i] = CreateDynamicPickup(1313, 1, ZoneInfo[i][pointPos][0],ZoneInfo[i][pointPos][1],ZoneInfo[i][pointPos][2], -1, -1, -1, 100.0);
}
}
SetTimer("ZoneTimer", 1000, true);
public OnPlayerPickUpPickup(playerid, pickupid){
if ( pickupid == DP[playerid] )
{
CP[playerid] = CreateDynamicCP(ZoneInfo[playerid][pointPos][0],ZoneInfo[playerid][pointPos][1],ZoneInfo[playerid][pointPos][2], 5, -1, -1, -1, 100.0);
}
return 1;
}
Wysłany: 2015-01-03, 17:29
NoTa
Wiek: 31 Na forum: 5187 dni Posty: 121
Piwa : 2
z?y public Kod: OnPlayerPickUpPickup(playerid, pickupid)
Na
Kod: OnPlayerPickUpDynamicPickup(playerid, pickupid)
Wysłany: 2015-01-03, 17:30
ToxiC.
Wiek: 28 Na forum: 5246 dni Posty: 3792
Piwa : 8590
Po za tym, teraz jak patrze to i tak b?dzie ?le xD
Wysłany: 2015-01-03, 17:32
fensz
Wiek: 44 Na forum: 6025 dni Posty: 25
Nick w MP: Rick_Ross
@Toxic
Kod: error 029: invalid expression, assumed zero
error 017: undefined symbol "playerid"
error 017: undefined symbol "pickupid"
error 017: undefined symbol "playerid"
warning 225: unreachable code
@NoTa
Nie mam takiego czego?
[ Dodano : 2015-01-03, 17:41 ]
Przenios?em ca?o?? ni?ej, ju? do g??wnej p?tli, teraz wy?wietla tylko brak i.
Tu mam problem, jak sprawi?, ?eby te zmienne si? widzia?y?
Kod: public OnPlayerPickUpPickup(playerid, pickupid)
{
if ( pickupid == DP[i] )
{
CP[i] = CreateDynamicCP(ZoneInfo[playerid][pointPos][0],ZoneInfo[playerid][pointPos][1],ZoneInfo[playerid][pointPos][2], 5, -1, -1, -1, 100.0);
}
Kod: error 017: undefined symbol "i"
error 017: undefined symbol "i"
Wysłany: 2015-01-03, 18:02
NoTa
Wiek: 31 Na forum: 5187 dni Posty: 121
Piwa : 2
Nie mog? bo ty chcesz wywo?a? pickup a stawiasz checkpointa
Wysłany: 2015-01-03, 18:04
fensz
Wiek: 44 Na forum: 6025 dni Posty: 25
Nick w MP: Rick_Ross
"NoTa" napisał/a :Nie mog? bo ty chcesz wywo?a? pickup a stawiasz checkpointa
Chc?, aby po wej?ciu w pickup, tworzy? si? checkpoint, a po zej?ciu ju? go nie by?o
Tagi: zamiana :: checkpointa :: pickupa
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: