-
Üdv.
Éppen Balásznak próbálok megírni valamit de nem jön össze..
Az a lényeg ha a killerid civil és a playerid rendõr akkor piros legyen a játékos.
Ha a killerid rendõr és a playerid civil akkor ha piros akkor jail ha nem akkor semmi.
Ha a killerid és a playerid is rendõr akkor figyelmezteti a killerid-t.
De sajnos valami nem jó.
Kód:
public OnPlayerDeath(playerid, killerid, reason)
{
new szin = GetPlayerColor(killerid);
if(IsPlayerPolice(playerid) && IsPlayerCivil(killerid))
{
SetPlayerColor(killerid, COLOR_RED);
}
if(IsPlayerPolice(killerid) && IsPlayerCivil(playerid))
{
if(szin == COLOR_RED)
{
SendClientMessage(playerid,COLOR_RED,\"Börtönbe kerültél, 1 percre!\");
SetPlayerPos(playerid, 264.8763,81.9862,1001.0390);
SetPlayerInterior(playerid, 6);
SetTimerEx(\"jail\", 1*60000, false, \"i\", playerid);
}
else
{
}
}
if(IsPlayerPolice(playerid) && IsPlayerPolice(killerid))
{
if(rendorkill[killerid] == 0)
{
rendorkill[killerid] = 1;
SendClientMessage(killerid,0xFFFF00AA,\"TeamKill, a következõnél kick!(1/2)\");
}
else if(rendorkill[killerid] == 1)
{
SendClientMessage(killerid,0xFFFF00AA,\"TeamKill, kickelve lettél!(2/2)\");
Kick(killerid);
}
}
return 1;
}
-
Aha, de konkrétan mi nem mûködik ebben? Én nem látok benne bakit...
-
Aha, de konkrétan mi nem mûködik ebben? Én nem látok benne bakit...
Ha civil megöli a rendõrt akkor civil nem lesz PIROS.
Ha rendõr megöli a pirost akkor piros nem kerül börtönbe.
-
Aha, de konkrétan mi nem mûködik ebben? Én nem látok benne bakit...
Errõl van szó, én se látok semmi hibát. Egyébként semmi se megy..
2 stock:
stock IsPlayerPolice(playerid)
{
if(gTeam[playerid] == TEAM_ZSARU1) {
return 1;
}
if(gTeam[playerid] == TEAM_ZSARU2) {
return 1;
}
if(gTeam[playerid] == TEAM_ZSARU3) {
return 1;
}
if(gTeam[playerid] == TEAM_ZSARU4) {
return 1;
}
return 0;
}
stock IsPlayerCivil(playerid) {
if(gTeam[playerid] == TEAM_CIVIL1) {
return 1;
}
if(gTeam[playerid] == TEAM_CIVIL2) {
return 1;
}
if(gTeam[playerid] == TEAM_CIVIL3) {
return 1;
}
if(gTeam[playerid] == TEAM_CIVIL4) {
return 1;
}
return 0;
}
-
hmmmmmm.
Szerintem ezt nem színnel kellene megoldani, mert az nálam sohasem mûködött. Hanem egy változóval, mellette persze színezgethetjük ahogy tetszik. Az is furcsáll nálam egy kicsit, hogy ezek a lekérdezések nincsenek lezárva, tehát ha nem ez történik, akkor mi legyen. Nem tudok mást, próbáld meg így. A változós dologhoz értesz Gumikacsa, gondolom :)
public OnPlayerDeath(playerid, killerid, reason)
{
new szin = GetPlayerColor(killerid);
if(IsPlayerPolice(playerid) && IsPlayerCivil(killerid))
{
SetPlayerColor(killerid, COLOR_RED);
}
else if(IsPlayerPolice(killerid) && IsPlayerCivil(playerid))
{
if(szin == COLOR_RED)
{
SendClientMessage(playerid,COLOR_RED,\"Börtönbe kerültél, 1 percre!\");
SetPlayerPos(playerid, 264.8763,81.9862,1001.0390);
SetPlayerInterior(playerid, 6);
SetTimerEx(\"jail\", 1*60000, false, \"i\", playerid);
}
else
{
}
}
else if(IsPlayerPolice(playerid) && IsPlayerPolice(killerid))
{
if(rendorkill[killerid] == 0)
{
rendorkill[killerid] = 1;
SendClientMessage(killerid,0xFFFF00AA,\"TeamKill, a következõnél kick!(1/2)\");
}
else if(rendorkill[killerid] == 1)
{
SendClientMessage(killerid,0xFFFF00AA,\"TeamKill, kickelve lettél!(2/2)\");
Kick(killerid);
}
}
return 1;
}
-
Megcsináltam változóval, de attól még ugyanúgy semmi sem megy..
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerCivil(killerid)) {
SetPlayerColor(killerid, COLOR_RED);
if(!IsPlayerPolice(playerid)) return rendortolt[playerid] = 1;
}
else if(IsPlayerPolice(killerid) && IsPlayerCivil(playerid)) {
if(rendortolt[playerid] == 1)
{
SendClientMessage(playerid,COLOR_RED,\"Börtönbe kerültél, 1 percre!\");
SetPlayerPos(playerid, 264.8763,81.9862,1001.0390);
SetPlayerInterior(playerid, 6);
SetTimerEx(\"jail\", 1*60000, false, \"i\", playerid);
} else {
}
}
else if(IsPlayerPolice(playerid) && IsPlayerPolice(killerid)) {
if(rendorkill[killerid] == 0) {
rendorkill[killerid] = 1;
SendClientMessage(killerid,0xFFFF00AA,\"TeamKill, a következõnél kick!(1/2)\");
}
else if(rendorkill[killerid] == 1) {
SendClientMessage(killerid,0xFFFF00AA,\"TeamKill, kickelve lettél!(2/2)\");
Kick(killerid);
}
}
return 1;
}
-
Nekem azért kellene több info.
Például az a rész ahol TEAM_ZSARU1 2 3 4 / TEAM_CIVIL1 2 3 4vannak létrehozva ahol a gTeam[playerid] változó megkapja ezeket az értékeket.
És azért betennék pár printf sort hogy lássam mi is történik, az OnPlayerDeath alatt.
[pawn] printf(\" Police: %d | Civil: %d\", IsPlayerPolice(playerid), IsPlayerCivil(killerid));
if(IsPlayerPolice(playerid) && IsPlayerCivil(killerid))
{
SetPlayerColor(killerid, COLOR_RED);
printf(\"szín megváltoztatva killerid: %d\", killerid);
}[/pawn]
És azért sok helyen nem értem miért szerepel playerid érték mert ugye mindig a killerid a gyilkos és azzal kellene történni-e valaminek mondjuk a gyilkost zárjuk börtönbe, kickeljük és nem azt akit megöltek.
-
Köszönjük mindenkinek a segítséget, de hála Sheet cimbora megcsinálta nekem. Témát zárhatod Gumi.
-
Még mindig nem tudom mi lehetett a hiba.. Pedig mindennek klappolnia kell.
Lock.