Okey, visą dieną kankinuosi prie to, kas atrodo labai paprasta.
Reno pateiktas variantas, taip pat nepadėjo.
public OnVehicleDeath(vehicleid, killerid)
{
for(new i; i < MAX_PLAYERS; i++){
if(SameText(getPlayerName(i), masina[vehicleid][vehOwner]) && masina[vehicleid][vehOwned]){
new id = playerCar1[i];
if(masina[id][vehModel] == GetVehicleModel(vehicleid)){
masina[id][status] = true;
DestroyVehicle(id);
printf("susinaikino tr. priemone");
}
}
}
return 1;
}
Mano variantas :
public OnVehicleDeath(vehicleid, killerid)
{
if(masina[vehicleid][vehOwned] == true)
{
printf("Pradedamas veiksmas");
new owner = GetPlayeridMid(masina[vehicleid][vehOwner]);
if (IsPlayerConnected(owner)) {
if(killerid != INVALID_PLAYER_ID) {
printf("Pranesimas zaidejui kad sunaikino zaidejas");
format( g_szBuffer, sizeof( g_szBuffer ),"{FF8585}•{ffffff} %s žaidėjas sunaikino jūsų tr. priemonę !", getPlayerName(killerid));
SendClientMessage(owner,-1, g_szBuffer);
} else {
printf("Pranesimas zaidejui kad sunaikino niekas");
SendClientMessage(owner, -1, "{FF8585}•{ffffff} jūsų tr. priemonė buvo sunaikinta !");
}
}
if(killerid != INVALID_PLAYER_ID) {
if(strcmp(getPlayerName(killerid),masina[vehicleid][vehOwner],true)) {
printf("Pranesimas zaidejui kuris sunaikino");
format(g_szBuffer, sizeof(g_szBuffer), "{FF8585}•{ffffff} sunaikinote {FF8585}%s{ffffff} žaidėjo tr. priemonę !", masina[vehicleid][vehOwner]);
SendClientMessage(killerid,-1, g_szBuffer);
}
}
masina[vehicleid][status] = true;
DestroyVehicle(vehicleid);
printf("susinaikino tr. priemone");
}
return 1;
}
Mano variantas iš dalies suveikdavo, bet tik tada, kai užtikrintai būdavo žaidėjas tr. priemonėje, bet kai jo nebūdavo, pvz. įstumdavau su kita mašina į vandenį, ji likdavo pluduriuoti arba tiesiog dingdavo.
Printų informacija:
1 Bandymas - kai žaidėjas sėdi tr. priemonė, važiuodamas į vandenį prieš pat vandenį iššokau iš transporto :
[11:22:58] Pradedamas veiksmas
[11:22:58] Pranesimas zaidejui kad sunaikino zaidejas
[11:22:58] susinaikino tr. priemone
2 Bandymas - kai tr. priemonė visiškai tuščia, ją įstumiau į vandenį su towtruck bei per mysql pakeitęs tr. priemonės būklę iki degimo ( vandenį http://i.imgur.com/zpUDH1y.png ):
NEGAVAU JOKIO PRINT
Taigi kodas veikia, tik tuomet, kai yra killerid žaidėjas. :D
Ši tema yra užrakinta!
0
f0cus prieš 9 metus
if(killerid != INVALID_PLAYER_ID)
dėl šito tavo kodas tiesiog nevyksta, nes įstūmus į vandenį killerid turėtų būt invalid.
0
Funkis prieš 9 metus
Daugiau niekaip kitaip neišmastau :D
public OnVehicleDeath(vehicleid, killerid)
{
if(masina[vehicleid][vehOwned] == true)
{
printf("Pradedamas veiksmas");
new owner = GetPlayeridMid(masina[vehicleid][vehOwner]);
if (IsPlayerConnected(owner)) {
if(killerid != INVALID_PLAYER_ID) {
printf("Pranesimas zaidejui kad sunaikino zaidejas");
format( g_szBuffer, sizeof( g_szBuffer ),"{FF8585}•{ffffff} %s žaidėjas sunaikino jūsų tr. priemonę !", getPlayerName(killerid));
SendClientMessage(owner,-1, g_szBuffer);
if(strcmp(getPlayerName(killerid),masina[vehicleid][vehOwner],true)) {
printf("Pranesimas zaidejui kuris sunaikino");
format(g_szBuffer, sizeof(g_szBuffer), "{FF8585}•{ffffff} sunaikinote {FF8585}%s{ffffff} žaidėjo tr. priemonę !", masina[vehicleid][vehOwner]);
SendClientMessage(killerid,-1, g_szBuffer);
}
} else if(killerid == INVALID_PLAYER_ID){
printf("Pranesimas zaidejui kad sunaikino niekas");
SendClientMessage(owner, -1, "{FF8585}•{ffffff} jūsų tr. priemonė buvo sunaikinta !");
}
masina[vehicleid][status] = true;
DestroyVehicle(vehicleid);
printf("susinaikino tr. priemone");
}
}
return 1;
}