Автоисправление
|
|
Darkeneez
|
Дата: Вторник, 09.07.2013, 16:38:52 | Сообщение # 1 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
И снова привет.
Надеюсь сейчас я объясню все нормально. Вот смотрите, у нас есть команда !asd, при ее вводе мы получаем аргумент, который к примеру равен 30. НО исходя из этого аргумента нам нужно засечь таймер. А ведь таймер работает только с float => аргумент должен выглядеть так 30.0
Можно ли как-нибудь сделать, чтобы шло "автоисправление". т.е чтобы не ввел игрок, таймер будет запускаться правильно.
|
|
| |
TEIN
|
Дата: Вторник, 09.07.2013, 16:42:07 | Сообщение # 2 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
CreateTimer(StringToFloat(arg), Timer)
|
|
| |
Darkeneez
|
Дата: Вторник, 09.07.2013, 17:10:44 | Сообщение # 3 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
Спасибо.Добавлено (09.07.2013, 17:10:44) --------------------------------------------- Не буду создавать новую тему. Вот этот участок кода (Detonate(client), крашит сервер, причем раньше этого не было (до обновления)) не подскажите в чем дело?
Код public Action:Command_Detonate(client, args) { if(!g_lr) { if (GetClientTeam(client) == 2) { if(IsPlayerAlive(client)) { if(g_iready[client]) { if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE) { b_timer[client] = CreateTimer(3.0, Babah, client); } else { PrintToChat(client, "\x07%06X[Jhad]\x07%06XУ вас нет бомбы. Или вы уже взрываетесь (^_^)", 0xFFFF00, 0xFF6600); } } else { PrintToChat(client, "\x07%06X[Jhad]\x07%06XБомба еще не готова", 0xFFFF00, 0xFF6600); } } else { PrintToChat(client, "\x07%06X[Jhad]\x07%06XТы не террорист", 0xFFFF00, 0xFF6600); } } } else { PrintToChat(client, "\x07%06X[Jhad]\x07%06XНельзя взрываться во время !lr", 0xFFFF00, 0xFF6600); } return Plugin_Handled; }
public Action:Babah(Handle:timer, any:client) { Detonate(client); }
Detonate(client) { // Explosion! new ExplosionIndex = CreateEntityByName("env_explosion"); if (ExplosionIndex != -1) { new radius = GetConVarInt(g_iradius);
SetEntProp(ExplosionIndex, Prop_Data, "m_spawnflags", 16384); SetEntProp(ExplosionIndex, Prop_Data, "m_iMagnitude", GetConVarInt(g_iDamage)); SetEntProp(ExplosionIndex, Prop_Data, "m_iRadiusOverride", radius);
DispatchSpawn(ExplosionIndex); ActivateEntity(ExplosionIndex); new Float:playerEyes[3]; GetClientEyePosition(client, playerEyes); new clientTeam = GetEntProp(client, Prop_Send, "m_iTeamNum");
TeleportEntity(ExplosionIndex, playerEyes, NULL_VECTOR, NULL_VECTOR); SetEntPropEnt(ExplosionIndex, Prop_Send, "m_hOwnerEntity", client); SetEntProp(ExplosionIndex, Prop_Send, "m_iTeamNum", clientTeam);
EmitAmbientSound("ambient/explosions/explode_1.wav", NULL_VECTOR, client); AcceptEntityInput(ExplosionIndex, "Explode"); AcceptEntityInput(ExplosionIndex, "Kill");
ForcePlayerSuicide(client); g_ibomb[client] = false; b_timer[client] = INVALID_HANDLE; } }
|
|
| |
TEIN
|
Дата: Вторник, 09.07.2013, 17:19:08 | Сообщение # 4 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Крашит постоянно? Сделай логирование после каждого условия, поймешь, думаю, в чем проблема
|
|
| |
Darkeneez
|
Дата: Вторник, 09.07.2013, 17:26:04 | Сообщение # 5 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
В том то и дело что в логах чисто.
|
|
| |
TEIN
|
Дата: Вторник, 09.07.2013, 17:37:18 | Сообщение # 6 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Сделай логирование =\
|
|
| |
Darkeneez
|
Дата: Вторник, 09.07.2013, 17:43:17 | Сообщение # 7 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
Как? Я умею только LogTofile, но не думаю что он поможет.
Сообщение отредактировал Darkeneez - Вторник, 09.07.2013, 17:43:25 |
|
| |
TEIN
|
Дата: Вторник, 09.07.2013, 17:47:21 | Сообщение # 8 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Делаешь логирование, смотришь, как упадет сервер, идешь и смотришь логи
|
|
| |
Darkeneez
|
Дата: Вторник, 09.07.2013, 17:52:05 | Сообщение # 9 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
Логирование Sourcemod, или в плагин вшить? Если в плагин, то повторюсь я не умею, можешь объяснить?Я умею только LogTofile и все.
|
|
| |
TEIN
|
Дата: Вторник, 09.07.2013, 17:55:22 | Сообщение # 10 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
LogError
|
|
| |
Darkeneez
|
Дата: Вторник, 09.07.2013, 18:04:16 | Сообщение # 11 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
Написало по латински в белом квадратке SOH, даже не копируется для вставки. Думаю я что-то не то сделал верно?
Код decl String:error[256]; LogError(error);
|
|
| |
TEIN
|
Дата: Вторник, 09.07.2013, 18:10:02 | Сообщение # 12 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
Каждое условие дублируй и все LogError("Твое условие из кода");
|
|
| |
Darkeneez
|
Дата: Вторник, 09.07.2013, 18:12:36 | Сообщение # 13 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
Т.е
LogError("if (GetClientTeam(client) == 2)");
или вообще так
LogError(" if(g_iready[client]) { if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE) { b_timer[client] = CreateTimer(3.0, Babah, client); } ");
|
|
| |
TEIN
|
Дата: Вторник, 09.07.2013, 18:19:42 | Сообщение # 14 |
|
Сообщений: 563
Репутация: 78 [ +/- ]
|
|
По одному условию дублилуйй
|
|
| |
Darkeneez
|
Дата: Среда, 10.07.2013, 05:35:21 | Сообщение # 15 |
|
Сообщений: 221
Репутация: 18 [ +/- ]
|
|
Код if(IsPlayerAlive(client)) { if(g_iready[client]) { if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE) { b_timer[client] = CreateTimer(3.0, Babah, client); LogError(if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE)); LogError("if (g_ibomb[client] && b_timer[client] == INVALID_HANDLE)"); return Plugin_Handled; } else { PrintToChat(client, "\x07%06X[Jhad]\x07%06XУ вас нет бомбы. Или вы уже взрываетесь (^_^)", 0xFFFF00, 0xFF6600); } LogError(if(g_iready[client])); LogError("if(g_iready[client])"); } else { PrintToChat(client, "\x07%06X[Jhad]\x07%06XБомба еще не готова", 0xFFFF00, 0xFF6600); } LogError(if(IsPlayerAlive(client))); }
Правильно?Добавлено (10.07.2013, 05:35:21) --------------------------------------------- Не работает логирование.
|
|
| |